如何使用PHP加载外部页面并替换该页面上的内容?

时间:2011-06-04 03:56:49

标签: php

我正在构建一个PHP应用程序,允许用户上传广告并在特定网站的特定页面上进行预览。现在,我是通过截取网页截图,删除广告和放置自己的网页来实现的。这看起来很愚蠢。

获取网址内容并替换该网页上特定内容之间出现的代码的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

  • 将页面源加载到DOMDocument对象
  • 使用DOMDocument对象
  • 上的XPath进行搜索和替换

示例:

<?php

$dom = new DOMDocument();
$dom->strictErrorChecking = false;
$dom->loadHTMLFile("http://www.example.com");

$xpath = new DOMXPath($dom);

$logoImage = $xpath->query("//div[@id='header-logo']//a//img")->item(0);
$logoImage->setAttribute('src', 'http://www.google.com/images/logos/ps_logo2.png');

$logoLink = $xpath->query("//div[@id='header-logo']//a")->item(0);
$logoLink->setAttribute('href', 'http://www.google.com/');

echo $dom->saveHTML();

?>

该示例加载了example.com的来源,并将徽标替换为google.com的徽标和谷歌链接。

代码没有任何验证,但应该很容易根据您的需要进行修改:)

答案 1 :(得分:1)

我不确定您希望如何执行此操作的完整情况。 但是根据您的问题,最好的方法是使用Ajax。

通过Ajax传递您要显示的页面的详细信息,并在php过滤器页面中显示并返回所需的结果。

在Ajax请求结束时,将结果显示在特定位置。

即使在JavaScript中,您也可以按照Ajax请求返回的结果过滤结果。