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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Файл читается не так, как нужно

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: с помощью file_get_contents
obi-wan
Отправлено: 25 Февраля, 2009 - 08:17:17
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2007  


Помог: 0 раз(а)




Люди, есть проблема!

Мне нужно прочитать файл .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 файл по-человечески в строку прочитать?
 
 Top
valenok Модератор
Отправлено: 25 Февраля, 2009 - 08:21:41
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




echo iconv('windows-1251', 'utf-8', file_get_contents('vasya.txt'));


-----
Truly yours, Sasha.
 
My status
 Top
obi-wan
Отправлено: 25 Февраля, 2009 - 08:26:23
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2007  


Помог: 0 раз(а)




Если явно указать, что конвертируем из windows-1251, то все круто работает.
А если файл будет не в windows-1251?

p.s. функция
почему-то определяет кодировку файла как utf-8 Что?

(Отредактировано автором: 25 Февраля, 2009 - 08:29:47)

 
 Top
Гость
Отправлено: 25 Февраля, 2009 - 15:37:44
Post Id


УДАЛЁН










Может просто в header прописаьтьнужную кодровку и не трогать сам текст?
 
 Top
CodeWarrior
Отправлено: 25 Февраля, 2009 - 21:48:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009  
Откуда: Албания


Помог: 0 раз(а)




JustUserR пишет:
Может просто в header прописаьтьнужную кодровку и не трогать сам текст?

+1... Пробовали указывать header?
 
 Top
obi-wan
Отправлено: 25 Февраля, 2009 - 22:46:29
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2007  


Помог: 0 раз(а)




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

А не выводить содержимое, поэтому header тут незачем.
 
 Top
valenok Модератор
Отправлено: 25 Февраля, 2009 - 22:53:23
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




obi-wan пишет:
почему-то определяет кодировку файла как utf-8

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

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


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB