我一直在努力寻找可行的解决方案,但似乎没有任何效果......
我正在建立一个社交网站,用户可以发布。我想在进入数据库之前检查文本。
我想启用常规字符(a-zA-Z0-9)+一些utf8字符(áÁéÉíÍóÓöÖőŐúÚüÜűŰ)和其他一些字符(。,?!;等等)
我一直在尝试,但它似乎不起作用:
preg_replace('/[^a-zA-Z0-9áÁéÉíÍóÓöÖőŐúÚüÜűŰ \.\,\?\!\:\;\-\+\<\>\%\~\€\$\[\]\{\}\@\&\#\*\"\„\”\/]/', '', $string);
有人可以帮助我吗?
有什么比这更容易了吗?我这样做的原因是因为我不想让用户使用非法字符或HTML标签来垃圾邮件数据库..如果有人写了这样的帖子"blabla</div>".
答案 0 :(得分:0)
如果使用textarea或输入值来记录用户条目,则可以使用str_replace()函数搜索字符串以替换非法字符。链接到php手册中的str_replace:http://php.net/manual/en/function.str-replace.php
代码示例:
<?php
$userInput = "Tex.t tha!t wil;l be te>sted that is inp?uted b;y user";
//Following Array is all characters you deem unwanted
$illegalChar = array(".", ",", "?", "!", ":", ";", "-", "+", "<", ">", "%", "~", "€", "$", "[", "]", "{", "}", "@", "&", "#", "*", "„");
$charString = str_replace($illegalChar, "", $userInput);
echo $charString;
//Output is "Text that will be tested that is inputed by user"
?>