-1

重複の可能性:
PHP で HTML を解析および処理する方法は?

さまざまな製品のプレゼンテーションを使用して Web サイトを構築していますが、curl を使用していくつかの問題に直面しています。基本的に、さまざまな Web サイトから HTML の一部を取得し、Web サイトに表示する必要があります。例: タイトル、モデル、説明、ユーザーレビューなど....私はいくつかのコードを達成することができましたが、ソースURLを変更すると機能しなくなります...ソースでさえ私のコードと同じです:

$url = "http://www.tigerdirect.com/applications/SearchTools/item-details.asp?EdpNo=2819129&CatId=4938";

//$url = "http://www.tigerdirect.com/applications/SearchTools/item-details.asp?EdpNo=1808177&csid=_61"; //this one is not working....

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);

$source = curl_exec ($ch);

$start_description1 = "</tr>
</tbody>
</table>




<p>";
$end_description1 = "</div>
</div>
<div id=\"Videos\" style=\"display:inline;\">";
$description1_start_pos = strpos($source, $start_description1) + strlen($start_description1);
$description1_end_pos = strpos($source, $end_description1) - $description1_start_pos;
$description1 = substr($source, $description1_start_pos, $description1_end_pos);
echo $description1;

それは完全に機能しますが、URLを変更すると機能しません...問題はstart_description htmlコードです...他のページではhtmlコードが異なります...

それ以外の:

</tr>
</tbody>
</table>




<p>

新しいページには:

</tr>
</tbody>
</table>


<p>

また:

</tr>
</tbody>
</table>

<p>

どうすればこのエラーを回避できますか? またはcUrlエラーを回避し、必要なコンテンツを取得するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

を使用する代わりにstrpos、html を解析し、html から説明を取得する必要があります。

このアプリケーションでは、PHP Simple HTML DOM Parserを使用することをお勧めします。

これがどのように機能するかの例を次に示します。

$html = file_get_html('http://www.tigerdirect.com/applications/SearchTools/item-details.asp?EdpNo=1808177&csid=_61');
//fetches html content from the url
$p = $html->find('p', 0);
//fetches the content of the first <p> element.

echo $p-> plaintext;

お役に立てれば。

于 2012-08-04T18:16:08.887 に答える