[英]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 "
。還需要用雙引號(不得編碼)分隔屬性值,因為它包含空格,如下所示:
(另外,我個人不會使用PHP的<<<
作為字符串)
$passme = "alert("hello world");";
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 world');";
echo "<a onclick=". $PASSME . " >Click here</a>";
?>
嘗試添加
更改代碼中的空間。 並做了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.