2013-07-17 2 views
1

считано содержимое файла CSS: (http://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css)PHP File Получить Содержание & строку, закодированную

Обнаруженные кодировку с mb_detect_encoding ... говорит UTF-8.

просмотров страницы в браузере, выглядит хорошо (читаемый), и объявляет @charset "UTF-8";

Пробовал выводить строку, есть мусор. Пытался сохранить его в файл, получил мусор.

Пробовал преобразовать кодировку в ASCII, ISO-8859-1 и HTML-ENTITIES. Не повезло.

Любые идеи здесь, как определить, почему эта строка является мусором, и как ее исправить?

+0

им с вами до этой линии * "Попробованная к выходу строка в терминале, получил мусор "*, тогда я не уверен, что вы делаете –

+0

просто означает echo –

+0

Как вы получили содержимое fiie? код, используемый вами, вероятно, сделает это более ясным –

ответ

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; 

Важная линия

curl_setopt($ch,CURLOPT_ENCODING , "gzip"); 
-1

возможно utf8_encode() utf8_decode() может помочь

+0

Категорический -1 для предложения этих функций, очевидно, не понимая ни их цели, ни реальной проблемы ОП. – deceze

5

Content-Encoding страницы, которую вы пытаетесь принести это gzip. Прежде чем использовать его, вам нужно будет uncompress.

Notice the Content-Encoding

Я просто попытался следующие, и она работала хорошо:

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

Darn, как я пропустил это! В любом случае, вы ответили сначала, но @GarrettCosco выглядит так, как будто он начинает здесь строительный представитель. Хотел бы я принять оба ответа! –

+2

Его ответ более «правильный», в то время как мой - скорее хак/демо. Я тоже заберу его. –

Смежные вопросы