Basit HTML DOM yardım

4 Cevap php

How can I extract the value attribute of an input tag? Using SIMPLE HTML DOM let me give you an example:

<form action="#" method="post" name="test_form" id="test_form">
Name<input type="text" name="name" value="NaMe"/><br />

Address<input type="text" name="address" value="AdDrEsS"/><br />

<input type="hidden" value="sayantest" />
</form>

Ben gizli tipi giriş etiketi sadece değerini değil, diğerleri ayıklamak istiyorum.

4 Cevap

(Eğer sunucu üzerinde değere erişmek istiyorsanız) sizden değerini almak isteyen etiketi (yani javascript değeri erişebilirsiniz) yanı sıra bir isim id koymak istiyorum.

örneğin

<input type="hidden" name="test" id="test" value="sayantest" />

: sonra javascript kadar basittir

<script type="text/javascript">
  var val = document.getElementById('test').value;
  alert(val);
</script>

BASİT HTML DOM kullanarak

Bu ismin PHP kütüphanesi demek istiyorsunuz?

Eğer öyleyse, girdisini belirlemek için bir yol seçmek olurdu. İstediğiniz gizli girişine bir id veya name eklemek için biçimlendirme değiştiremezsiniz ise, "türüyle ilk giriş almak gibi bir şey ile gelip olurdu "şeklinde gizli:

$html= new simple_html_dom();
$html->load('<html><body<form action="#" method="post" name="test_form" id="test_form">Name<input type="text" name="name" value="NaMe"/><br />Address<input type="text" name="address" value="AdDrEsS"/><br /><input type="hidden" value="sayantest" /></form></body></html>');

$input= $html->find('#test_form input[type=hidden]', 0);
$input->value;

En kolay yolu, önce de belirtildiği gibi, gizli giriş bir id nitelik vermek ve ardından getElementById ve .value veya .getAttribute('value') kullanmak için seçmek için.

Eğer sayfadaki tüm gizli girdilerin değerlerini almak için, ya da kimliği enjekte edemez istiyorsanız Alternatif olarak, bu gibi bir şey kullanabilirsiniz:

var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++){
    if(inputs[i].getAttribute('type') == 'hidden'){
    	alert(inputs[i].getAttribute('value'));
    }
}

İşte size ilk söz gösterdi tam olarak ne kullanıyor ... ile geldi budur. Ben yaptığım test_form.htm orijinal olduğunu gizlenmiş tüm girdi, echo değer olduğunu unutmayın:

<?php
function scraping_form()
{
   // create HTML DOM
   $html = file_get_html('test_form.htm');

   // get input hidden value
   $aObj = $html->find('input[type="hidden"]');
   foreach ($aObj as $hKey=>$hidden)
   {
     $valueAttribute = $hidden->value;
     echo "*TEST* ".$hKey.": ".$valueAttribute."<br />";
   }

   // clean up memory
   $html->clear();
   unset($html);

   return;
}
// -----------------------------------------------------------------------------
// test it!
// user_agent header...
ini_set('user_agent', 'My-Application/2.5');
scraping_form();
?>