PHP で cURL を使用して Web ページを破棄しています。私が取得する必要がある単語のいくつかは日本語の文字です。また、Simple DOM Parser を使用して、ソース コードを簡単に解析できるようにしています。日本語の文字を正しく取得する方法を理解するのに少し苦労しています. ページで次のスクリプトを実行するたびに、受信したデータがないことがわかります。どうにかして文字を UTF-8 標準に変換する必要があると考えていますが、その方法が完全にはわかりません。ただし、すべての英語の文字を問題なく取得できるため、スクリプトが機能することはわかっています。他のキャラには効かない。誰かが私を助けることができると思いますか? 私が廃棄しているソースコードがどのように見えるかのサンプルも含めました.
コード:
$base = '{website url}';
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, array('User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0'));
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $base);
curl_setopt($curl, CURLOPT_REFERER, $base);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$str = curl_exec($curl);
curl_close($curl);
// Create a DOM object
$html = new simple_html_dom();
// Load HTML from a string
$html->load($str);
foreach($html->find('div.holder') as $element){
if($element->find('div.img-small', 0)){
$title = '';
$image = '';
foreach($element->find('a[href]') as $tempElement){
if($tempElement->find('img')){
$image = $tempElement->find('img')->src;
} else {
$title = $tempElement->innertext;
}
}
echo $title.'<br/>';
}
}
データ:
<div class="holder">
<div class="img-small">
<a href="/link/abcd"><img src="/images/image.png"></a>
</div>
<div>
<div>
<img title="This is a title" class="valign" src="/images/image.png"><b>
<a href="/link/1234abcd">{Japanese characters}</a>
</div>
</div>
</div>