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);