Php 去除标点符号、符号、变音符号和特殊字符的最佳方法是什么?

Php 去除标点符号、符号、变音符号和特殊字符的最佳方法是什么?,php,preg-replace,special-characters,clean-urls,Php,Preg Replace,Special Characters,Clean Urls,我使用这些代码行删除所有标点符号、符号等,因为您可以在数组中看到它们 $pattern_page = array("+",",",".","-","'","\"","&","!","?",":",";","#","~","=","/","$","£","^","(",")","_","<",">"); $pg_url = str_replace($pattern_page, ' ', strtolower($pg_url)); 但它不会在分数下删除-\uuu 移除所有这些

我使用这些代码行删除所有标点符号、符号等,因为您可以在数组中看到它们

$pattern_page = array("+",",",".","-","'","\"","&","!","?",":",";","#","~","=","/","$","£","^","(",")","_","<",">");

$pg_url = str_replace($pattern_page, ' ', strtolower($pg_url));
但它不会在分数下删除-
\uuu


移除所有这些东西的最佳方法是什么?正则表达式可以做到这一点吗?

根据您的贪婪程度,您可以执行以下操作:

$pg_url = preg_replace("/[^a-zA-Z 0-9]+/", " ", $pg_url);
这将替换任何不是字母、数字或空格的内容。

使用类:

preg_replace('/[^[:alpha:]]/', '', $input);
将删除当前设置的区域设置不认为是“字符”的任何内容。如果它是标点符号,您试图消除它,那么类将是
[:punct:][/code>


\W
表示“任何非单词字符”,与
\W
相反,后者包含下划线(
)。

除了
[A-Za-z0-9]
-)之外,您可以删除所有字符
preg_replace('/[^[:alpha:]]/', '', $input);