首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让PHP运行在.js页面上不可行吗?

让PHP运行在.js页面上不可行吗?
EN

Stack Overflow用户
提问于 2014-04-26 01:31:28
回答 2查看 56关注 0票数 1

我对将PHP输出传递给Javascript感到好奇。具体有两件事:

  • 我假设可以使用.php页面上的脚本标记安全地完成这一任务。有什么理由不这样做吗?
  • 你能让PHP在.js页面上运行吗?需要进行哪些配置更改?再说一次,会有什么理由不这样做吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-26 01:47:18

我假设可以使用.php页面上的脚本标记安全地完成这一任务。有什么理由不这样做吗?

是。没有理由不让做吧。

你能让PHP在.js页面上运行吗?需要进行哪些配置更改?再说一次,会有什么理由不这样做吗?

是的,您必须配置您的Yes服务器,以便为.js后缀使用PHP模块。在nginx上,您可以为文件添加一个以..js结尾的位置行:-

代码语言:javascript
复制
location ~ \.js$
{
}

在阿帕奇,你会做这样的事情:-

代码语言:javascript
复制
AddType application/x-httpd-php .php .js

您可能不想这样做的原因之一是,任何静态JS文件都会通过PHP模块,这将导致额外的开销。另一种选择是在HTML脚本标记中引用PHP文件,例如:-

代码语言:javascript
复制
<script src="myfile.php"></script>

然后确保PHP以正确的内容类型返回其输出,例如:-

代码语言:javascript
复制
header('Content-Type: application/javascript');
票数 2
EN

Stack Overflow用户

发布于 2014-04-26 01:44:34

你在两方面都是对的。

  • 您可以在<script>页面上的.php标记中输出动态内容。
  • 您可以在一个所有javascript文件中输出动态内容(PHP),尽管扩展名仍然是.php

示例1

代码语言:javascript
复制
<script type="text/javascript">
var myobject = {
    data: '<?php echo $myPHPvariable; ?>';
};
// or better yet:
var myBetterObject = <?php echo json_encode($myPhpObject); ?>;

function foo () { ... }
</script>

示例2

不推荐

代码语言:javascript
复制
<?php
// This is an all-javascript file but the extension ends with .php

header('Content-Type: application/javascript');
?>

var myobject = {
    data: '<?php echo $myPHPvariable; ?>';
};
function foo () { ... }

然后将该文件包含在HTML文档中:

代码语言:javascript
复制
<script type="text/javascript" src="/custom_javascript.php"></script>

它肯定应该以.php结束,值得庆幸的是,web浏览器知道JavaScript是type="text/javascript"部分,并且因为您的type="text/javascript"脚本输出了正确的Content-Type头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23305535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档