2016-03-02 3 views
2

Я использую Simple HTML DOM Parser для анализа URL-адресов с тегом DOCTYPE. Я могу достичь требуемого тега, но всякий раз, когда я эхо или пытаюсь сохранить результаты, он ничего мне не показывает. Однако var_dump() показывает мне нужную строку.Var_dump() Отображает String, echo()/print_r() Возвращает ничего

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; 
+1

Что тип var_dump показывает вам? – PeterPan666

+0

var_dump показывает мне строку '' (length = 15) –

+0

Вы пытались эхо в цикле, как вы делаете var_dump? –

ответ

3

Когда выводятся <!doctype html>, браузер читает это как элемент, поэтому вам необходимо кодировать символыи >. PHP имеет уже созданную для этого функцию, http://php.net/manual/en/function.htmlspecialchars.php.

Так что ваш код должен быть:

echo htmlspecialchars($showres); 

который в источнике даст вам

&lt;!doctype html&gt; 
-2

попробуйте заливкой значение в строку

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

Кроме того, ваше эхо после цикла

+1

Это строка, которую уже сказал OP; 'var_dump показывает мне строку '' (length = 15)'. – chris85

+1

Значение уже является строкой, см. Второй комментарий. – PeterPan666

+0

Извините @ Давид, это не помогло –

1
echo htmlentities($showres); 

отзовется, что в $showres и заменить все HTML-разметку HTML сущностей так вы можете увидеть строку и не позволить браузеру использовать ее как разметку.

Не уверен, что вы пытаетесь это сделать.

Смежные вопросы