ob_start回调函数提取输出 - PHP

问题描述:

我想获得输出“苹果”,因为它在span标记里面有一个叫做水果的id。那么应该在该回调函数中写入哪些代码?ob_start回调函数提取输出 - PHP

<?php 
    function callback($buffer) { 
     // get the fruit inHTML text, the output should be "Apples" only 
     .... 
     .... 
    } 
    ob_start("callback"); 
    ?> 
    <html> 
<body> 
<p>It's like comparing <span id="fruit">Apples</span> to Oranges.</p> 
</body> 
</html> 
<?php 
    ob_end_flush(); 
    ?> 

$dom = new DOMDocument; 

$dom->loadHTML($buffer); 

$xpath = new DOMXPath($dom); 

$node = $xpath->query('//span[@id="fruit"]'); 

var_dump($node->item(0)->nodeValue); // string(6) "Apples" 

一个更通用的解决方案......

$dom = new DOMDocument; 

$dom->loadHTML($buffer); 

$text = $dom->getElementsByTagName('p')->item(0)->getElementsByTagName('span')->item(0)->nodeValue; 

var_dump($text); // string(6) "Apples" 
+0

如何删除这个 “串(6)”,我想只有 “苹果”。 – 2011-03-17 06:16:27

+1

大声笑,没关系。谢谢 :) – 2011-03-17 06:23:54