file_get_contents 返回一个包含文件内容的字符串。
因此,您可以使用任何您想要的字符串操作函数来处理这个字符串,就像您谈到的那样。
这样的事情,使用 str_replace,可能会做:
$content = file_get_contents('http://www.google.com');
$new_content = str_replace('<a href="', '<a href="site.php?url=', $content);
echo $new_content;
但请注意,当href 属性是<a 标记的第一个属性时,它只会替换该属性中的URL...
使用正则表达式可能对您有更多帮助;但恐怕也不会完美……
如果您正在处理 HTML 文档并想要一个“完整”的解决方案,那么使用 DOMDocument::loadHTML 并使用 DOM 操作方法可能是另一种(稍微复杂一点,但可能更强大)的解决方案。
这两个问题的答案也可能对您有所帮助,具体取决于您愿意做什么:
编辑看到评论后:
如果要替换两个字符串,可以将数组传递给str_replace的前两个参数。例如:
$new_content = str_replace(
array('<a href="', 'Pages'),
array('<a href="site.php?url=', 'TEST'),
$content);
这样:
- “
<a href="”将被“<a href="site.php?url=”替换
- 和 '
Pages' 将被替换为 'TEST'
并且,引用手册:
如果搜索和替换是数组,
然后 str_replace() 从
每个数组并使用它们进行搜索
并替换主题。如果更换
的值比 search 少,那么
空字符串用于其余的
替换值。如果搜索是
数组和替换是一个字符串,那么
此替换字符串用于
search 的每一个值。
如果你想替换 '<a href="' 的所有实例,那么 str_replace 默认会这样做 :-)