|
|
|
| Нужно в переменной найти символы ' \ и автоматически их переименовать в " /, скажите пожалуйста какая функция такое делает. Проблема в том, что если человек в форме укажет одиночные ' \, в базу ничего не запишется.
Пока что смог разобраться как находить эти символы и выводить человеку на экран сообщение, что нельзя их использовать.
<?
if(preg_match("/['\\\]/i", $text)) {/* выводим ошибку */}
?>
|
| |
|
|
|
|
|
|
|
для: ladan
(01.01.2012 в 11:08)
| | Вам нужна функция preg_replace() или str_replace(). | |
|
|
|
|
|
|
|
для: cheops
(01.01.2012 в 14:20)
| | Спасибо! | |
|
|
|
|
|
|
|
для: ladan
(01.01.2012 в 17:19)
| |
<?
$a = array("/['\\\]/i","/яблоко/i");
echo preg_replace("$a[0]", "", $_GET['author'])
?>
|
а как сделать так, чтобы кроме поиска символов ' \ можно было еще искать дополнительные слова, к примеру "яблоко"?
За один заход можно такое сделать? или лучше два раза прописать preg_replace? | |
|
|
|
|
|
|
|
для: ladan
(01.01.2012 в 17:43)
| | Вы же можете передавать preg_replace() в качестве параметров массивы, т.е. нужно по аналогии с $a создать массив $b с таким же количеством элементов, как и в $a и передать в качестве второго параметра. | |
|
|
|
|
|
|
|
для: cheops
(01.01.2012 в 18:33)
| | Не, я имел ввиду, как передать в качестве первого параметра "/['\\\]/" и "/яблоко/". Для второго параметра задано одно и тоже- пустота. В первом параметре должен идти поиск этих символов или слово "яблоко" :) | |
|
|
|
|
|
|
|
для: ladan
(01.01.2012 в 19:42)
| | Я понял, ответ не меняется, первый параметр передавайте как есть в виде массива, но и второй параметр тоже должен быть массивом пустых строк.
PS Как вариант можно использовать или |, но лучше все-таки воспользоваться массивами, особенно, если вариантов замены много. | |
|
|
|
|
|
|
|
для: cheops
(01.01.2012 в 20:10)
| | ясненько
<?
$a = array("/['\\\]/i","/яблоко/i");
$b = array("","");
$_GET['author'] = preg_replace("$a[0]", "$b[0]", $_GET['author']);
$_GET['author']= preg_replace("$a[1]", "$b[1]", $_GET['author']);
echo $_GET['author'];
<?
|
все верно выводится, как мне надо, но кажется, я неправильно пользуюсь массивами, ведь можно как-то один раз прописать функцию preg_replace? | |
|
|
|
|
|
|
|
для: ladan
(01.01.2012 в 20:39)
| | а все, разобрался, ковычки у переменных в этой функции не нужно ставить :)
<?
$a = array("/['\\\]/i","/яблоко/i");
echo preg_replace($a, "", $_GET['author']);
?>
|
| |
|
|
|