Var_dump() 显示字符串,echo()/print_r() Returns 无

Var_dump() Displays String, echo()/print_r() Returns Nothing

我正在使用简单 HTML DOM 解析器库来解析带有 DOCTYPE 标记的 URL。我能够到达所需的标签,但每当我回显或尝试存储结果时,它都没有显示任何内容。但是,var_dump() 向我显示了所需的字符串。

require_once("simpledom.php");

$url="http://google.com";
$sPage = file_get_contents($url);
$sPageContent = new simple_html_dom();
$sPageContent->load($sPage);
$sObjects = $sPageContent->find('unknown');

foreach($sObjects as $sKey)
{
    var_dump($sKey->_[4]); /*this var_dump shows the stuff */
    $showres = $sKey->_[4]
}

/* this variable should hold the string but it shows nothing */
echo $showres;

尝试将值转换为字符串

$showres = (string)$sKey->_[4];

此外,你的回声在你的循环之后

echo htmlentities($showres);

将回显 $showres 中的内容并将所有 HTML 标记替换为 HTML 实体,这样您就可以看到该字符串而不会让浏览器将其用作标记。

但不确定您要做什么。

当输出 <!doctype html> 时,浏览器将其作为元素读取,因此您需要对 <> 符号进行编码。 PHP 已经为此构建了一个函数,http://php.net/manual/en/function.htmlspecialchars.php

所以你的代码应该是:

echo htmlspecialchars($showres);

在你的源代码中会给你

&lt;!doctype html&gt;