Duplicata possible:
Conversion des expressions ereg en preg
<?php
$searchtag = "google";
$link = "http://images.google.com/images?hl=de&q=$searchtag&btnG=Bilder-Suche&gbv=1";
$code = file_get_contents($link,'r');
ereg("imgurl=http://www.[A-Za-z0-9-]*.[A-Za-z]*[^.]*.[A-Za-z]*", $code, $img);
ereg("http://(.*)", $img[0], $img_pic);
echo '<img src="'.$img_pic[0].'" width="70" height="70">'; ?>
Et je reçois cette erreur
Déconseillé: la fonction ereg () est déconseillée dans C:\Program Files\EasyPHP-5.3.8.1\www\m\img.php sur la ligne 5
Déconseillé: la fonction ereg () est déconseillée dans C:\Program Files\EasyPHP-5.3.8.1\www\m\img.php sur la ligne 6
les fonctions preg_match () donnent cette erreur
Avertissement: preg_match () [function.preg-match]: le délimiteur ne doit pas être alphanumérique ni barre oblique inverse dans C:\Program Files\EasyPHP-5.3.8.1\www\m\img.php sur la ligne 6
Avertissement: preg_match () [function.preg-match]: le délimiteur ne doit pas être alphanumérique ni barre oblique inverse dans C:\Program Files\EasyPHP-5.3.8.1\www\m\img.php sur la ligne 7
ereg
est obsolète. Ne l'utilisez pas.preg
sont toutes des "expressions régulières Perl", ce qui signifie que vous devez avoir une sorte de marqueur de début et de fin sur votre expression régulière. Ce sera souvent /
ou #
, mais tout non alphanumérique fera l'affaire.Par exemple, cela fonctionnera:
preg_match("/foo/u",$needle,$haystack);
preg_match("#foo#i",$needle,$haystack);
preg_match("@foo@",$needle,$haystack);
preg_match("\$foo\$w",$needle,$haystack); // bad idea because `$` means something
// in regex but it is valid anyway
// also, they need to be escaped since
// I'm using " instead of '
Mais cela ne va pas:
preg_match("foo",$needle,$haystack); // no delimiter!
Avec preg_match()
votre expression régulière doit commencer et se terminer par un délimiteur tel que /
à quelques exceptions près (par exemple en ajoutant "i" à la fin pour la casse).
par exemple.
preg_match('/[regex]/i', $string)