[英]Add quotes to values in a string separated by a comma php
我有一个搜索框,可以使用逗号包含多个值,例如意大利面,金枪鱼,鸡蛋
我使用FULLTEXT mysql搜索,但我需要使用某种preg_replace将意大利面,金枪鱼,鸡蛋变成'意大利面','金枪鱼','蛋'
如果我在搜索框中输入“Pasta”,“tuna”,“eggs”,结果是正确的。
不要将正则表达式用于可以解决的问题。 你想要的是一个简单的字符串替换:
$string = "'" . str_replace(",", "','", $string) . "'";
你应该首先在字符串中转义引号(不知道你的转义字符是什么,假设它是反斜杠):
$string = "'" . str_replace(array("'", ","), array("\\'", "','"), $string) . "'";
您是否正在使用列表构建SQL查询? 如果是这样,您应该花一些时间来确保生成的SQL也被正确转义。
$myList = "pasta, tuna, eggs";
$items = preg_split("/[,\\s]+/", $myList);
$sqlItems = array();
foreach ($items as $item) {
$sqlItems[] = "'" . mysql_real_escape_string($item) . "'";
}
// Add new list to SQL
$sql .= implode(",", $sqlItems);
你有值得逗号吗?
如果没有,你可以使用类似的东西:
preg_replace('/[^,]+/g', '\'\1\'', preg_replace('/\'/g', '\\\'', $text))
破坏你的字符串,然后foreach结果数组并添加所需的符号
伙计们对这个问题感到抱歉,但我已经解决了我自己的问题! 我看过这个,开头就错了。
我不得不用空格和加号替换每个,所以“,tuna”=“+ tuna”
不管怎么说,还是要谢谢你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.