3

我在 PHP 标记中编写 HTML 代码。已经为锚标记样式编写了,如果我更改某些部分会影响。所以我试图在 span onclick 事件中编写我的代码。这是我的代码

 <div>
    <span style='cursor:pointer;' onclick='window.location.href='www.google.com'>
       ".$array1[$i] ['name']."
    </span>
 </div>

如果单击该数组[名称],它应该转到 google.com。问题是我用来提及我的 URL 的单引号。如何在此事件中转义字符串?

4

4 回答 4

4

我想你已经得到了代码。然而,更多的解释:

(i) 有两种类型的引号,即单引号(' ... ')和双引号(" ... ")。现在,当您使用一种引用样式作为外部引用时,您可以在其中使用另一种引用样式,并且您不需要转义任何引用。

例如 echo '他说“多么美好的一天”'; 输出:他说“多么美好的一天”

echo "She said 'that is true'";

输出:她说“那是真的”

(ii)但是在第二种情况下,如果您想输出-> 她说“那是真的”,您需要转义引号。在 php 中默认转义字符是 \

正如您已经注意到的,引号对 PHP 具有特殊意义。为了消除特殊含义,我们“转义”了字符。

所以你需要写: echo 'She said "that\'s true"';

或者

echo "She said \"that's true\"";

这是转义背后的基本概念。但请注意,这两种引号在某些情况下具有不同的含义。双引号在它们内部的内容中执行,而单引号假定它们内部的内容不被评估。

IE

$i = 1;

echo "$i";

// output: 1

echo '$i';

// output: $i

编写代码时请记住这一点。

于 2012-12-08T07:48:41.693 回答
3
    $strLocation = 'http://www.google.com';
    $strLink = "<span onclick='window.location.href=&#39;".$strLocation."&#39;'>HI there</span>";

(or)

$strLink = '<span onclick="window.location.href=\''.$strLocation.'\'">HI there</span>';

    print $strLink;

Using&#39;是一个 HTML 特殊字符,在字符串操作期间不会被检测到,并且只会出现在浏览器中。

使用\只是转义字符串。

于 2012-12-08T07:14:21.727 回答
1

你为什么首先使用单引号?

<div>
    <span style="cursor:pointer;" onclick="window.location.href='www.google.com'">
        <?php echo $array1[$i]['name'] ?>
    </span>
</div>

这就是你所需要的;没有必要让事情变得更复杂:)


根据您的评论,您在echo. 我认为这有点傻,但在这种情况下,使用heredoc语法

echo <<<EOD
    <div>
        <span style="cursor:pointer;" onclick="window.location.href='www.google.com'">
            <?php echo $array1[$i]['name'] ?>
        </span>
    </div>
EOD;
于 2012-12-08T07:47:14.900 回答
0

使用json_encode它,它将可靠地为您管理逃逸。

<? $exampleA = "Escape this 's"; ?>
<? $exampleB = 'Escape this "s'; ?>
<script>
var a = <?= json_encode($exampleA) ?> // result: var a = "Escape this 's"
var b = <?= json_encode($exampleB) ?> // result: var b = "Escape this \"s"
</script>

在这里找到:https ://stackoverflow.com/a/6269254/922522

于 2015-08-14T16:54:22.773 回答