【发布时间】:2015-05-16 19:39:03
【问题描述】:
我正在尝试删除所有特殊字符,例如
()[]{}~`@#$%^&*_+=/|.,،;:?؟>
但此代码将删除所有规范字符加上非英文字符,我只想删除规范字符而不是非英文字符。我的意思是只接受英文+非英文但不接受特殊字符。
preg_replace("/[^A-Za-z0-9\-]/", "-", $_REQUEST["title"]);
【问题讨论】:
-
你可以试试here
-
没有“特殊字符”这样的东西。只有字符。也许有些你不习惯。但这并不完全是一个技术定义。那么您要删除或保留的字符范围是多少?
-
@arkascha 好吧,我想用它来做漂亮的 url,我想至少删除那些不适合 SEO 和 sql 注入等的...比如 ?!&$% ..
-
所以您无法命名要替换的字符?但你期待答案吗?对不起,我不是想在这里挑剔。只是:没有明确的问题,你如何期待答案?
-
除此之外:你不能通过它来阻止sql注入。为此,您必须在设置语句时使用“准备好的语句”。其他一切都没有任何意义。你正在尝试的是这样的:好吧,我想把火扑灭。但我不敢看。所以我砍了一棵树。火烧木头。所以当我砍掉那棵树时它可能会死。
标签: php preg-replace