【问题标题】:Need regex help in PHP 5在 PHP 5 中需要正则表达式帮助
【发布时间】:2011-02-22 22:40:39
【问题描述】:

好的。诚然,我不是最擅长使用正则表达式。我正在做的是屏幕抓取,然后尝试修复嵌入图像中的 img src 值以指向原始域。这是我一直在尝试的正则表达式(太多无法列出 - 这是当前的):

preg_match_all('/<img\b[^>]*>/i', $html, $images);  

这最终会用/&gt; 替换所有&lt;。我需要它做的只是在一个数组中返回页面上的(当前)五个图像,以便我可以与这些图像一起修复它们的 src 值,然后将它们写回 $html,它是在开头设置的文件:

$html = file_get_contents($target_url);

【问题讨论】:

标签: php regex html-parsing


【解决方案1】:

基本上,不要对正则表达式执行此操作。您可以使用正则表达式解析 HTML,但几乎可以肯定不值得。

改为使用真正的 DOM 解析,使用 DOMDocument 类:

$dom = new DOMDocument;
$dom->loadHTML($html);
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
    $image->setAttribute('src', 'http://example.com/' . $image->getAttribute('src'));
}
$html = $dom->saveHTML();

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-11-30
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
相关资源
最近更新 更多