0

リモートURLからメタディスクリプションを取得しています。URLに「£」が含まれていると、Firefoxに疑問符が付いた黒いひし形として返されます。文字列にutf8_encodeを適用すると、本来どおり「£」が返されますが、他のUTF文字は正しく表示されません。私に何ができる?

4

1 に答える 1

0

ページにコンテンツタイプのメタタグを設定しましたか?

http://www.w3schools.com/tags/att_meta_http_equiv.asp

編集

あなたがあなたのコメントに入れたものを解決するために、私はこのようなことをするかもしれません(超迅速で汚い):

<?php

$ch = curl_init('http://www.dailymail.co.uk/health/article-1374575/Under-18s-sunbed-ban-cut-skin-cancer-toll.html');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$data = curl_exec($ch);

preg_match('/(<meta[^\n]+)(name=\"description\"[^\n])(content=\")([^\n]+)(\")/', $data, $m);
echo urlencode($m[4]);

?>

そうは言っても、これを行う正しい方法は、によって返されたHTMLを解析しcurl_exec、適切なノード(with)を見つけて、属性のd値をname="description"返すことです。urlencodecontent

于 2011-04-15T23:57:54.047 に答える