Extraire quelques lignes d'une page distante

Mysterious_fea Messages postés 406 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
Je voudrais extraire les lignes 100 à 105 d'une URL distante.
J'ai fait :
$data=file_get_contents('http://www.exemple.fr');

Et j'ai pensé à utiliser substr, mais cette fonction ne passe pas en variable des numéros de ligne, mais de caractères.
Quelle fonction utiliser pour extraire les lignes 100 à 105 de $data ?
Merci
Cordialement
Maxime
A voir également:

3 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
essayes plutôt avec file()

file() Lit le fichier et renvoie le résultat dans un tableau
[ Exemples avec file ] PHP 3, PHP 4, PHP 5

array file ( string filename , int use_include_path , resource context )

file est identique à file_get_contents , hormis le fait que file retourne le fichier filename dans un tableau. Chaque élément du tableau correspond à une ligne du fichier, et les retour-chariots sont placés en fin de ligne.


$data=file(ton_fichier)

et pour avoir les lignes 100 à 105

for($i=100;$i<=105;$i++){
   echo $dat[$i].'<br />';
}
1
Mysterious_fea Messages postés 406 Statut Membre 35
 
Merci beaucoup c'est exactement ce qu'il me fallait !
Juste une petite question :
J'ai extrait la ligne 100, qui me retourne :
<div class='s_11'>blabla</div>

Est-ce possible de n'extraire que "blabla" (c'est à dire ce qui est situé après <div class='s_11'> et avant </div> ?
Merci
0
M@dien Messages postés 451 Statut Membre 74
 
Bonjour,

Je pense qu'il peut y avoir plusieurs méthodes:

1) Tu peux enregistrer le contenu de data dans un fichier, et utiliser le code de lecture de fichier ligne par ligne pour récupérer les lignes voulues

2) Plus simple, Tu peux jouer avec la fonction plit() et les expressions régulières pour découper ta chaine de caractères selon les retours à la ligne ( \n ).
1
Alain_42 Messages postés 5413 Statut Membre 894
 
Est-ce possible de n'extraire que "blabla" (c'est à dire ce qui est situé après <div class='s_11'> et avant </div> ?

pour ça recherche du coté de preg_match(...)
0