2015-06-30 3 views
0

У меня есть html-файлы, созданные на том же сервере. Мне нужно прочитать содержимое html-файла как текст, и для этого я использовал функцию file_get_contents(). Когда я это сделал, он возвращал поврежденный текст, похожий на символы, которые мы видим с проблемой кодирования. Когда я открывал html-файл в текстовом редакторе, все было нормально с регулярными символами. У меня есть linkedhttps://www.dropbox.com/s/y2iya9epd73c0r1/9663testme.docx.html?dl=0 тестовый HTML-файл, который file_get_contents не удается прочитать/показать правильно.php file_get_contents проблема с отображением поврежденного текста

Я использовал следующую функцию для преобразования прочитанного содержимого в UTF-8, но все же иногда он дает поврежденный текст, хотя есть определенный прогресс.

function file_get_contents_utf8($fn) { 
    $content = file_get_contents($fn); 
    return mb_convert_encoding($content, 'UTF-8', 
    mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true)); 
} 

Я признателен, если кто-то может вести меня, чтобы найти решение, чтобы решить эту проблему с file_get_contents или любым другим альтернативным решением.

спасибо.

+0

Проблема будет, потому что ваш HAVE для кодирования и декодирования файла с тем же типом. Например, если вы создаете файл в ASCII и пытаетесь преобразовать его в UTF-8, он скорее всего не даст вам хороших символов. Попробуйте создать новый файл и посмотреть, работает ли это. – Twister1002

+0

Спасибо @ Twister1002 за ваш быстрый ответ. На самом деле эти HTML-файлы создаются с использованием phpword, исходные файлы слов могут быть с любой кодировкой. Созданные HTML-файлы содержат UTF-8 в мета. Когда я открываю HTML-файл в редакторе FTP, я могу использовать фактический контент. Но его отличие при чтении с file_get_contents – GUIR

+0

Эх, это была моя проблема, когда я с этим справлялся, поэтому я решил, что скажу это. – Twister1002

ответ

0

вызов с использованием file_get_contents_utf8 ('9663testme.docx.html');

function file_get_contents_utf8($fn) { 
    //$content = file_get_contents($fn); 
    //return mb_convert_encoding($content, 'UTF-8', 
    //mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true)); 
    echo file_get_contents($fn); 
} 
+0

Кредит: http://php.net/manual/en/function.file-get-contents.php#85008 – EdgeCaseBerg

+0

Спасибо.Не пытались использовать функцию file_get_contents и выше. Результаты Wtih file_get_contents_utf8() лучше, но даже иногда это случается. – GUIR

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