2012-12-07 4 views
1

У меня есть пример кода:Ошибка при получении src с первого изображения с использованием php?

$content = 'I have a image <img border="0" alt="581.jpg - 58.03 KB" src="581.jpg">'; 

И PHP

preg_match('/<img.+src=[\'"](?P<src>.+)[\'"].*>/i', $content, $image); 
echo $image[0]; 

Результат является: 581.jpg" border="0" alt="581.jpg -, Как это исправить?

+0

Здравствуйте решает мой ответ на ваш вопрос? и полезно для вас? –

ответ

1

Написание регулярного выражения для этого ... проблематично, по меньшей мере. Я рекомендовал бы использовать это:

$dom = new DOMDocument; 
$dom->loadHTML($content); 
foreach ($dom->getElementsByTagName('img') as $node) { 
    echo $node->getAttribute('src') . PHP_EOL; 
} 

Объяснение:

Причины, почему вы не должны использовать регулярное выражение для того, что вы хотите, что разметка HTML изменяется. Позиция атрибута src может различаться, он может использовать одинарные кавычки вместо двойных кавычек (некоторым атрибутам HTML не нужны кавычки, например, этот синтаксис верен:), это может быть прописная и, возможно, другие проблемы, Думаю прямо сейчас.

Дополнительно:

Смежные вопросы