2016-01-23 4 views
-2

Вот регулярное выражение, где заменяет все пробелы и точки - но без одинарных и двойных кавычек.regex для удаления одиночных и двойных кавычек

$name = htmlspecialchars(trim(@$_POST["name"],' '),ENT_QUOTES); 
$url = preg_replace("![^a-zA-Z0-9]+!i", "-", strtolower(htmlspecialchars(@$_POST["name"],ENT_QUOTES))); 
+0

Что вы хотите сказать? – minghan

ответ

1

Вы преобразовали все одиночные и двойные кавычки в HTML специальных символов этой строки:

$name = htmlspecialchars(trim(@$_POST["name"],' '),ENT_QUOTES); 

Теперь они выглядят как '"' Чтобы заменить все кавычки, которые Вы должны расшифровать их заранее:

$url = preg_replace("![^a-zA-Z0-9]+!i", "-", strtolower(html_entity_decode($name,ENT_QUOTES))); 
+0

Это работает! но в первой строке используется htmlspecialchars, затем html_entity_encode.Is это проблема? могу ли я использовать htmlspecialchars_decode. Фактически первые переменные $ name вставляются в имя столбца, второй $ url вставляет в url столбца, поэтому с $ url я делаю url slug для seo friendly url. –

+0

@amarullzamarullzz, да, вы можете использовать 'htmlspecialchars_decode ($ name, ENT_QUOTES);' также – RomanPerekhrest

+0

Без кодировки строка может с регулярным выражением заменить одиночные и двойные кавычки? –

Смежные вопросы