使用Echo正确使用反斜杠

时间:2015-07-21 15:54:31

标签: php

我正在尝试回显包含'的变量,但它破坏了脚本。要解决此问题,我使用了addslashes();

这是我的代码

$row["market_hash_name"] = addslashes($row["market_hash_name"]);
echo  $row["market_hash_name"];

现在这不会破坏脚本,但会显示反斜杠。如果'没有'打破脚本,我怎能不显示反斜杠。

编辑:我知道它不会破坏脚本,但是,它会阻止php回应的其余jQuery正常工作。

3 个答案:

答案 0 :(得分:1)

您可以使用:

echo htmlspecialchars($row["market_hash_name"], ENT_QUOTES);

它将确保所有特殊字符都转换为HTML实体,因此单引号变为'

答案 1 :(得分:1)

如果你只是在呼应

,那就不会破坏
$row = array(
    'market_hash_name' => "hello'world"
);

echo $row['market_hash_name']; // outputs: hello'world

答案 2 :(得分:0)

回显单词don't并不会破坏您的脚本,当它存储在变量中时,您可以轻松地回显它但是如果您想要回显单词而不存储它它需要使用htmlspecialchars()

进行转义

我认为你已经对查询和html输出感到困惑。 在查询中,您将字符串转义两次。,例如:

$query = 'I don\'t think so.';
               ^ first escape for php script
$query = 'I don\\\'t think so.';
                ^ second escape for mysql

它会像这样转到mysql:I don\'t think so. 您也可以使用不同类型的报价来避免这两步转义。像:

"I don't think so.";

'I don"t think so.';