2012-03-07 14 views
1

cURLで特定のクラス名を取得できますか?cURL + PHPがクラス名を取得することは可能ですか?

たとえば、私はちょうどこの<div class="123 photo"></div>の123を取得したいと思います。

これは可能ですか?

ありがとうございました!

編集:

ウェブサイト

<div class="444 photo">...</div> 
<div class="123 photo">...</div> 
<div class="141 photo">...</div> 

etc... 

で見られるいただきました!これがあれば、私はこのクラスのすべての数字を取得しようと、いくつかの配列に入れています。

+1

「cURL」は、異なるプロトコルでコンテンツを取得するだけです。そのコンテンツを検索または操作しません。あなたは何をしようとしているのか、現在どのように達成しようとしているのか、さらに多くの情報が必要です。 – Morgon

+1

cURLには独自のテキスト処理機能がありません。私はPHPを使ってこの抽出を行うことができるかどうかを尋ねていると思います。答えは「はい」です。正規表現を使用できます。 –

+0

@モルガン、どういう意味ですか?私はinit()や何かに必要な別のWebサイトのcURLからクラス名123を取得しようとしています。私はまだ新しいです..ありがとう – hellomello

答えて

4

cURLは、ソリューションの半分に過ぎません。その仕事は単にコンテンツを取り出すことです。そのコンテンツを取得したら、文字列や構造の操作を行うことができます。あなたが使用できるテキスト機能がいくつかありますが、このコンテンツの中で何か特定のものを探しているようですので、もっと頑強なものが必要な場合があります。

したがって、このHTMLコンテンツの場合、私はDOMDocumentをリサーチすることをお勧めします。これは、あなたのコンテンツをXMLのような階層に構造化しますが、HTMLマークアップの緩やかな性質をより寛容にします。

$ch = curl_init(); 
// [Snip cURL setup functions] 
$content = curl_exec($ch); 

$dom = new DOMDocument(); 
@$dom->loadHTML($content); // We use @ here to suppress a bunch of parsing errors that we shouldn't need to care about too much. 

$divs = $dom->getElementsByTagName('div'); 
foreach ($divs as $div) { 
    if (strpos($div->getAttribute('class'), 'photo') !== false) { 
     // Now we know that our current $div is a photo 
     $targetValue = explode(' ', $dom->getAttribute('class')); 

     // $targetValue will now be an array with each class definition. 
     // What is done with this information was not part of the question, 
     // so the rest is an exercise to the poster. 
    } 
} 
+0

あなたのURLは何ですか?空の ?素敵な明確な例。 – delive

+0

@delive - これは "[Snip cURL setup functions]"ブロックにあると思われます。ブロック:データの解析に重点を置いていました。 – Morgon

+0

私は知っているが、他の人は知らない、あなたは例を投稿する必要があります:) – delive

関連する問題