js里面放php不执行

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

}

图片描述

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

阅读 4.2k
3 个回答

.js 文件会被服务器当做静态资源返回给浏览器解析,PHP文件是需要服务器解析的。

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

如果是 apache 服务器,请查看 httpd.conf

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

部分;

如果是 nginx,请查看 nginx.conf

server {
    location ~ \.php$ {
        
    }
}

这部分

个人不建议这种写法,如果需要获取服务器某些数据,可以这样:

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

然后通过 js 获取:

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

我建议是,最好是用 php 模板引擎处理,服务器代码 和 视图的数据交互问题.

如果要在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文件里引用变量
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题