【问题标题】:PHP Get File Content [closed]PHP获取文件内容[关闭]
【发布时间】:2013-06-23 01:08:03
【问题描述】:

我正在尝试在另一个网站上显示一个网站的内容。这是我目前拥有的:

<?php 
  $file = file_get_contents ('http://linkto.com/the-page'); 
  echo $file; 
?>

它从该页面获取所有内容。但是,我只需要从中获取一张桌子。我基本上只需要&lt;table id=arc&gt;&lt;/table&gt;的所有内容。

是否有任何简单的方法来编辑我的代码以获取该表?

【问题讨论】:

  • 开始阅读SimpleXMLDOMDocument 两者都不好用。
  • 当然您有权使用此其他网站页面。

标签: php file-get-contents


【解决方案1】:

这是一个使用 PHP 原生 DOM 解析器的解决方案,DOMDocument

$doc = new DOMDocument;
$doc->loadHTMLFile( 'http://linkto.com/the-page');

// Get the desired table 
$table = $doc->getElementById( 'arc');

// Print the table's HTML
echo $doc->saveHTML( $table);

【讨论】:

  • 我同意这是 OP 想要的,但要注意它仍然加载所有内容,它只是提供了一种 *访问 所需内容的方式.可能无关紧要,但是...
  • @jmoreno - 我会对不从远程站点加载所有内容的解决方案非常感兴趣。 :)
  • @nickb 如果它是 HTTP(我假设它是),那么在资源具有 Accept-ranges: bytes 的情况下,HTTP Range header 将起作用。并不是说这是个好主意,因为不知道#arc 元素在哪个范围内。
  • @PhpMyCoder 虽然这可能是可能的,但您做了两个假设(资源具有特定的标头,并且您可以确定相关元素的字节范围),这使得实现不切实际,这就是为什么我会对不加载所有内容的解决方案感兴趣,而不仅仅是理论。如果理论是可以接受的,我会将构成#arc 表的所有位都涂上粉红色,这样当它们从电线上脱落时就很容易看到;)
猜你喜欢
  • 2012-09-28
  • 2021-05-24
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2015-10-01
  • 2016-03-04
相关资源
最近更新 更多