$keywords = explode("\n",$_POST['keywords']);
//Inserting into Database
foreach($keywords as $key => $keyword){
$keyword = strtolower(trim($keyword));
$keyword = preg_replace("/[^A-Za-z0-9' ]/", "", $keyword);
$keyword = preg_replace("/\s+/", " ", $keyword);
$insertkeywords = "INSERT IGNORE INTO kwdb (keyword) VALUES ('$keyword')";
mysql_query($insertkeywords);
}
当我在以下位置有撇号时,我一生都无法弄清楚为什么这段代码不会将关键字插入数据库:
"/[^A-Za-z0-9' ]/"
但是当我删除它时:
"/[^A-Za-z0-9 ]/"
此脚本将记录插入数据库。
我想做什么? 我在表单上有一个文本区域。对于新行上的每个关键字,我根据 \n 展开。我想从关键字中删除所有非字母和非数字字符,但不希望删除撇号。
我基本上希望所有关键字都是小写的,带有前导、尾随和额外的空格 - 2 个或更多空格被修剪为一个 - 以及除撇号之外的任何非字母和非数字字符。