Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Может ли текстовый файл искажать кириллицу?
 
 автор: Владимир55   (08.10.2009 в 15:45)   письмо автору
 
 

Для создания массива текстовых файлов в цикле исполняется следующий код:
        $no_file++;
        $adr = "files/" . $no_file . ".txt" ;

        echo "<br> $no_file <br>" . ' . $kod_2 . ';
        eval("\$x=$kod_2;");
        echo "<br> " . $x ;

        $file = fopen($adr, "w");      // открываем файл для перезаписи
        fputs($file, $x);             // записываем
        fclose ($file);             // закрываем файл


Операции
        echo "<br> $no_file <br>" . ' . $kod_2 . ';
        eval("\$x=$kod_2;");
        echo "<br> " . $x ;

используются для дополнительного контроля достоверности сохраняемой информации. И этот контроль показывает, что всё нормально - запысываемый текст соответствует ожидаемому.

Но при просмотре файлов обнаруживаем сюрприз: некоторые из них вместо записи, зафиксированной при контроле, содержат цепочку прямоугольников вида
&#58829;&#58400;&#63726;&#57579;&#64800;&#61167;&#57589;&#59936;&#58350;&#57572;&#61472;&#57573;&#64747;&#64493;&#60649;&#61947;&#59627;&#58866;&#64747;


Что бы это значило?

=============
С экрана я копировал прямоугольнички, а коды &#58829 сформировал сам форум.

  Ответить  
 
 автор: Владимир55   (08.10.2009 в 15:53)   письмо автору
 
   для: Владимир55   (08.10.2009 в 15:45)
 

Не менее удивительные результаты показал такой эксперимент: если в строке
$adr = "files/" . $no_file . ".txt" ; 
задать расширение файла htm или php, то искажения записи исчезают!

  Ответить  
 
 автор: cheops   (09.10.2009 в 12:23)   письмо автору
 
   для: Владимир55   (08.10.2009 в 15:53)
 

Хм... интересно, попробуйте открыть файл в бинарном, а не в текстовом режиме
$file = fopen($adr, "wb");

Ничего не меняется?

  Ответить  
 
 автор: Владимир55   (09.10.2009 в 14:22)   письмо автору
 
   для: cheops   (09.10.2009 в 12:23)
 

Для контроля я открывал все файлы блокнотом.

Сейчас сменился обрабатываемый текст и проблема в проверенных вручную файлах пока что не встретилась.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования