Salut
j'aimerais récuperer une chaine contenue en tre deux tags.
pourriez vous m'aider ?
Salut
j'aimerais récuperer une chaine contenue en tre deux tags.
pourriez vous m'aider ?
En faisant une recherche vous auriez dû trouver :
Ou une version qui capture toutes les occurences situées entre <tag> et </tag> :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $string = "début <tag>à capturer</tag> fin."; if (preg_match('#<tag>(.*)</tag>#Uis', $string, $m)) { echo $m[1]; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $string = "début <tag>à capturer</tag> milieu <tag>à capturer bis</tag> fin."; $nbOccurences = preg_match_all('#<tag>(.*)</tag>#Uis', $string, $m); if ($nbOccurences > 0) { # Test non nécessaire suivant ce que vous faites for ($i = 0; $i < $nbOccurences; $i++) { echo $m[1][$i] . '<br/>'; } }
re-salut
voilà qu'il me faut des-résoudre mon probleme, en effet, j'en ais un autre du meme accabi.
voila mon bout de code :
or, quand j'exécute mon code, rien ne se passe. j'ai testé le morceau de reécuperation de $texte, il marche ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 $fichier = "http://www.url-quelconque.fr/fichier-quelconque.html"; $Tag_STR = addslashes('<div id="tagarecuperer">'); $Tag_STP = addslashes('</div>'); $fp = @fopen($fichier,"r"); $texte = ""; if($fp) { while(!feof($fp)) { $texte .= fgets($fp,1024); } if (preg_match('#'.$Tag_STR.'(.+)'.$Tag_STP.'#i', $texte , $m)) { echo $m[1]; } } else { echo("Erreur : Les informations ne peuvent etre récuperées"); }
voyez vous mon erreur ?
merci, ++ Tix.
Vous n'avez pas besoin d'appliquer addslahes sur $Tag_STR et $Tag_STP d'autant plus que ce traitement est incorrect. (Il manque le fclose également.)
merci.
Voila mon nouveau code
...qui refuse d'entendre raison, encore.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <?php $fichier = "http://www.****.fr/bidule.html"; $Tag_STR = '<div id="tag"'; $Tag_STP = '</div>'; $fp = @fopen($fichier,"r"); $texte = ""; if($fp) { while(!feof($fp)) { $texte .= fgets($fp,1024); } if (preg_match('#'.$Tag_STR.'(.+)'.$Tag_STP.'#Uis', $texte , $m)) { echo $m[1]; } } else { echo("Impossible d'ouvrir la page sélectionnée"); } fclose($fp); ?>
voyez vous autre chose ?
merci, ++ Tix.
J'ai testé de mon côté et ça fonctionne très bien. Vous devriez enlever l'arobase devant le fopen (pour tester au moins). allow_url_fopen est à on sur votre serveur ? Pas de métacaractères dans le tag ?
merci
bah, écoutez, j'arrive parfaitement à charger mon fichier, le seul truc vien de mon regex apparemment .... je ne sait plus quoi faire.
Vous ne récupérez absolument rien même en éditant la source de ce que génère ce script ? Il n'y pas d'erreurs dans vos balises (ie <div="tag" par exemple) ? Elles sont bien présentes sur la page distante au moins ? Je ne vois que ça
bien, quand je teste mon preg_match, il ne trouve rien. Je n'ais pas une erreur, et je ne récupere strictement rien coté client. voici mon expression :
...et mes tags sont bien dasn mon fichier externe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $Tag_MATCH = '#<div id="affiche"><h1>Actualités - News</h1>(.*)</div>#Uis';
y voyez vous de quoi se facher ?
merci, ++ Tix.
Et le code que tu analyse c'est quoi ?
une page Html quelconque... dans le cas présent, une page de news
Passe le code complet parceque avec
Je ne vois pas pourquoi je ne récupererai pas 'toto'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php $code = '<div id="affiche"><h1>Actualités - News</h1>toto</div>'; preg_match('#<div id="affiche"><h1>Actualités - News</h1>(.*)</div>#Uis', $code, $match); print_r($match); ?>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager