Справка PHP DOMParser - PullRequest
       6

Справка PHP DOMParser

0 голосов
/ 22 февраля 2010

Как рекомендовано в моем предыдущем вопросе, я использую PHP Simple HTML DOM Parser как способ поиска в документе HTML и получения содержимого из определенного элемента (в моем случае, текстовой области). Мне было интересно, если кто-то использовал это раньше и смог дать мне какой-либо совет по моей проблеме (или порекомендовать другое решение). Код, который я использую, выглядит следующим образом:

include "../simple_html_dom.php";
$html     = file_get_html('http://example.com');
$textarea = $html->find('textarea[id=body]'); 
$contents = $textarea->outertext;

echo $contents;

Моя проблема в том, что скрипт запускает код и не получает данные от элемента (который выглядит следующим образом:

<textarea id="body" name="body" rows="12" cols="75" tabindex="3">
At 2/21/10 10:15 PM, You wrote
: Hello world,
: how are you today?

</textarea>

Извините, что прошу совета с этим определенным методом, но если у кого-то еще есть какой-либо совет, он будет с благодарностью Большое спасибо заранее

Ответы [ 2 ]

0 голосов
/ 22 февраля 2010

На странице, на которую вы ссылаетесь, написано следующее:

// Find all <div> which attribute id=foo
$ret = $html->find('div[id=foo]'); 

Это подсказывает мне, что $ret будет коллекцией.Синтаксически вы используете что-то похожее на селекторы атрибутов CSS .Поскольку этот синтаксис предназначен для применения к любому атрибуту, тот факт, что id должен быть уникальным, не учитывается, и коллекция возвращается ... Я подозреваю, что если вы попробовали что-то подобное ...

$ret = $html->find('div#foo'); 

... это может сработать.

0 голосов
/ 22 февраля 2010

Как вы можете видеть в документации find возвращает массив, поэтому для начала вы не должны рассматривать его как узел. Кроме того, вы хотите innertext не outertext.

Это должно работать:

include "../simple_html_dom.php";
$html     = file_get_html('http://example.com');
$textarea = $html->find('textarea[id=body]'); 
$contents = $textarea[0]->innertext;

echo $contents;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...