[英]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.