Php 在字符串中动态添加双引号
我在一个项目中工作,在这个项目中,我根据多个过滤器显示记录。我现在要做的是创建一个包含所有条件的Php 在字符串中动态添加双引号,php,Php,我在一个项目中工作,在这个项目中,我根据多个过滤器显示记录。我现在要做的是创建一个包含所有条件的$where变量。比如说 $whereP.='和purpose=“购买” $whereP.='和type=“sale” 对于其他属性也是如此,然后我将第一个和替换为substr。问题是我有分页,由于url中的单双引号问题,我无法在参数中发送$where。所以我想要一个解决方案是,我制作了两个不同的变量$where和$whereP $whereP.=和purpose=购买 $whereP.=和type=
$where
变量。比如说
$whereP.='和purpose=“购买”代码>
$whereP.='和type=“sale”代码>
对于其他属性也是如此,然后我将第一个和替换为substr。问题是我有分页,由于url中的单双引号问题,我无法在参数中发送$where
。所以我想要一个解决方案是,我制作了两个不同的变量$where
和$whereP
$whereP.=和purpose=购买代码>
$whereP.=和type=销售代码>
现在,当我从url获取$whereP
时,我想在属性值中添加双引号,例如
$where=purpose=“buy”和type=“sale”
为此,我将用=“
替换=”
,以便将“
放在每个属性前面,但是如何在每个属性值后面添加”
现在我得到了$whereP=purpose=“buy and type=“sale
我需要$whereP=purpose=“buy”和type=“sale”
谢谢我有一个更好的方案
创建查询字符串,如
?where[purpose]=buy&where[type]=sale
您将得到一个类似于-
Array
(
[where] => Array
(
[purpose] => buy
[type] => sale
)
)
现在,使用此数组将更容易创建SQL
。请尝试上述答案
这肯定会奏效的
$variable="ad";
$whereP="";
$whereP .= ' and purpose="'.$variable.'"';
echo $whereP;
您应该采纳Arun Killu评论中的建议,停止以这种方式构建查询,但如果您想保持原样,可以像这样使用preg_replace(假设尾随空格是一个足够好的分隔符):
下面是字面意思,但正如前面提到的,有更好的方法可以做到这一点,我使用Zend框架。
你必须使用pdo和quote函数,这是一种错误的做法
$string = preg_replace ( '/=(.*)\s/i' , '="$1" ' , $string );
$where = preg_replace('/=(\w+)/', '="$1"', $whereP);