Как остановить повторяющиеся косые черты? - PullRequest
0 голосов
/ 29 марта 2012

Мое PHP-приложение добавляет обратные слеши к кавычкам во многих местах с помощью addslashes().К сожалению, это добавление привело к выводу, похожему на следующее.

Каждый раз, когда я обновляю свою страницу, эта строка увеличивает количество обратных косых черт.

неДон \ 'тдона \\ тдона 'т \\\\don \\\\\\\\ 't

и т. д.

Я хочу написать функцию, которая удаляет все эти лишние косые черты.Я пытался

str_replace($text, "\\\\", "");

безрезультатно.

Ответы [ 3 ]

1 голос
/ 29 марта 2012
$text=preg_replace('/\134+/',"\134",$text);
1 голос
/ 29 марта 2012

Что произойдет, если ваше фактическое значение будет включать \\ законно? Например, если ваш контент ссылался на ссылку общего ресурса в стиле Windows - \\192.168.1.1\foo. Если вы слепо удалите все двойные косые черты, то вы удалите те, которые означают , чтобы быть там.

«Правильный» ответ на самом деле - не добавлять косые черты к вещам, которые им не нужны. Вы должны знать, экранировано ли заданное значение или нет (в конце концов, именно вы контролируете, откуда берется каждое значение и для чего оно используется), и добавляйте косую черту только тогда, когда они вам нужны.

1 голос
/ 29 марта 2012

Вы можете просто использовать:

 stripslashes($text);
...