簡體   English   中英

將Javascript代碼存儲在PHP變量中?

[英]store Javascript code in PHP variable?

我想將JavaScript代碼存儲在PHP變量中,以便將其多次注入到我的主代碼中:

<?php

$PASSME = <<<PASSME
alert("hello world");
PASSME;

echo "<a onclick=$PASSME >Click here</a>";

?>

在Google Chrome瀏覽器中,我可以閱讀以下源代碼:

<a onclick="alert("hello" world");>Click here</a>

所以我注意到了這一點:

"hello" world"應該是"hello world"

我究竟做錯了什么?

注意:我實際上是在做一個更復雜的項目。 我試圖舉一個例子,以了解如何正確地做到這一點。

正如我所評論的那樣,您在雙引號中使用了雙雙引號,請改為使用單引號:

<?php

$PASSME = <<<PASSME
alert('hello world');
PASSME;

echo "<a onclick=\"$PASSME\" >Click here</a>";

?>

這將導致正確的代碼:

<a onclick="alert('hello world');">Click here</a>

當有很多代碼時,只需將變量從php傳遞到js,即:

<?php

$PASSME = <<<PASSME
var message = 'hello world'
PASSME;
?>
<script>
<?= $PASSME; ?>
</script>
<?
echo "<a onclick=\"alert(message)\">Click here</a>";
?>

問題在於您的屬性值包含空格字符,並且沒有用引號字符定界。

<?php
  $html_safe_passme = htmlspecialchars($PASSME, ENT_QUOTES);
?>
<a onclick="<?php echo $html_safe_passme; ?>">Click here</a>

您需要在HTML屬性值中轉義" to &quot; 。還需要用雙引號(不得編碼)分隔屬性值,因為它包含空格,如下所示:

(另外,我個人不會使用PHP的<<<作為字符串)

$passme = "alert(&quot;hello world&quot;);";

echo "<a onclick=\"$passme\">click here</a>";

像這樣嘗試,用單引號引起來:

alert('hello world');

使用以下內容(您錯過了變量周圍的引號)

 <?php

$PASSME = <<<PASSME
alert("hello world");
PASSME;

echo "<a onclick='".$PASSME."' >Click here</a>";

?>
<?php

$PASSME = "alert('hello&nbsp;world');";

echo "<a onclick=". $PASSME . " >Click here</a>";

?>

嘗試添加&nbsp; 更改代碼中的空間。 並做了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM