任何人都可以告诉我如何替换除了下划线和句号符号之外的字符串中的所有特殊字符。而且我一直在尝试理解如何使用PHP
手册来替换模式对于像我这样的初学者来说,它是如此令人困惑,所以是否有任何其他文档或教程对初学者来说很容易,所以我不必发布这样的问题,每次我想要使用这个功能时都会给人们带来麻烦? / p>
preg_replace('/[^a-zA-Z0-9]/', '', $string);
这就是我所取代的所有特殊字符,但除了_
和.
之外我想要它。
答案 0 :(得分:22)
将_
和.
放入否定的字符集([^...]
):
$string = preg_replace('/[^a-zA-Z0-9_.]/', '', $string);
您不应忽略$string = ..
,因为preg_replace
会返回已替换的字符串。它不会改变字符串。
答案 1 :(得分:1)
你可以使用像Purifier这样的一些php过滤器小部件(为输入设置白名单)......
但是,我们仍然建议你学习正则表达式!