Невозможно получить значения из текстовой области, используя DOM - PullRequest
2 голосов
/ 09 декабря 2011

Я использую CURL для извлечения формы и сохранения ее в поле

..,
$str = curl_exec($ch);

HTML-код $ str имеет текстовую область следующим образом

<td class="fntc">
Description
</td>
<td class="ffc">
<textarea name="descri" rows="6" class="emf" maxlength="128000">fictional.</textarea>
</td>
</tr>

Теперь я пытаюсь использоватьЯ забрал эту область и был неудачным

$dom = new DOMDocument;
$dom->loadHTML($str);

// Get all the textarea field nodes
$inputs = $dom->getElementsByTagName('textarea');
// Iterate over the input fields and save the values we want to an array
foreach ($inputs as $input) {
    $name = $input->getAttribute('name');
    $val = $input->getAttribute('value');
    $field_vals[$name] = $val;
}

Но я не могу получить значение. Есть ли что-то, что я делаю здесь неправильно?

1 Ответ

5 голосов
/ 09 декабря 2011

Поскольку <textarea> содержит текст внутри тега, а не в атрибуте value, вы можете получить к нему доступ с помощью nodeValue:

$val = $input->nodeValue;

Обновление

Хорошо,Я подтвердил это сейчас:

$d = new DOMDocument();
$d->loadHTML("<html><head></head><body><textarea>textarea contents</textarea></body></html>");
$t = $d->getElementsByTagName("textarea");
foreach ($t as $tx) {
  echo $tx->nodeValue;
}

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