2012-03-27 68 views
0

使用php file_get_contents()我只想要文章和图像。但它是整个页面。 (我知道有其他办法可以做到这一点)Php file_get_contents()问题

例子:

$homepage = file_get_contents('http://www.bdnews24.com/details.php?cid=2&id=221107&hb=5', 
true); 
echo $homepage; 

这显示完整的页面。有没有什么办法只显示cid = 2 & id = 221107 & hb = 5的帖子。

非常感谢。

+0

嗯,我是新来的PHP,我只想要特定的帖子和图像,但它是显示整个页面。 – user1295995 2012-03-27 16:22:27

+0

玩得开心解析该表... – JKirchartz 2012-03-27 16:22:58

+2

你有没有考虑过他们的RSS feed? http://rss.bdnews24.com/rss/english/home/rss.xml – Pete 2012-03-27 16:23:02

回答

2

使用PHP的DomDocument解析页面。如果你愿意,你可以更多地过滤它,但这是一般的想法。

$url = 'http://www.bdnews24.com/details.php?cid=2&id=221107&hb=5'; 
// Create new DomDocument 
$doc = new DomDocument(); 
$doc->loadHTMLFile($url); 


// Get the post 
$post = $doc->getElementById('opage_mid_left'); 


var_dump($post); 

更新: 除非图像是一个要求,我会使用打印机友好的版本:http://www.bdnews24.com/pdetails.php?id=221107,它是干净多了。

+0

nachito图像很重要。 – user1295995 2012-03-27 16:32:19

+0

我如何显示图像.. – user1295995 2012-03-27 16:32:55

+0

然后用第一个版本去掉你不想要的元素 – nachito 2012-03-27 16:34:58

2

您将需要使用DOM解析器解析生成的HTML以仅获取所需部分的HTML。我喜欢PHP Simple HTML DOM Parser,但正如Paul指出的,PHP also has it's own

+0

好吧,Xeon06我正在检查.. – user1295995 2012-03-27 16:22:53

+3

尽管你可能会使用PHP内置的DOMDocument,因为它*可能*更高效。 – 2012-03-27 16:23:38

+0

谢谢Xeon06。得到它了。 – user1295995 2012-03-27 16:28:54

0

您可以使用正则表达式提取

<div id="page"> 
     //POST AND IMAGE EXIST HERE 
</div> 

部分来自取出内容,推动它在网页上...

+0

http://stackoverflow.com/a/1732454/104999 – 2012-03-27 16:23:37