我正在尝试将自己设为主页,仅供我个人使用,我想要做的是显示来自不同网站的不同信息,这些信息每天都会改变几次。即新闻,天气等。我希望在不需要访问许多页面的情况下始终显示我最喜欢的信息。由于许多网站都没有在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不是很有经验,所以我会非常感谢任何帮助,更容易理解更好。
编辑: THX的答案。基本上我只想把我作为示例发布的代码添加到变量中,这样我就可以在我的页面上的某个地方进行ECHO。问题是代码的变化和网站的其他部分一样,只有一些东西保持不变,即DIV ID。 绝对不是最优雅的解决方案(即使我知道,但因为网站只是为了我的目的,它应该没关系)但我成功设法开始工作的是我得到了整个页面:
$contents = file_get_contents("http://seznam.cz");
然后使用STRPOS加上/减去我可以手动计算的静态字符数来计算代码中特定唯一位置的字符数。然后我将字符串拆分为ARRAYs并丢弃我不需要在字符串开头获取代码开头的部分,然后在代码结束后使用相同的方法剪切字符串。
答案 0 :(得分:1)
我无法完全理解您想要实现的目标和原因,但您可以通过服务器和客户端,首先是客户端方式来实现这一目标:
嗯,你要问的是提取DOM的一部分,在客户端使用javascript + jQuery,只需调用$.load("/mypage #nowbox")
函数就可以非常快速地实现它。
这可以在服务器端实现,也可以使用php使用任何DOM操作库,无论是捆绑在(DOMDocument内)还是更容易使用的lib(有点内存泄漏), simplehtmldom
所以,你有它,客户和&amp;的选项;服务器实施方式,选择最适合您需求的方式。
请注意,任何一种方法都无法使用任何CSS裁定,因为css不会加载到您的dom中。
祝你好运!
答案 1 :(得分:1)
如果你想做这个服务器端,我建议你使用phpquery
require('phpQuery/phpQuery.php');
$doc = phpQuery::newDocumentFileXHTML('http://seznam.cz');
$html = pq('#nowbox')->htmlOuter();