PHP 打印带有多个单引号的字符串
PHP Printing a string with multiple single quotes
所以我遇到了一个问题,看起来应该是一个非常简单的修复,但我似乎无法弄清楚。
我正在使用准备好的语句从我的 SQL 查询数据并且 return 是正确的。我有 var_dumped
结果并确认信息在那里。
table 显示:2 'all of the way'
数组变量显示为:2 \'all of the way\'
但是当我将它回显到页面时,我看到了这个:2
我已经尝试了 htmlspecialchars
、htmlentities
、addslashes
、stripslashes
以及它们的一些组合。我在这里缺少一个功能吗? Google 并没有太大帮助,因为描述问题的词语非常笼统。
提前致谢!
编辑
抱歉 - 没有添加我的代码,因为我认为这是我不熟悉的功能。在这里。
$Res = $db -> query("SELECT * FROM 01_02_item WHERE ParID = $ParID AND active = 1 ORDER BY OrderID") -> fetchAll(PDO::FETCH_ASSOC);
if(empty($Res[0])) $return = "<span class = 'nodata'>No data</span>";
foreach($Res as $r){
$id = $r['id'];
$name = htmlspecialchars($r['Name']);
$title = stripslashes(htmlspecialchars($r['Description']));
$return .= "<li href = '$id' title = '$title' name = '$name'>$name</li>";
}
return $return;
默认情况下 htmlspecialchars()
不转义单引号。
你应该使用 htmlspecialchars('foobar', ENT_QUOTES)
.
所以我遇到了一个问题,看起来应该是一个非常简单的修复,但我似乎无法弄清楚。
我正在使用准备好的语句从我的 SQL 查询数据并且 return 是正确的。我有 var_dumped
结果并确认信息在那里。
table 显示:2 'all of the way'
数组变量显示为:2 \'all of the way\'
但是当我将它回显到页面时,我看到了这个:2
我已经尝试了 htmlspecialchars
、htmlentities
、addslashes
、stripslashes
以及它们的一些组合。我在这里缺少一个功能吗? Google 并没有太大帮助,因为描述问题的词语非常笼统。
提前致谢!
编辑 抱歉 - 没有添加我的代码,因为我认为这是我不熟悉的功能。在这里。
$Res = $db -> query("SELECT * FROM 01_02_item WHERE ParID = $ParID AND active = 1 ORDER BY OrderID") -> fetchAll(PDO::FETCH_ASSOC);
if(empty($Res[0])) $return = "<span class = 'nodata'>No data</span>";
foreach($Res as $r){
$id = $r['id'];
$name = htmlspecialchars($r['Name']);
$title = stripslashes(htmlspecialchars($r['Description']));
$return .= "<li href = '$id' title = '$title' name = '$name'>$name</li>";
}
return $return;
默认情况下 htmlspecialchars()
不转义单引号。
你应该使用 htmlspecialchars('foobar', ENT_QUOTES)
.