ExBB Community » » PHP/Perl » Как сделать, чтобы работало с двойными кавычками?

Страниц (1): [1]
 

1. Defenderyk - 12 мая 2009 — 16:11 - перейти к сообщению
Делаю у себя на сайте вывод картинки из новости или статьи. Этот код как бы достает картинку из новости и выводит в панель
CODE:
if (preg_match("/<img(.*?)>/i", "$news")) {
preg_match_all("|<img(.*) src='([^']*)'[^>]*>|is", $news, $preg_images);
for( $i = 0; $i < sizeof($preg_images); $i += 2) {
$image = $preg_images[$i][0];
$load_img = $image;
$news = str_replace( $image, $load_img, $news );


CODE:
echo "<img src='".$image."' width='126' height='126'>";


но он выводит только картинки, если они прописаны с одинарными кавычками. А как сделать, чтобы и с двойными выводил?
2. Furax - 13 мая 2009 — 03:14 - перейти к сообщению
Вот этот регэксп:
CODE:
"|<img(.*) src='([^']*)'[^>]*>|is"
Меняем на
CODE:
'|<img(.*) src="([^"]*)"[^>]*>|is'
3. Defenderyk - 13 мая 2009 — 08:31 - перейти к сообщению
Благодарствую. сейчас проверю
(Добавление)
а универсально возможно сделать? чтобы и с теми и другими кавычками работало? или этот вариант уже работает и так и так?
4. Furax - 14 мая 2009 — 02:32 - перейти к сообщению
Универсально? Вот так, например:
CODE:
'|<img(.*)\ssrc=("([^"]*)")|(\'([^\']*)\')[^>]*>|is'
Вроде должно так и так работать, проверь.
5. Defenderyk - 14 мая 2009 — 07:44 - перейти к сообщению
первый пирмер работает с двойными, а второй не показывает, если двойные стоят
6. yura3d - 14 мая 2009 — 15:06 - перейти к сообщению
Defenderyk пишет:
первый пирмер работает с двойными, а второй не показывает, если двойные стоят

Я бы регулярное выражение переписал так:
CODE:
preg_match_all("#<img(.*) src=('|\")([^'\"]*)\\1[^>]*>#is", $news, $preg_images);

Таким образом будут обрабатываться и одинарные, и двойные кавычки. Ну а вывести полученные картинки можно так:
CODE:
foreach ($preg_images[0] as $view)
echo $view;


Defenderyk пишет:
$image = $preg_images[$i][0];
$load_img = $image;
$news = str_replace( $image, $load_img, $news );

Вот в этом фрагменте ничего не понял. Сначала мы в $image записываем значение $preg_images[$i][0], а затем это же значение копируем в $load_img. Далее в переменной $news заменяем $image на $load_img, но ведь 2 последние переменные содержат одно и то же значение, и в итоге получается мы ничего не заменим, в чём тогда смысл этих строк?

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0153]     [ ]