<!--QuoteBegin-slavon-x86+5:03:2007, 20:19 -->
<span class="vbquote">(slavon-x86 @ 5:03:2007, 20:19 )</span><!--QuoteEBegin-->"\n" будет "\\n" и т.д. Добавляет лишнюю черту к спец. тегам !
[snapback]58276" rel="nofollow" target="_blank[/snapback]
[/quote]
Попытаюсь обьяснить.
Когда вы пишите:
$sString = "\ns\n";
Это не значит что в строке содержится 2 символа "\" и "n", слэша и n там вообще нет. Сейчас в строке $sString сожержится символ с ASCII-кодом 13, буква 's', и еще 1 символ с ASCII-кодом 13.
Если же вы напишите $sString = '\ns\n'; (В одинарных кавычках), то в строке $sString будут содержаться 5 символов: "\", "\n", "s", "\", "n".
Так вот к чему я это всё, теперь давайте посмотрим как эти строки поведут себя при фильтрации через mysql_real_escape_string.
1-ый пример chr(13).'s'.chr(13) преобразуется в строку '\ns\n'
2-ой пример '\ns\n' = '\\ns\\n'
Именно таким текстом они пойдут в SQL запрос.
А дальше MySQL сам будет воспроизводить эти строки.
INSERT INTO table VALUES ('\ns\n') = запись с символом 13, буквой 's', символом 13
INSERT INTO table VALUES ('\\ns\\n') = запись с строкой '\ns\n'
В итоге, то что мы хотели занести в БД, туда так и занеслось.
Надеюсь понятно объяснил.
<!--QuoteBegin-slavon-x86+5:03:2007, 20:19 -->
<span class="vbquote">(slavon-x86 @ 5:03:2007, 20:19 )</span><!--QuoteEBegin-->$string = ereg_replace("%","%",$string); - вот так !
printf("123%456", "<?php ... ?>"); Я не мастер в php, но думаю что процент нужно обязательно заменять кодом (это и написано кем-то в предыдущих сообщениях) !
[snapback]58276" rel="nofollow" target="_blank[/snapback]
[/quote]
Причем тут вообще printf?
btw, давно на preg переходить надо.