如何在PHP字符串使用的变量中保留引号

时间:2015-06-15 02:30:29

标签: php string variables

我通过提交自定义搜索表单来使用自定义php查询。一切都很有效,除非一个字符串调用像O'Reilly这样的名字,搜索将没有得到O \'Reilly而不是O'Reilly的结果。我使用以下内容来调用变量:

$fullname=trim($_REQUEST["fullname"]);

这是我的php标题

 header("Location: http://example.com/results?patientid=$patientid&fullname=$fullname&date=$date");

这将重定向到搜索结果页面,其中我有以下全名的代码:

             $patientid=trim($_REQUEST["patientid"]);
             $fullname=trim($_REQUEST["fullname"]);
             $date=trim($_REQUEST["date"]);

然后我回应那个,它出现在O /'Reilly的斜线上,没有结果。

应该是O'Reilly

3 个答案:

答案 0 :(得分:1)

如果Magic QuotesOn它会自动将传入数据转义为PHP脚本。此功能自PHP 5.3.0起已弃用,并已从PHP 5.4.0起删除。启用此选项后,所有'(单引号),"(双引号),\(反斜杠)和NULL字符都会自动转义为反斜杠。 magic_quotes_gpc影响HTTP请求数据(GET,POST和COOKIE)。无法在运行时设置,在PHP中默认为on。

答案 1 :(得分:1)

我通过执行以下操作修复了它:

             $fullname=trim($_REQUEST["fullname"]);
             $fullname = stripslashes($fullname);

答案 2 :(得分:0)

呃,你肯定想urlencode那些......

header("Location: http://example.com/results?patientid=".urlencode($patientid)."&fullname=".urlencode($fullname)."&date=".urlencode($date));

但是你知道什么更好吗? http_build_query

var $query_string = http_build_query(array(
  "fullname" => $fullname,
  "patientid" => $patientid,
  "date" => $date
));

header("Location: http://example.com/results?{$query_string}");