The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В чем может быть причина битых бинарных файлов на выходе PHP
Например, если в результате выполнения функции (например,  
base64_encode($buffer)) на выходе получается битый файл (кавычки, \ и
символ с нулевым кодом экранированы символом \), то проблема в
использовании директив автоматического экранирования magic_quotes_gpc
(get, post, cookie) или  magic_quotes_runtime (автоэкранирования в
некоторых функциях) в php.ini. Для решения проблемы нужно использовать
функцию stripslashes, например: base64_encode(stripslashes($buffer))
 
20.10.2004
Ключи: php, escape, trouble / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / PHP / Серверная часть и интерпретатор

Обсуждение [ RSS ]
  • 1, Yurik (??), 00:43, 13/11/2004 [ответить]  
  • +/
    stripslashes не есть противоположностью addslashes/magic_quotes_*

    Они точно так же могут испортить файл, потому что если в исходном файле встречается последовательность \<символ_экранирования> то \ в любом случае будет утерян.
    magic_quotes_gpc надо в любом случае отключать или административно (php.ini, httpd.conf) или на свой виртуальниый хост через
    .htaccess (mod_php)
    php_flag magic_quotes_gpc off

    php.ini (CGI и если правильно настроен suExec)
    magic_quotes_gpc=off

     
  • 2, 105k.ru (?), 23:40, 27/12/2008 [ответить]  
  • +/
    Еще вариант побороть битые файлы. При этом magic_quotes_gpc до одного места (на моих хостингах они были включены).
    rawurlencode(base64_encode(file_get_contents($file)))
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру