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

bnrj Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   -  
okuni Messages postés 1325 Statut Membre -
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 !!

3 réponses

  1. bnrj Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   5
     
    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
  2. okuni Messages postés 1325 Statut Membre 126
     
    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