如何使用PHP抓取标记,检查图像是否存在并替换不存在的路径?

时间:2010-11-17 15:10:00

标签: php

我有一些标记,我需要抓取图像,并检查图像是否存在于他们指定的路径中。如果位置A中不存在图像,则应将该路径替换为位置B.

我想知道实现这个目标的最有效方法是什么?

2 个答案:

答案 0 :(得分:2)

使用PHP的SimpleXML。它很容易使用。这是一个例子(可能不起作用,但你明白了):

<?php

$document = simplexml_load_file('dah_file.html');

foreach ($document->children() as $child)
{
  if !file_exists($child['src'])
  {
    $child['src'] = 'path/to/image.png';
  }
}

print($document->asXml());

?>

答案 1 :(得分:1)

您可以在此处使用正则表达式。创建一个正则表达式以匹配src标记的<img>属性,并在Preg_Replace_Callback函数中使用它。

像这样(或多或少的伪代码):

$htmlContent = Preg_Replace_Callback (
    '/<img src="(.*)"/is',
    function ( $matches ) {
        if ( ImageExists ( $matches[1] ) )
            return $matches[1];
        else
            return '/path/to/some/other/image.jpg';
    },
    $htmlContent
);

您必须提供ImageExists()功能,以及正确的正则表达式。