用PHP file_get_contents的输出替换字符串?

时间:2011-05-02 03:24:39

标签: php

我正在使用PHP从外部网站获取内容。

我想知道是否可以从输出中查找和替换字符串,这样我就可以使所有链接都是绝对的。

我需要将“/和'/转换为”$ url /

如果可以这样做,我可以弄清楚如何做其余的事情。我不知道是否可能。

由于

2 个答案:

答案 0 :(得分:0)

对于简单的字符串替换,请使用str_replace(),例如

$html = str_replace(array("'/", '"/'), array("'$url/", '"' . $url . '/'), $html);

如果您正在使用更强大的解决方案,我建议将HTML字符串加载到DOMDocument中,使用href/开始循环遍历所有标记并更改每个标记之前的属性写出HTML。

$doc = new DOMDocument();
$doc->loadHTML($html);

$xpath = new DOMXPath($doc);
$anchors = $xpath->query('//*[starts-with(@href, "/")]');

foreach ($anchors as $anchor) {
    $href = $anchor->getAttribute('href');
    $anchor->setAttribute('href', $url . $href);
}
$html = $doc->saveHTML();

您可能希望对具有src属性的标记执行相同的操作。

答案 1 :(得分:-1)

你也可以使用preg_replace(),尽管DOMDocument解析是最强大的。