taxidogkiller
Messages postés39Date d'inscriptionvendredi 20 février 2004StatutMembreDernière intervention 1 mars 2009
-
29 déc. 2007 à 21:01
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
30 déc. 2007 à 10:02
Bonjour, je débute en php et j'ai un peux de mal avec les regex, pourriez vous me dire ce qui ne va pas :
voici ce que j'ai fait :
<?php
$src "var fullscreenUrl '/watch_fullscreen?video_id=I4u3449L5VI&l=49&t=OEgsToPDskJ15vTYghbY4cV6svG65ni9&sk=Qm2dSw1ODsdMOA0rq4wsjQC&fs=1&title=Test de regex';";
preg_replace_callback("watch_fullscreen?video_id=(.+?)&.*&t=(.+?)&.*&title=(.+?);`i", 'test' , $src);
?>
la régex est sensé selectionner l'id de la video ( dans l'exemple : I4u3449L5VI ), la variable t ( ici : OEgsToPDskJ15vTYghbY4cV6svG65ni9), et la variable title (ici : Test de regex) mais malheureusement ca ne marche pas ^^
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 29 déc. 2007 à 23:34
Salut,
Que fait ta fonction "test" ?
Sinon, le masque (.+?) est mal écrit : le + indique la présence d'au moins 1 caractère. Le ? de 0 ou 1 caractère. Donc, il y a conflit. De plus, ce masque est trop permissif : tu sais pertinemment que tu n'as que des chiffres ou des lettres (maj/min), et rien d'autre : limite toi à ça avec ([a-zA-Z0-9]+).
Ton expression régulière n'a pas de délimiteur de début. Tu as bien spécifié celui de fin ( ` ) mais pas celui de début.
Quant au titre, je doute qu'il y ait des espaces : l'url doit avoir été encodée avec url_encode() (ce qui encode les caractères spéciaux, dont les espace). Il faudra décoder avec url_decode().
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 30 déc. 2007 à 10:02
Hello,
pourquoi passer par une expression régulière pour faire ça alors qu'il y a des fonctions dédiées forcément plus rapides ?
<?php$src "var fullscreenUrl '/watch_fullscreen?video_id=I4u3449L5VI&l=49&t=OEgsToPDskJ15vTYghbY4cV6svG65ni9&sk=Qm2dSw1ODsdMOA0rq4wsjQC&fs=1&title=Test de regex';";
$aParsed = parse_url($src);
parse_str($aParsed['query'], $aQuery);
echo $aQuery['video_id'];
?>