REGEX en PHP aidez moi svp, j'en ai besoin

Fermé
bnrj Messages postés 129 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 1 septembre 2013 - 17 avril 2010 à 20:52
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 - 17 avril 2010 à 21:27
Bonjour,
j'aimerais creer un script qui permet de mettre dans une variable un code trouvé entre deux balises, j'ai fait ceci :
$file_g=file_get_content("http://monsite.com");
$file_f=preg_match("\<span style=\"font-weight:bold;font-family:courier;font-size:15px;border:1px solid black;\"\>(+.)\</span\>",$file_g);
if($file_f==TRUE){
header("location:http://monsite.com&code=".$1);
}
Sauf que la variable $1 n'est pas déclarée... Donc comment je peux faire pour récupérer le code entre la balise ??? merci d'avance !!
A voir également:

3 réponses

okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
17 avril 2010 à 20:59
Bonjour,
preg_match ne fonctionne pas comme ça.
regarde les infos ici :https://www.php.net/manual/fr/function.preg-match.php
0
bnrj Messages postés 129 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 1 septembre 2013 5
17 avril 2010 à 21:00
Ah c'est bon j'ai trouvé !
en fait il fallait que j'utilises :
$file_g=file_get_contents("http://monsite.com");
$file_f=preg_match("\<span style=\"font-weight:bold;font-family:courier;font-size:15px;border:1px solid black;\"\>(+.)\</span\>",$file_g);
if($file_f==TRUE){
header("location:http://monsite.com?code=".$matches[1]);
}

mais pouvez vous m'aider pour ma regex car il m'affiche cette erreur :
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in


Merci <3
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
17 avril 2010 à 21:27
parce que tu construis mal ta regex.
le masque de la regex se compose comme suit :
#[texte que tu recherche]#[option]

$masque = '#je recherche la valeur ([0-9]+) dans ces ([0-9]+) textes.#isU';
	$compteur = preg_match_all($masque, $recherche, $var, PREG_PATTERN_ORDER);
	/*
	$recherche est la variable dans lequel tu fais ta recherche
	$var est la variable de sortie
	preg_match_all renvoi dans $compteur le nombre de fois que la masque a été trouvé
	si la 1er valeur que tu cheches est 2 et la seconde 3
	$var[0] - contient tout ton masque donc je recherche la valeur 2 dans ces 3 textes.
	$var[1] - contient 2
	$var[2] - contient 3
	*/


voilà :)
ici c'est un exemple avec preg_match_all mais preg_match fonctionne quasi de la même manière.
0