2014-12-02 4 views
0

я с помощью simple_html_dom.phpПолучить Textarea значение с SimPE HTML Dom

как получить значение текстового, если сайт использует плохой признак.

тег textarea уже закрыт до </textarea> как входной тег.

Textarea HTML, как показано ниже:

<textarea name="xxx" id="xxx" />this is value</textarea> 

Когда я использовать эту функцию, я не получаю ничего

$textarea = $html->find("textarea[name=xxx]"); 
$contents = $textarea->innertext; 
echo $contents; 

как получить 'это значение', используя simple_html_dom.php или другой альтернативы?

Спасибо

+0

'найти ("путь", $ N)' возвращает массив элементов DOM или N-й элемент, если указан указатель '$ N' ... Поэтому в вашем случае' $ html-> find ("textarea [name = xxx]", 0); 'должен работать. .. – Enissay

ответ

1

Ну, мой предыдущий комментарий не будет работать в этом случае, я оставлю это для информации, хотя ...

Другой подход заключается в очистке его перед разбором его simple_html_dom используя Tidy extension. Но, кажется, не работает здесь либо ...

Последний подход я могу думать, и если это ваш единственный проблематичный случай, чтобы использовать регулярные выражения, чтобы получить то, что вы хотите:

  • Использование <textarea.*?name="xxx".*?id="xxx".*?\/>([^<]+)<\/textarea> ==>RegEx DEMO
  • Выход будет в первой группе результирующего массива $match. Проверьте рабочий код:

    $input = <<<_DATA_ 
    <textarea name="xxx" id="xxx" />this is value</textarea> 
    _DATA_; 
    
    $pattern = '/<textarea.*?name="xxx".*?id="xxx".*?\/>([^<]+)<\/textarea>/'; 
    
    preg_match($pattern, $input, $match); 
    var_dump($match) 
    

    Working DEMO

+0

хорошее решение, скорее всего, будет работать отлично. я должен попробовать это. Спасибо, сэр – Baron

0

Это легко получить значение Teaxtarea в JavaScript:

<script type=text/javascript> 

function getValueTextarea() 
{ 
    var vl=document.getElementById("tx").value; 
    alert(vl); 
} 

</script> 

<body> 
    <textarea id="tx">Value Of Textarea</textarea> 
    <input id="button" value="Get Value" onclick="getValueTextarea()"> 
</body>