【发布时间】:2018-01-21 04:43:09
【问题描述】:
我们有一些输出 JavaScript 代码的 PHP 文件。我知道事情可能会有所不同,但这是在项目开始时做出的决定。
我们有几个 PHP 文件可以生成 Javascript 文件,例如:
<?php Header("content-type: application/x-javascript");
if(strlen($_GET['country']) != 2){ exit;} //avoids code injection
include_once($_SERVER['DOCUMENT_ROOT'].'/countries/'.$_GET['country'].'.php');?>
/*Define GLOBAL Javascript variables*/
var COUNTRY = "<?php echo $GLOBALS["country"]; ?>";
/*Language code according to ISO_639-1 codes*/
var LANGUAGE = "<?php echo $lang_CT[$GLOBALS["country"]]; ?>";
...
先验缩小该代码的最佳方法是什么,即不是在调用或回显文件时,而是在服务器上,使用 Javascript 缩小规则?
编辑:我一直在想,事情可能实现起来很复杂,我想象一下这种无效 JS 代码的情况:
var str = <?php echo "'a string';"; ?>
输出有效的 JS 代码
var str = 'a string';
但基本上我想知道是否有任何基本的缩小选项,以删除 双空格、cmets 和断线,这不会影响生成的 JS 代码。
【问题讨论】:
-
有什么理由要缩小 php 代码吗?由于它无论如何都会在服务器上运行,因此您不需要节省数据传输(缩小代码的主要原因)
-
if(strlen($_GET['country']) != 2){ exit;}如何避免代码注入? -
@DanLynch 我相信 OP 想要缩小 php 生成的 Javascript。
-
@BeetleJuice ... 曾经尝试将一些无效的路径名放在两个字符中,以寻址完全不同的文件?
-
@JoãoPimentelFerreira 我一直对你缩小先验的意图感到困惑:你的意思是什么?如果由于某些请求而不想在运行脚本时缩小,您可以使用一些服务器端 CLI 来例如作为安装脚本的一部分运行它。这仍然会在服务器上创建文件,这在创建文件时是完美的。如果在安装脚本中这样做不够灵活,您可能需要使用一些服务器端缓存来缩小文件,除非它在先前的请求中被缩小。这需要将 Javascript 代码再次写入文件。
标签: javascript php minify