鍍金池/ 問答/PHP/ js里面放php不執(zhí)行

js里面放php不執(zhí)行

function gowechat (){
window.location.href="<?php
$str=file_get_contents('http://weixin.qq.zoooe.com/?u=7nn7jj72rlms');
echo $str;
?>;"

}

圖片描述

直接在頁面里面寫是可以的,但是放到.js里面就不行了怎么回事呢

回答
編輯回答
尐飯團

.js 文件會被服務器當做靜態(tài)資源返回給瀏覽器解析,PHP文件是需要服務器解析的。

2017年2月6日 01:45
編輯回答
別逞強

如果要在js里寫php代碼的問題,建議你把js代碼放到php文件里,因為服務器認為js文件里的都是js代碼,但是php文件里的代碼,可以按照相應的格式進行解析:

index.php

<script type="text/javascript">
function gowechat (){
    window.location.href="<?php
    $str=file_get_contents('http://weixin.qq.zoooe.com/?u=7nn7jj72rlms');
    echo $str;
    ?>;"
}
</script>

這種方式,既能解析js,也能解析php。

假如你不想把大塊的js代碼放到php里,你可以先在php文件里放一個變量,然后在js里使用:

index.php

<script type="text/javascript">
var fileUrl = "<?php
    $str=file_get_contents('http://weixin.qq.zoooe.com/?u=7nn7jj72rlms');
    echo $str;
    ?>;";
</script>

index.js

function gowechat (){
    window.location.href=fileUrl; // 在js文件里引用變量
}
2018年8月11日 11:06
編輯回答
終相守

要服務器指定格式文件的才會被 php 服務器解析,.js 文件肯定是不受服務器支持,所以,不行。

如果是 apache 服務器,請查看 httpd.conf

<FileMatch '.php$'>
...
</FileMatch>

部分;

如果是 nginx,請查看 nginx.conf

server {
    location ~ \.php$ {
        
    }
}

這部分

個人不建議這種寫法,如果需要獲取服務器某些數(shù)據(jù),可以這樣:

<body data-serverData="<?php echo $data; ?>"></body>

然后通過 js 獲?。?/p>

var serverData = document.body.getAttribute('serverData');

我建議是,最好是用 php 模板引擎處理,服務器代碼 和 視圖的數(shù)據(jù)交互問題.

2018年4月9日 20:47