Эта тема на forum.dklab.ru


Denis2007: stripslashes - проблема (ненужное преобразование \<number>)
Доброго времени суток, товарищи.

Обнаружил у себя такую штуку.
$t='\001aksdjh';
echo stripslashes($t);
в результате вывода вижу что текст \0 преобразовался в непонятный символ.
прочесал php.net, гугл, данный форум на предмет того, что функция stripslashes должна преобразовывать \<number> - ничего не нашел.

кто подскажет что делать в данном случае: текст в базе после обработки addslashes(), при выводе надо делать stripslashes() но не могу, т.к. проявляется глюк, описанный мной.
Г.О.:
Прочесываем php.net вместе:
http://ru2.php.net/stripslashes
Удаляет экранирование символов, произведенное функцией addslashes()
http://ru2.php.net/manual/ru/function.addslashes.php
Экранируются одиночная кавычка ('), дойная кавычка ("), обратный слэш (\) и NUL (байт NULL).

\0 - NUL, символ с кодом 0, обычно указывающий на конец строки. В строках PHP никакого особого значения не имеет.
Какой глюк? Что это вообще за строка?
Denis2007:
строка обычная.
в данном примере я написал тестовую строку, от балды.
в реальном примере имеет место простое совпадение рядом стоящих символов "\" и "0".
Г.О.:
текст в базе после обработки addslashes()
А как это он там оказался?
Даже если оказался — \0 там мог появиться после addSlashes() только если в исходной строке был нулевой символ, соответственно stripSlashes() его и вернет на законное место.
Валенок:
http://ru2.php.net/manual/ru/function.stripcslashes.php

Эта тема на forum.dklab.ru