使用PHP动态替换HTML元素的内容


Dynamically Replace contents of HTML elements using PHP

我目前需要一种方法来从不同的网站获取某些元素,并使用PHP将它们的内容替换为我自己的内容。

如果一个网站的页面包含下表和div

    <div>Div Contents!</div>
    <table>
      <tr>
        <td>Table Column 1</td>
        <td>Table Column 2</td>
      </tr>
    </table>

我需要能够获取这些信息,并用我自己的数据替换"Div Contents!"、"Table Column 1"answers"TableColumn 2"。

最好的方法是什么?正则表达式或strpos/str_replace/substr等

我感谢你提供的任何帮助和例子。

使用cURL从远程源获取HTML内容,使用正则表达式(preg_match())或一系列字符串操作提取所需数据,从解析过程中分配的变量中以所需格式输出数据。

理想情况下,regex的构建和测试速度会快得多,但strpos/substr组合也可以做到这一点。

*我在之前就已经构建了数据挖掘程序

  1. 使用cURL获取其他页面的HTML
  2. 分析和修改-请参阅此问题。您很可能希望使用像XMLReader或DOM这样的原生PHP库
  3. 显示结果HTML
// read URL into dom document
$doc = domxml_open_file('http://domain.com/test.php');
// replace content of div
$els = $doc->getElementsByTagName('div');
$els[0]->set_content('new content');
// replace content of tds
$els = $doc->getElementsByTagName('td');
$els[0]->set_content('new content');
$els[1]->set_content('new content');
// echo the final output
echo $doc->saveXML();

票据

  • 上面的代码应该直接使用URL,而不必使用CURL
  • 我使用了一种直接的方法来改变值(假设你提到的结构是真的)。您应该使用循环