从另一个页面获取 div 的元素 (PHP)

Posted

技术标签:

【中文标题】从另一个页面获取 div 的元素 (PHP)【英文标题】:Getting elements of a div from another page (PHP) 【发布时间】:2011-06-30 01:22:38 【问题描述】:

所以我有第一页:

<div id="div1">This is text one</div>

<div id="div2">This is text two</div>

<div id="div3">This is text three</div>

现在我想获取 div 1 的元素,它会返回 This is text one,我该怎么做?

【问题讨论】:

那么,您只想使用 php 从另一个页面抓取 div1 内的文本? 【参考方案1】:

您可以在 PHP 中使用 DOMDocument:

<?php

$doc = new DomDocument;

// We need to validate our document before refering to the id
$doc->validateOnParse = true;
$doc->loadhtml(file_get_contents('http://google.com/bla.php'));

var_dump($doc->getElementById('div1'));

?>

【讨论】:

如果'div1'的内容本来是空的,被javascript加载了怎么办? @teuneboon 如果网页是由 javascript 动态生成的怎么办?这种情况下怎么办?【参考方案2】:
$string = file_get_contents($url);
if (preg_match('/<div id="div1">([^<]*)<\/div>/', $string, $matches) > 0) 
    echo $matches[1]; //This is text one

【讨论】:

强烈建议不要使用正则表达式来解析 html。您可以为此使用 DomDocument DomDocument 不适合我,这个脚本节省了我的时间!我投票给了这位用户,因为他与我们分享了一个非常有用的 sn-p,谢谢!

以上是关于从另一个页面获取 div 的元素 (PHP)的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个网站通过 Id 获取元素 [关闭]

jQuery:从另一个元素触发悬停事件

元素正在从另一个元素中获取属性值

获取整个 div 及其元素并使用 php 邮件功能发送

javascript 从另一个页面更改元素

如何获取页面上除div之外的所有元素[重复]