Ben bir html masa kapmak için cURL kullanabilir miyim?

3 Cevap php

Ben kendi web sitesine koymak için harici bir web sayfası kapmak için cURL kullanmaya çalışıyorum, bu temelde bir spor takımı, bir "merdiven", ben onları temas, ancak merdivenin bir RSS beslemesi yok, bu yüzden ' m diğer yollarla merdiven elde etmek için çalışırken, bu ve < / Table> cURL kullanarak? Ben aşağıdaki kodu kullanarak istediğiniz sayfayı yakalayabilir, ama ben HTML tablo dışında başka bir şey gerekmez.

$ch = curl_init ("http://www.sportingpulse.com/rpt_ladder.cgi?results=N&round=15&client=1-3909-47801-81021-6151461&pool=-1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo $page = curl_exec($ch);

Birisi bana yardımcı olabilir, bu harika olurdu. Teşekkürler

Leanne

3 Cevap

Sen döndürülen dize tablo ayıklamak için sayfa ve dize işleme içeriğini kapmak Kıvrılmaları kullanmanız gerekir.

Başlatmak için basit bir regex olacaktır:

/<table>(.*)<\/table/s

Eğer yukarıdaki örnek alırsak eğer öyleyse, sen gibi bir şey yapmak istiyorum:

$page = curl_exec($ch);

if (preg_match("/<table>(.*)<\/table/s", $page, $matches)) {
    echo $matches[1];
}

Bu kod sayfasındaki ilk tablosunu maç olacak. Sen ayıklamak istediğiniz tam HTML maç çimdik gerekiyordu.

Tamam, bu yüzden (kimsenin bilmesini istiyorsa) bu kullanarak çalışma başardı

$ch = curl_init ("http://www.sportingpulse.com/rpt_ladder.cgi?results=N&round=15&client=1-3909-47801-81021-6151461&pool=-1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);

preg_match('#<table[^>]*>(.+?)</table>#is', $page, $matches);
foreach ($matches as &$match) {
    $match = $match;
}
echo '<table>';
    echo $matches[1];
echo '</table>';

:)

Saf regex bir alternatif seçenek DOMDocument ve XPath kullanmak olacaktır. Bu bir nesnenin içine tüm belgeyi döner ve daha kolay tablonun içeriği ile çalışma yapar