在php中使用单个双引号的问题

时间:2013-09-24 12:15:26

标签: php html

我在函数及其参数中遇到单引号和双引号的问题。这是我的代码

$prev_page_arrow= "<span class='pagn_prev' onclick=\"send($where,'Page_{$this->name}=$prev&amp;{$this->rppGet}{$this->query_string}#$this->anchor');\" >Prev</span>";

问题在于$where函数中的send参数。 $where变量的值类似于

$where = purpose="buy" and city="cityname"

OR

$where = purpose='buy' and city='cityname'

我可以在$wheresingle引号中设置double属性值。问题是当值在double quotes时,它结束了函数参数。例如

$prev_page_arrow= "<span class='pagn_prev' onclick=\"send(purpose="buy",'Page_{$this->name}=$prev&amp;{$this->rppGet}{$this->query_string}#$this->anchor');\" >Prev</span>";

此处的double引号表示带参数的函数结束。同样,如果我使用single引号,则表示参数结束。

如何解决?

2 个答案:

答案 0 :(得分:1)

也许这会有用吗?

$prev_page_arrow= "<span class='pagn_prev' onclick='send(purpose=\"buy\", \"Page_{$this->name}=$prev&amp;{$this->rppGet}{$this->query_string}#$this->anchor\");' >Prev</span>";

答案 1 :(得分:1)

我建议将“where”值放在data-*属性中,而不是尝试将其嵌入到内联事件处理程序中。就此而言,您无论如何都不应该使用内联处理程序。

关键是,试试这个:

$prev_page_arrow="<span class='pagn_prev' data-where=\"".htmlspecialchars($where)."\"
     onclick=\"send(this.getAttribute('data-where'),'Page_........');\">Prev</span>";