2013-07-17 80 views
1

檢索到的內容:PHP文件獲取內容和字符串編碼一個CSS文件的

檢測到編碼與mb_detect_encodinghttp://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css)......說UTF-8。

查看的頁面在瀏覽器中,看起來很好(讀取),並宣佈@charset "UTF-8";

試圖輸出字符串,得到了垃圾。 試圖將它保存到一個文件,得到垃圾。

試圖將編碼轉換爲ASCII,ISO-8859-1和HTML-ENTITIES。沒有運氣。

這裏的任何想法如何確定爲什麼這個字符串是垃圾,以及如何解決它?

+0

IM與你到這一行*「試過輸出在終端的字符串,得到垃圾「*然後我不知道你在做什麼 – 2013-07-17 20:50:43

+0

只是意味着回聲 –

+0

你是如何檢索文件的內容的?您使用的代碼可能會使這個更清晰 – 2013-07-17 20:52:26

回答

5
$url = 'http://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css'; 

$ch = curl_init(); 
$timeout = 5; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
curl_setopt($ch,CURLOPT_ENCODING , "gzip"); 
$data = curl_exec($ch); 
curl_close($ch); 
echo $data; 

重要的一行是

​​
-1

也許函數utf8_encode()utf8_decode()可以幫助

+0

分類-1用於暗示這些功能,顯然沒有理解它們的目的,也沒有理解OP的實際問題。 – deceze

5

你想抓取網頁的Content-Encodinggzip。在使用它之前,您需要使用uncompress

Notice the Content-Encoding

我只是嘗試了以下,它工作得很好:

echo gzdecode(file_get_contents($your_url)); 
+0

該死的,我怎麼會錯過!無論如何,你首先回答,但@GarrettCosco看起來像他在這裏開始建立代表。希望我能接受這兩個答案! –

+2

他的回答更「正確」,而我的更多是黑客/演示。我也會選他的。 –