如何修正PHP字符清理函数以保留空格并移除指定特殊字符
修正后的PHP字符清理函数
根据你的需求,这里是调整后的函数,它会保留空格,仅移除你指定的特殊字符(@、^、%、*、$、#、śćó、©):
function clean($string) { // 匹配需要移除的所有指定字符,/u 确保UTF-8字符正确匹配 return preg_replace('/[@\^%\*\$#śćó©]/u', '', $string); }
关键调整说明
- 移除了原函数中
str_replace(' ', '-', $string)的代码,直接保留原始空格 - 使用正则字符类精准指定要删除的字符:
- 对正则中的特殊字符(^、*、$)添加了反斜杠
\进行转义,避免正则语法错误 - 添加
/u修饰符,确保能够正确识别和匹配UTF-8编码的重音字符(śćó)
- 对正则中的特殊字符(^、*、$)添加了反斜杠
- 只删除你列出的目标字符,其余字符(包括字母、数字、空格)全部保留
测试示例
如果输入字符串是:Hugo® Boss ^The Scent$ For Her ©Eau De Perfume #Spray 50mlść
执行clean()函数后会得到:Hugo Boss The Scent For Her Eau De Perfume Spray 50ml
内容的提问来源于stack exchange,提问作者Marcin Wierzycki
相关产品推荐
相关产品推荐

