2009-08-07 11 views
3

私は自分のウェブサイトに入れるために外部のWebページを取得するためにcURLを使用しようとしています。基本的にはスポーツチームの「はしご」ですが、私は連絡を取りましたが、はしごのRSSフィードはありません。私は他の手段ではしごを取得しようとしている、<テーブル>と< /テーブル> cURLを使用してすべてをつかむことは可能ですか?次のコードを使用してページを取得できますが、HTMLテーブル以外は何も必要ありません。cURLを使用してhtmlテーブルを取得できますか?

$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); 

誰かが私を助けることができたら、それはすばらしいでしょう。おかげ

リアン

答えて

2

あなたは返された文字列からテーブルを抽出するために、ページと文字列処理の内容をつかむためにカールを使用する必要があります。開始する

簡単な正規表現は次のようになります。

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

ですから、上記のあなたの例を取る場合は、あなたのような何かをしたい:このコードは、上の最初の表と一致します

$page = curl_exec($ch); 

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

をページ。抽出したいHTMLと正確に一致するように調整する必要があります。 (誰が知りたい場合)

+0

ありがとうございますが、何も表示されません。 – SoulieBaby

+1

テーブルにクラスが追加されていると違いがありますか? – SoulieBaby

+1

@SoulieBaby:そうです。 –

5

[OK]を、ので、私は

$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>'; 

それは、これを使用して作業を得ることができた:)

+0

私のテーブルには属性があります。どのように区別することができますか? – huykon225

1

純粋な正規表現の代替オプションがのDOMDocumentとXPathを使用することです。これにより、ドキュメント全体がオブジェクトに変換され、テーブルの内容を扱いやすくなります

関連する問題