Например, если в результате выполнения функции (например,
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
stripslashes не есть противоположностью addslashes/magic_quotes_*Они точно так же могут испортить файл, потому что если в исходном файле встречается последовательность \<символ_экранирования> то \ в любом случае будет утерян.
magic_quotes_gpc надо в любом случае отключать или административно (php.ini, httpd.conf) или на свой виртуальниый хост через
.htaccess (mod_php)
php_flag magic_quotes_gpc offphp.ini (CGI и если правильно настроен suExec)
magic_quotes_gpc=off
Еще вариант побороть битые файлы. При этом magic_quotes_gpc до одного места (на моих хостингах они были включены).
rawurlencode(base64_encode(file_get_contents($file)))