在我获取的一段HTML内容中,有以下内容很多条:<tr><td class="cols01"><span class="price">¥710 </span>
<span class="tax">经济舱 </span><br /><span method="loadding" class="" style="display:none"></span><a href="javascript:void(0)" method="moreflight" itemid="1" flightNo="CA1559" flightclass="Y" datacache="0" >所有舱位</a><span method="spanMore" itemid="1" class="flight_down"></span></td><td>.....</td>......</tr><tr><td class="cols01"><span class="price">¥810 </span>
<span class="tax">经济舱 </span><br /><span method="loadding" class="" style="display:none"></span><a href="javascript:void(0)" method="moreflight" itemid="1" flightNo="MA1578" flightclass="Y" datacache="0" >所有舱位</a><span method="spanMore" itemid="1" class="flight_down"></span></td><td>.....</td>......</tr>我写了以下代码来提取上面的红色部分:$html = preg_replace('/>(\s+)/','>',$html);
$html = preg_replace('/(\s+)</','<',$html);
$html = str_replace("\r\n",'',$html);
$html = str_replace("\t",'',$html);
$result=array();
$lowerPrice = array();preg_match_all('~<tr><td class="cols01"><span class="price">¥(.*?)</span><span class="tax">(.*?)</span><br/><span method="loadding" class="" style="display:none"></span><a href="javascript:void\(0\)" method="moreflight" itemid="1" flightNo="(.*?)" flightclass="Y" datacache="0" >(.*?)</a><span method="spanMore" itemid="1" class="flight_down"></span></td>~is',$html,$data);foreach($data[1] as $key=>$item){
$result[$key]["price"]=$item;
}
foreach($data[3] as $key=>$item){
$result[$key]["flyno"]=$item;
}
print_r($result);
但是却得不到。求dingsongtao大哥赐教! 谢谢
<span class="tax">经济舱 </span><br /><span method="loadding" class="" style="display:none"></span><a href="javascript:void(0)" method="moreflight" itemid="1" flightNo="CA1559" flightclass="Y" datacache="0" >所有舱位</a><span method="spanMore" itemid="1" class="flight_down"></span></td><td>.....</td>......</tr><tr><td class="cols01"><span class="price">¥810 </span>
<span class="tax">经济舱 </span><br /><span method="loadding" class="" style="display:none"></span><a href="javascript:void(0)" method="moreflight" itemid="1" flightNo="MA1578" flightclass="Y" datacache="0" >所有舱位</a><span method="spanMore" itemid="1" class="flight_down"></span></td><td>.....</td>......</tr>我写了以下代码来提取上面的红色部分:$html = preg_replace('/>(\s+)/','>',$html);
$html = preg_replace('/(\s+)</','<',$html);
$html = str_replace("\r\n",'',$html);
$html = str_replace("\t",'',$html);
$result=array();
$lowerPrice = array();preg_match_all('~<tr><td class="cols01"><span class="price">¥(.*?)</span><span class="tax">(.*?)</span><br/><span method="loadding" class="" style="display:none"></span><a href="javascript:void\(0\)" method="moreflight" itemid="1" flightNo="(.*?)" flightclass="Y" datacache="0" >(.*?)</a><span method="spanMore" itemid="1" class="flight_down"></span></td>~is',$html,$data);foreach($data[1] as $key=>$item){
$result[$key]["price"]=$item;
}
foreach($data[3] as $key=>$item){
$result[$key]["flyno"]=$item;
}
print_r($result);
但是却得不到。求dingsongtao大哥赐教! 谢谢
echo htmlspecialchars($str) . '<br /><br />';
preg_match_all("'<tr><td class=\"cols01\"><span class=\"price\">¥(.*?)</span><span class=\"tax\">(.*?)</span><br/><span method=\"loadding\" class=\"\" style=\"display:none\"></span><a href=\"javascript:void\(0\)\" method=\"moreflight\" itemid=\"1\" flightNo=\"(.*?)\" flightclass=\"Y\" datacache=\"0\" >(.*?)</a><span method=\"spanMore\" itemid=\"1\" class=\"flight_down\"></span></td>'isx",$str,$data);print_r($data);
$html = '<tr><td class="cols01"><span class="price">¥710 </span>
<span class="tax">经济舱 </span><br /><span method="loadding" class="" style="display:none"></span><a href="javascript:void(0)" method="moreflight" itemid="1" flightNo="CA1559" flightclass="Y" datacache="0" >所有舱位</a><span method="spanMore" itemid="1" class="flight_down"></span></td><td></td></tr><tr><td class="cols01"><span class="price">¥810 </span>
<span class="tax">经济舱 </span><br /><span method="loadding" class="" style="display:none"></span><a href="javascript:void(0)" method="moreflight" itemid="1" flightNo="MA1578" flightclass="Y" datacache="0" >所有舱位</a><span method="spanMore" itemid="1" class="flight_down"></span></td><td></td></tr>
';$html = preg_replace('/>(\s+)/','>',$html);
$html = preg_replace('/(\s+)</','<',$html);
$html = preg_replace('/(\s+)/',' ',$html);
$html = str_replace("\r\n",'',$html);
$html = str_replace("\t",'',$html);
echo $html;
echo "<pre>";
$result=array();
preg_match_all('~<tr><td class="cols01"><span class="price">¥(.*?)</span><span class="tax">(.*?)</span>~is',$html,$data);
foreach($data[1] as $key=>$item){
$result[$key]["money"]=$item;
}
foreach($data[2] as $key=>$item){
$result[$key]["tax"]=$item;
}preg_match_all('~<a[^>]*?href="javascript:void\(0\)"[^>]*?flightNo="(.*?)"[^>]*?>所有舱位</a>~is',$html,$data);
foreach($data[1] as $key=>$item){
$result[$key]["flightNo"]=$item;
}
print_r($result);