Есть регулярка: src\s*=\s*"([^"]*"|\'[^\']*\'|[^\s]+)"
Прекрасно работает если в пути к рисунку нет пробелов, но если есть пробел, то перестает воспринимать.
Пытался сделать так:
src\s*=\s*"([^"]*"|\'[^\']*\'|[\s]*|[^\s]+)"
и так
src\s*=\s*"([^"]*"|\'[^\']*\')"
но не вышло.
Спустя 3 минуты, 46 секунд (15.11.2010 - 19:44) DedMorozzz написал(а):
ужас)
$a = preg_replace('#src ?= ?(\'|")(.*?)\\1#', '$2', $text);
Спустя 16 часов, 52 минуты, 3 секунды (16.11.2010 - 12:36) Guest 007 написал(а):
Странно работает эта регулярка =)
Была строчка
и
вывело
А мне надо чтоб вывело
Другими словами из кучи html хлама мне нужно выбрать путь к рисунку и записать его в базу.
Была строчка
<img scr="images/blabla.jpg" alt="blablabla">
и
echo preg_replace('#src ?= ?(\'|")(.*?)\\1#', '$2', $p_row["desc_html"]);
вывело
<img images/blabla.jpg alt="blablabla">
А мне надо чтоб вывело
images/blabla.jpg
Другими словами из кучи html хлама мне нужно выбрать путь к рисунку и записать его в базу.
Спустя 9 минут, 7 секунд (16.11.2010 - 12:45) DedMorozzz написал(а):
Ну а что ты ожидаешь написав в теге ИМГ "scr"?? Когда должно быть src.
В регулярке то нормально написано
В регулярке то нормально написано
<?php
$a = '<img src="images/blabla.jpg" alt="zzzz">';
$a = preg_replace('#.*?src ?= ?(\'|")(.*?)\\1.*#', '$2', $a);
echo $a;//images/blabla.jpg
Спустя 1 час, 3 минуты, 13 секунд (16.11.2010 - 13:48) Guest 007 написал(а):
Ошибся при наборе текста на форуме, src в исходниках написано правильно.
Но регулярка все равно выводит не совсем то что нужно.
Введите, например, в $a
У меня $a = preg_replace('#.*?src ?= ?(\'|")(.*?)\\1.*#', '$2', $a); выходит такие данные
Но регулярка все равно выводит не совсем то что нужно.
Введите, например, в $a
$a = '<img src="images/blabla.jpg" alt="zzzz"><div>4tonibud</div><table><tr><td>omg</td> ;</tr></table>';
У меня $a = preg_replace('#.*?src ?= ?(\'|")(.*?)\\1.*#', '$2', $a); выходит такие данные
images/blabla.jpg<div>4tonibud</div><table><tr><td>omg</td></tr></table>
Спустя 13 минут, 21 секунда (16.11.2010 - 14:02) DedMorozzz написал(а):
и почему я не верю...
Или пиши реальный кусок кода. Ибо с этим 100% все нормально
<?phpПроверил код. Работает как надо
$a = '<img src="images/blabla.jpg" alt="zzzz"><div>4tonibud</div><table><tr><td>omg</td> ; ;</tr></table>';
$a = preg_replace('#.*?src ?= ?(\'|")(.*?)\\1.*#', '$2', $a);
echo $a;//images/blabla.jpg
Или пиши реальный кусок кода. Ибо с этим 100% все нормально
Спустя 31 минута, 50 секунд (16.11.2010 - 14:33) Guest написал(а):
Реальный кусок кода
В $product_row["description_html"] содержится куча-мала из html кода вида "Рисунок + таблица с описанием", который мне надо разделить на рисунок и все остальное. Т.к. наименований 3000++ то каждый продукт так разделять дело муторное и гимморойное. Задался целью написать скриптик, который бы мне выдирал путь к рисунку и удалял из $product_row["description_html"] теги <img ..>...</img> полностью.
Так вот соль в чем. Когда копирую Ваш код - выводит только путь, но как только в $a подставляю данные с базы, то пишет путь и потом все остальные теги и символы которые расположены после тега <img> :(
$a = $product_row["description_html"];
$a = preg_replace('#.*?src ?= ?(\'|")(.*?)\\1.*#', '$2', $a);
echo $a;
В $product_row["description_html"] содержится куча-мала из html кода вида "Рисунок + таблица с описанием", который мне надо разделить на рисунок и все остальное. Т.к. наименований 3000++ то каждый продукт так разделять дело муторное и гимморойное. Задался целью написать скриптик, который бы мне выдирал путь к рисунку и удалял из $product_row["description_html"] теги <img ..>...</img> полностью.
Так вот соль в чем. Когда копирую Ваш код - выводит только путь, но как только в $a подставляю данные с базы, то пишет путь и потом все остальные теги и символы которые расположены после тега <img> :(
Спустя 2 минуты, 18 секунд (16.11.2010 - 14:36) DedMorozzz написал(а):
#.*?src ?= ?(\'|")(.*?)\\1.*#=>
#.*?src ?= ?(\'|")(.*?)\\1.*#s
Спустя 2 минуты, 12 секунд (16.11.2010 - 14:38) Guest 007 написал(а):
Спасибо