Возможный дубликат:
Преобразование выражений ereg в 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">'; ?>
И я получаю эту ошибку
Устаревший: функция ereg () устарела в C: \ Program Files \ EasyPHP-5.3.8.1 \ www \ m \ img.php в строке 5
Устаревший: функция ereg () устарела в C: \ Program Files \ EasyPHP-5.3.8.1 \ www \ m \ img.php в строке 6
Функции preg_match () дают эту ошибку
Предупреждение: preg_match () [function.preg-match]: разделитель не должен быть буквенно-цифровым или обратным слэшем в C: \ Program Files \ EasyPHP-5.3.8.1 \ www \ m \ img.php в строке 6
Предупреждение: preg_match () [function.preg-match]: разделитель не должен быть буквенно-цифровым или обратным слэшем в C: \ Program Files \ EasyPHP-5.3.8.1 \ www \ m \ img.php в строке 7
ereg
устарел. Не используйте его. preg
– это все «регулярные выражения Perl», что означает, что для вашего регулярного выражения вам нужно иметь какой-то маркер начала и конца. Часто это будет /
или #
, но любой не альфа-цифровой будет делать все. Например, они будут работать:
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 '
Но это не будет:
preg_match("foo",$needle,$haystack); // no delimiter!
С preg_match()
ваше регулярное выражение должно начинаться и заканчиваться разделителем, например /
с несколькими исключениями (например, добавление «i» в конце для нечувствительности к регистру).
например
preg_match('/[regex]/i', $string)