Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Полный разбор HTML тега IMG


Автор: Xezzus 7.10.2010, 16:37
Условие, нужно разобрать тег картинки на адрес и описание если есть. Дело на самом деле элементарное.

Допустим так
Код

$html = '<img src="http://www.example.ru" alt="описание">';
$reg = "/<img.*?((?:alt|src)(?:=\"|='|=)(?:.*?)[\"']).*?((?:alt|src|)(?:=\"|='|=)(?:.*?)[\"']).*?/i";
    preg_match_all($reg,$html,$array);


Работает замечательно, по условию они и нужны картинки только с alt, так и получается в массиве картинки только с описанием, но стоит ввести в входные данные, что-то вроде 
Код

<img src=www.example.ru >


мой мозг сразу начинает клинить. Я хочу, чтобы картинки которые не имеют описания, попадали в конечный массив, но как сделать одним регулярным выражением ума не приложу. Да, можно сделать с помощью дополнительных регулярных выражений и использовать их в цикле, можно в корень извратиться и еще использовать explode, но я являюсь идеалистом и мне хочется сделать одним регулярным выражением. Если кто-то поможет буду очень благодарен. Людям которые поломают мозг вместе со мной над этой проблемой тоже буду крайне рад.

Автор: patap 10.10.2010, 12:55
а ну посмотри, я так твое на скорую руку подредактировал, думаю должно отработать.
Код

<img\s+((?:alt|src)=["']?.*?["']?)(?:\s+)?(?:((?:alt|src|)=["']?.*?["'])(?:\s+)?)?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)