簡體   English   中英

用PHP搜尋選項標簽

[英]Crawling option tag with Php

我嘗試了很多事情,但無法讀取標簽上的值。 我在這里和不同的博客上都看到了類似的示例,但是那里給出的解決方案並不能解決我的問題。

HTML在網站上是這樣的:

<div>
   <select name="ctl00$ContentPlaceHolder1$ddlCityID" id="ddlCityID">
    <option value="">Choose</option>
        <option value="14">Roma</option>
        <option value="15">Milan</option>
        <option value="16">Inter</option>
   </select>
</div>

我在php上的代碼:

$pageTitle = 'select[@id="ddlCityID"]';
$html = file_get_html($url);

  if ($html != null )
  {
     foreach($html->find($pageTitle) as $element) 
     {
    $link = $element->find('option');
    callfunction($link[0]->option);
     }
  }

錯誤:

Notice: Undefined offset: 0 in C:\Aptana Studio 3 = a.php on line 57
Notice: Trying to get property of non-object in C:\Aptana Studio 3 = a.php on line 57

我的問題在哪里,如何獲得標簽的價值以及標簽中的文字。

謝謝;

繼續使用simplehtmldom而不是str_pos(但是,我建議更改解析器,因為simplehtmldom非常繁重)。

您正在尋找的解決方案是

include('simple_html_dom.php');

$str = '<div>
   <select name="ctl00$ContentPlaceHolder1$ddlCityID" id="ddlCityID">
    <option value="">Choose</option>
        <option value="14">Roma</option>
        <option value="15">Milan</option>
        <option value="16">Inter</option>
   </select>
</div>';

$pageTitle = 'select[id=ddlCityID]';
$html = str_get_html($str);

if ($html != null ) {
    foreach($html->find($pageTitle) as $element) {
        foreach($element->find('option') as $trueElement) {
            echo $trueElement->innertext;
        }
    }
}

請注意,內部文本將為您提供“選擇”,“羅馬”,“米蘭”,“國際”。 現在,trueElement包含每個OPTION標記。

同樣,“ id”之前的“ @”也沒有用。

更新:這是我測試過的完整工作代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM