URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 4625
[ Назад ]

Исходное сообщение
"Раздел полезных советов: В чем может быть причина битых бинарных файлов на выходе PHP"

Отправлено auto_tips , 13-Ноя-04 00:43 
Например, если в результате выполнения функции (например,  
base64_encode($buffer)) на выходе получается битый файл (кавычки, \ и
символ с нулевым кодом экранированы символом \), то проблема в
использовании директив автоматического экранирования magic_quotes_gpc
(get, post, cookie) или  magic_quotes_runtime (автоэкранирования в
некоторых функциях) в php.ini. Для решения проблемы нужно использовать
функцию stripslashes, например: base64_encode(stripslashes($buffer))

URL:
Обсуждается: http://www.opennet.me/tips/info/740.shtml


Содержание

Сообщения в этом обсуждении
"В чем может быть причина битых бинарных файлов на выходе PHP"
Отправлено Yurik , 13-Ноя-04 00:43 
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


"В чем может быть причина битых бинарных файлов на выходе PHP"
Отправлено 105k.ru , 27-Дек-08 23:40 
Еще вариант побороть битые файлы. При этом magic_quotes_gpc до одного места (на моих хостингах они были включены).
rawurlencode(base64_encode(file_get_contents($file)))