Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/07/2011, 14h50   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 1
Points : 0
Points : 0
Par défaut Récupération de variables issues d'une regex

Bonjour,

J'ai un léger souci avec la gestion des resultats que me sort mon expression reguliere dans ce script.

LE CAS : Ce script ci-dessous va parser le code html d'une page "http://www.monsite.fr/listing". Cette page contient ce genre de ligne (environ une centaine):
<a href="http://www.siteweb.fr/xxxxxxxxx.htm>yyyyyyyyyy</a>
Mon expression reguliere recupere l'ensemble des "xxxxxxxxx" et des "yyyyyyyyy" dans des array. Jusque là, tout va bien et le script fonctionne (si je rajoute une commande print_r dont mon script, je vois bien l'ensemble de mes données recuperées sur la page).

MON PROBLEME : Mon souci est dans la recuperation de ces données. Je lance une boucle pour afficher chaque valeur "xxxxxx" associé à sa valeur "yyyyyyyyy" issu de l'url dont elles sont extraites dans la page html). Je veux obtenir queqlque chose qui ressemble à ca :
xxxxxxxxxxxyyyyyyyyyyyxxxxxxxxxxyyyyyyyyyyyyxxxxxxxxxxxyyyyyyyyyyyyxxxxxxxxxxxyyyyyyyyy....

Je vois bien que mon souci vient de l'appel que je fais à la variable "ref2" qui represente la valeur yyyyyyyyyy (à la ligne 9). Ce n'est pas comme cela que ca se fait mais je ne trouve pas commment operer.

Si une ame charitable pouvait me sortir de cette embuche....

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
	$url_recherche = 'http://www.monsite.fr/listing';
		// Extraction des references
		$chaine_ref = file_get_contents($url_recherche) or die("Could not access file: $url");
		preg_match_all('#<a href="http://www.monsite.fr/(.*?).htm>(.*?)</a>#is',$chaine_ref,$resultat_ref,PREG_PATTERN_ORDER);
		// Boucle de traitement de chaque reference d'annonce trouvée
			foreach ($resultat_ref[1] as $ref)
			{
			$resultat_ref[0] as $ref2;
			echo $ref;
			echo $ref2;
			}
?>
divided est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 18h24   #2
Membre confirmé
 
Avatar de Korri
 
Homme Hugo Vacher
Étudiant
Inscription : mai 2008
Messages : 158
Détails du profil
Informations personnelles :
Nom : Homme Hugo Vacher
Âge : 23
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2008
Messages : 158
Points : 224
Points : 224
Tu devrais regarder un peut mieux la documentation de preg_match_all qui retourne un résultat sous la forme :

Code php :
1
2
3
4
array(
    array('match11', 'match12'),
    array('match21', 'match22')
)

ta boucle devrais donc plus ressembler à ça :
Code php :
1
2
3
4
foreach($resultat_ref as $annonce) {
    $url = $annonce[1];
    $title = $annonce[2];
}

PS: Je suis conscient que tu ne veux pas donner le nom de ton site et ton vrai code, mais essaye au moins de poster un code valide, ta ligne 9 n'a aucun sens.
Korri est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h26.


 
 
 
 
Partenaires

Hébergement Web