Вызов функции обратного вызова ob_start - PHP - PullRequest
1 голос
/ 17 марта 2011

Я хотел бы получить вывод «Яблоки», потому что он находится внутри тега span с идентификатором, который называется fruit.Так какие коды должны быть написаны в этой функции обратного вызова?

 <?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();
    ?>

1 Ответ

2 голосов
/ 17 марта 2011
$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"
...