我有這樣的網頁,其中我使用後(rotas.php
):的preg_match回聲不工作
<tr><td>SBGL </td><td>KMIA </td><td>B763 </td><td>UM409 EKUBA UM409 DADOT UM409 VUMPI UM409 </td><td>959 </td><td>N0460 </td><td>310 </td><td>H </td><td>EET/SBBS0030 SBAZ0230 SVZM0425 </td></tr><tr><td class='alt'>SBGL </td><td class='alt'>KMIA </td><td class='alt'>B763 </td><td class='alt'>UM409 EKUBA UM409 DADOT UL304 ISANI UL304 </td><td class='alt'>727 </td><td class='alt'>N0490 </td><td class='alt'>360 </td><td class='alt'>H </td><td class='alt'>EET/SBBS0018 SBAZ0157 SVZM0400 </td></tr><tr><td>SBGL </td><td>KMIA </td><td>B763 </td><td>UM409 EKUBA UM409 DADOT UL304 ISANI </td><td>837 </td><td>N0470 </td><td>320 </td><td>H </td><td>EET/SBBS0030 SBAZ0230 SVZM0425 </td></tr><tr><td class='alt'>SBGL </td><td class='alt'>KMIA </td><td class='alt'>A332 </td><td class='alt'>UM409 EKUBA UM409 DADOT UM409 VUMPI UM409 </td><td class='alt'>849 </td><td class='alt'>N0480 </td><td class='alt'>360 </td><td class='alt'>H </td><td class='alt'>EET/SBBS0025 SBAZ0222 SVZM0442 </td></tr><tr><td colspan='9' align='center' class='alt'>4 registro(s) encontrado(s)</td></tr>
,這是我的網頁:
<?php
$adep = $_GET['adep'];
$ades = $_GET['ades'];
$postdata = http_build_query(
array(
'adep' => $adep,
'ades' => $ades
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://www.cgna.gov.br/sistemas/harpia/rotas.php', false, $context);
preg_match_all("'<tr><td>".$adep." </td><td>".$ades." </td>(.*?)<\/tr>'si", $result, $match1);
preg_match_all("'<tr><td class=\'alt\'>".$adep." </td><td class=\'alt\'>".$ades." </td>(.*?)<\/tr>'si", $result, $match2);
foreach($match1[1] as $rota)
{
preg_match("'<td>(.*?)<\/td>'si", $rota, $match_rota1);
echo $match_rota1[1];
}
foreach($match2[1] as $rota)
{
preg_match("'<td class=\'alt\'>(.*?)<\/td>'si", $rota, $match_rota2);
echo $match_rota2[1];
}
?>
當我使用$match_rota1[1]; AND $match_rota2[1];
它正常工作,顯示結果B763 B763 B763 A332
但是,當我嘗試使用$match_rota1[2]; AND $match_rota2[2];
我得到一個空白頁而不是結果,如UM409 EKUBA UM409 DADOT UL304 ISANI UL304
CNC中
從這樣
<tr><td>SBGL </td><td>KMIA </td><td>B763 </td><td>UM409 EKUBA UM409 DADOT UM409 VUMPI UM409 </td><td>959 </td><td>N0460 </td><td>310 </td><td>H </td><td>EET/SBBS0030 SBAZ0230 SVZM0425 </td></tr>
每一行我希望這UM409 EKUBA UM409 DADOT UM409 VUMPI UM409
,而不是這個B763
爲什麼不工作我的代碼?
有什麼可以'$ adep'和'$ ades'是什麼? – revo
SBGL和KMIA,對於這種情況 –
您的正則表達式包含2個數組,其中一個爲完全匹配,另一個爲捕獲的組。所以這裏沒有任何異常! – revo