我使用CURL来获取表单并将其存储在字段
中..,
$str = curl_exec($ch);
$ str HTML有一个textarea如下
<td class="fntc">
Description
</td>
<td class="ffc">
<textarea name="descri" rows="6" class="emf" maxlength="128000">fictional.</textarea>
</td>
</tr>
现在我正在尝试使用dom来获取此区域并且不成功
$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;
}
但是我无法得到这个价值。我在这里做错了吗?
答案 0 :(得分:5)
由于<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