1

我正在尝试让自己成为一个主页,仅供我个人使用,我想做的是显示来自不同网站的不同信息,这些信息每天变化几次。即新闻、天气等。我希望我最喜欢的信息始终可见,而无需访问许多页面。由于许多网站没有在 iframe 中加载,这是我尝试的第一件事,我认为 PHP 可能能够帮助我。

所以我需要做的是获取一个 DIV 的内容并用 PHP 将它放在我的页面中。源页面上的 DIV 是在服务器上生成的,但它始终具有相同的 ID。

例子:

<div id="nowbox"> 
<a href="http://www.seznam.cz/jsTitleExecute?id=91&h=19331020">
<img width="135" height="77" src="http://seznam.cz/favicons/title//009/91-JrAEVc.jpg" alt="" /></a> 
<div class="cont"> <ul> <li> 
<strong><a href="http://www.seznam.cz/jsTitleExecute?id=91&h=19331020">Sledujte dnes od 20.00 koncert Tata Bojs</a></strong> 
<p>Nenechte si ujít tradiční benefiční koncert kapely Tata Bojs. Sledujte představení na Seznam.cz</p> </li> </ul> 
</div>
</div> 

所以 DIV 的 ID 是“nowbox”,我需要复制其中的所有内容并将其放在我的页面中。

到目前为止,我只能使用这个

$contents = file_get_contents("http://seznam.cz");

并查看页面的所有内容,但我不知道如何剥离所有内容并只留下所需的 DIV。

我在 PHP 方面不是很有经验,所以我会非常感谢任何帮助,越容易理解越好。

编辑:谢谢答案。基本上我只是想把我作为示例发布的代码放到一个变量中,这样我就可以在我页面的某个地方回显它。问题是代码和网站的其他部分一样发生了变化,只有一些东西保持不变,即 DIV ID。绝对不是最优雅的解决方案(即使我知道,但由于该网站仅用于我的目的,这并不重要)但我成功设法开始工作的一个是我得到了整个页面:

$contents = file_get_contents("http://seznam.cz");

然后用 STRPOS 加/减我可以手动计算的静态字符数来计算代码中特定唯一位置的字符数。然后我将字符串拆分为ARRAY,并丢弃我不需要的部分在字符串的开头获取代码的开头,然后在代码结束后使用相同的方法剪切字符串。

4

2 回答 2

1

如果你想做这个服务器端,我建议你使用phpquery

require('phpQuery/phpQuery.php');    
$doc = phpQuery::newDocumentFileXHTML('http://seznam.cz');
$html = pq('#nowbox')->htmlOuter();
于 2013-05-12T13:26:50.647 回答
1

我无法完全理解您想要实现什么以及为什么,但是您可以通过服务器和客户端来做到这一点,首先是客户端方式:

好吧,您要的是提取DOM的一部分,在客户端使用javascript + jQuery,您可以非常快速地实现它,只需调用$.load("/mypage #nowbox")函数即可。

这可以通过使用任何 DOM 操作库在服务器端实现,也可以通过使用任何 DOM 操作库来实现,或者是捆绑在 ( DOMDocument ) 中的库,或者是更容易使用的库(有点内存泄漏)simplehtmldom

所以你有它,客户端和服务器方式的选项来实现,选择最适合你需要的一个。

请注意,任何一种方法都无法使用任何 CSS 规则,因为 css 不会加载到您的 dom 中。

祝你好运!

于 2013-05-12T13:05:23.040 回答