У меня есть много описаний со специальными символами, такими как é, ô и многие другие, и попытались удалить их с помощью:
$string = str_replace("é", " ", $string) $string = ereg_replace("é", " ", $string) $string = mysql_real_escape_string($string)
Но ничего не работает, специальные символы все еще существуют, и описание не вставляется в базу данных. Я не могу удалить все специальные символы, потому что в описании есть теги html, которые необходимы.
Спасибо за любую помощь!
Очень просто:
function clean($string) { $string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens. return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. }
Применение:
echo clean('a|"bc!@£de^&$f g');
Вывод: abcdef-g
Изменить :
Hey, just a quick question, how can I prevent multiple hyphens from being next to each other? and have them replaced with just 1? Thanks in advance!
function clean($string) { $string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens. $string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. return preg_replace('/-+/', '-', $string); // Replaces multiple hyphens with single one. }
ссылаться на эту ссылку
http://www.php.net/manual/en/function.str-replace.php
Эта функция возвращает строку или массив с замененными значениями.
Вам нужно использовать возвращаемое значение
$string = str_replace("é", " ", $string);
Использовать транслитерацию символов .
Пример:
<?php $string = "ʿABBĀSĀBĀD"; echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT//IGNORE', $string); // output: ABBASABAD ?>
mysql_real_escape_string(htmlentities($string));