Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Файл читается не так, как нужно
Форумы портала PHP.SU » PHP » Программирование на PHP » Файл читается не так, как нужно

Страниц (1): [1]
 

1. obi-wan - 25 Февраля, 2009 - 08:17:17 - перейти к сообщению
Люди, есть проблема!

Мне нужно прочитать файл .txt в строку, чтобы потом его содержимое анализировать.
Читаю так:

Пробую вывести $contents - на выводе ����� ���������� - совсем не определенные символы, знаете такие вопросики в ромбиках.
Пробую получить этот файл напрямую из браузера - http://localhost/uploads/vasia[dot]txt - выводится нормальный текст.

Думаю, что проблема в кодировке. У меня все файлы в проекте в utf-8.
В firebug смотрю, какие заголовки отдает сервер:
в первом случае с абракадаброй -
Content-type: text/html; charset=utf-8
во втором случае с файлом -
Content-Type: text/plain
что логично.

Файл vasia.txt изначально в кодировке windows-1251, тогда я пробую перевести его в utf-8:

На выводе - Àðõèâ äîêóìåíòîâ. Тоже абракадабра, но другого типа.
Что за фигня? Подскажите, пожалуйста, почему я не могу txt файл по-человечески в строку прочитать?
2. valenok - 25 Февраля, 2009 - 08:21:41 - перейти к сообщению
echo iconv('windows-1251', 'utf-8', file_get_contents('vasya.txt'));
3. obi-wan - 25 Февраля, 2009 - 08:26:23 - перейти к сообщению
Если явно указать, что конвертируем из windows-1251, то все круто работает.
А если файл будет не в windows-1251?

p.s. функция
почему-то определяет кодировку файла как utf-8 Что?
4. Гость - 25 Февраля, 2009 - 15:37:44 - перейти к сообщению
Может просто в header прописаьтьнужную кодровку и не трогать сам текст?
5. CodeWarrior - 25 Февраля, 2009 - 21:48:53 - перейти к сообщению
JustUserR пишет:
Может просто в header прописаьтьнужную кодровку и не трогать сам текст?

+1... Пробовали указывать header?
6. obi-wan - 25 Февраля, 2009 - 22:46:29 - перейти к сообщению
Цитата:
Мне нужно прочитать файл .txt в строку, чтобы потом его содержимое анализировать.

А не выводить содержимое, поэтому header тут незачем.
7. valenok - 25 Февраля, 2009 - 22:53:23 - перейти к сообщению
obi-wan пишет:
почему-то определяет кодировку файла как utf-8

Потому что открыть документацию и посмотреть надо.

Цитата:
Beware of bug to detect Russian encodings
http://bugs.php.net/bug.php?id=38138

 

Powered by ExBB FM 1.0 RC1