以下是我manged有代碼的成功執行對我的本地框:
js_php.php內容:
<html>
<head><title></title></head>
<body>
<div id="output"></div>
<?php
$myfile = fopen("./text_file.txt", "r");
$pass = fread($myfile,filesize("text_file.txt"));
fclose($myfile);
?>
<script>
var myVar = "<?php echo $pass ?>";
document.getElementById("output").innerHTML = myVar;
console.log(myVar);
</script>
</body>
</html>
text_file.txt內容:
Just another textfile :)
js_php.php的結果HTML代碼:
<html>
<head><title></title></head>
<body>
<div id="output"></div>
<script>
var myVar = "Just another textfile :)";
document.getElementById("output").innerHTML = myVar;
console.log(myVar);
</script>
</body>
</html>
即使代碼正常工作,也有更簡潔更快速的將數據從PHP傳遞到JavaScript的方法。在OP可能已經通過數據作爲查詢字符串的一部分,具體如下:
修訂js_php.php
<?php
$myfile = fopen("./text_file.txt", "r");
$pass = fread($myfile,filesize("text_file.txt"));
fclose($myfile);
header("location: js_php.html?" . urlencode("qs=$pass"));
exit;
js_php.html:
<html>
<head><title></title></head>
<body>
<div id="output"></div>
<script>
var qs = location.search;
var data = decodeURIComponent(qs);
var split = data.split("=")[1];
split = split.replace(/\+/g," ");
document.getElementById("output").innerHTML = split;
console.log(data);
</script>
</body>
</html>
注:由於PHP和JavaScript做不以相同的方式對空格字符進行編碼,解碼後的JavaScript將具有需要用空格字符替換的「+」字符。爲此,正則表達式將全局替換數據中的所有數據。
它輸出什麼原始的PHP代碼?哪部分沒有被解釋? – Wndrr
你可以嘗試把JavaScript排除在等式之外嗎?這聽起來像你的PHP不一定執行。如果你有一個像「
確保您的帶有js代碼的文件具有類似'.phtml'或'.php'的文件擴展名 – mega6382