首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 變數傳遞給 JavaScript 完整指南:雙引號、單引號、json_encode 三種正確姿勢

     編輯:PHP 相關知識

PHP 變數傳遞給 JavaScript 完整指南:雙引號、單引號、json_encode 三種正確姿勢

核心難點:PHP 字串輸出到 JS 時,必須確保產生合法的 JavaScript 語法,特別是引號巢狀與特殊字元跳脫。

錯誤示範

<script>
var t = <?php echo $str; ?>; 
// 若 $str = "hello",輸出變成 var t = hello; → ReferenceError: hello is not defined
</script>

正確姿勢一:PHP 單引號包裹 JS 雙引號

<?php $jsStr = '"' . addslashes($phpStr) . '"'; ?>
<script>
var t = <?php echo $jsStr; ?>;
// $phpStr = "hello" → var t = "hello";
</script>

正確姿勢二:PHP 雙引號包裹 JS 單引號

<?php $jsStr = "'" . addslashes($phpStr) . "'"; ?>
<script>
var t = <?php echo $jsStr; ?>;
// $phpStr = "hello" → var t = 'hello';
</script>

正確姿勢三:json_encode 終極方案(推薦)

<script>
// json_encode 自動處理:字串加雙引號、跳脫特殊字元、陣列/物件轉 JSON
var t = <?php echo json_encode($phpVar, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP); ?>;
// 字串: "hello" → "hello"
// 陣列: [1,2] → [1,2]
// 物件: {"a":1} → {"a":1}
</script>

關鍵旗標:JSON_HEX_TAG 等防止 XSS,確保輸出可安全內嵌在 HTML `

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved