2011-01-29 10 views
0

タイトルによれば、どのようにしてASP ViewStateの値を取得できますか?私は以下のコードを使用しています。ありがとう!PHPのcURLとSimpleHTMLDom - ASPビューステートの値を取得できません

// create curl resource 
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "http://butlercountyclerk.org/bcc-11112005/ForeclosureSearch.aspx"); 

    $data = array(
     'Search:btnSearch' => 'Search', 
     'Search:ddlMonth' => '1', 
     'Search:ddlYear' => '2011', 
     'Search:txtCaseNumber' => '', 
     'Search:txtCompanyName' => '', 
     'Search:txtLastName' => '', 
     '__EVENTTARGET' => urlencode('Search:dgSearch:_ctl14:_ctl2'), 
     '__VIEWSTATE' => 'dDwtMjk2Mjk5NzczO3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDE+Oz47bDx0PDtsPGk8Mz47aTwxOT47PjtsPHQ8dDw7cDxsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0PjtpPDU+Oz47bDxwPDIwMDY7MjAwNj47cDwyMDA3OzIwMDc+O3A8MjAwODsyMDA4PjtwPDIwMDk7MjAwOT47cDwyMDEwOzIwMTA+O3A8MjAxMTsyMDExPjs+Pjs+Ozs+O3Q8QDA8Ozs7Ozs7Ozs7Oz47Oz47Pj47Pj47Pj47PmVlaXw5JK161vti9TC+QMdeTNQI' 
    ); 

    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

    //return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // Create a DOM object 
    $html = new simple_html_dom(); 

    // Load HTML from a string 
    $html->load($output); 

    // Find all images 
    $value = $html->find('input[name="__VIEWSTATE"]'); 

    foreach ($value as $v) { 
     echo $v->value; 
    } 

    //echo $value->value; 

    // close curl resource to free up system resources 
    curl_close($ch); 

    //$output; 
+0

どのようにHTMLの外観がわからなくてもこれに答えることができますか?何がうまくいかない? –

+0

HTMLには、コードに記載されている@が使用できます。 – Klinky

答えて

0

simple_html_domがHTMLの一部を解析できないように見えます。あなたはHTML Tidyを通してHTMLを "きれいにする"ことができます。また、あなたは、属性名の前後""を必要としないsimple_html_dom

$tidy = new tidy(); 
$output = $tidy->repairString($output); 

$outputをロードする前にこれを追加します。

HTML Tidyは拡張機能であり、動作するにはPHPによってロードする必要があります。

関連する問題