我对将PHP输出传递给Javascript感到好奇。具体有两件事:
发布于 2014-04-26 01:47:18
我假设可以使用.php页面上的脚本标记安全地完成这一任务。有什么理由不这样做吗?
是。没有理由不让做吧。
你能让PHP在.js页面上运行吗?需要进行哪些配置更改?再说一次,会有什么理由不这样做吗?
是的,您必须配置您的Yes服务器,以便为.js后缀使用PHP模块。在nginx上,您可以为文件添加一个以..js结尾的位置行:-
location ~ \.js$
{
}在阿帕奇,你会做这样的事情:-
AddType application/x-httpd-php .php .js您可能不想这样做的原因之一是,任何静态JS文件都会通过PHP模块,这将导致额外的开销。另一种选择是在HTML脚本标记中引用PHP文件,例如:-
<script src="myfile.php"></script>然后确保PHP以正确的内容类型返回其输出,例如:-
header('Content-Type: application/javascript');发布于 2014-04-26 01:44:34
你在两方面都是对的。
<script>页面上的.php标记中输出动态内容。.php。示例1
<script type="text/javascript">
var myobject = {
data: '<?php echo $myPHPvariable; ?>';
};
// or better yet:
var myBetterObject = <?php echo json_encode($myPhpObject); ?>;
function foo () { ... }
</script>示例2
不推荐
<?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文档中:
<script type="text/javascript" src="/custom_javascript.php"></script>它肯定应该以.php结束,值得庆幸的是,web浏览器知道JavaScript是type="text/javascript"部分,并且因为您的type="text/javascript"脚本输出了正确的Content-Type头。
https://stackoverflow.com/questions/23305535
复制相似问题