如何使用PHP最小化(而不混淆)JavaScript

本文介绍了一种使用PHP来最小化JavaScript代码的方法,通过将JavaScript文件路径隐藏在随机命名的文件夹中,并利用PHP函数动态加载和最小化JavaScript,从而避免了注释泄露给客户端的问题。同时,该方法还增加了代码的安全性和减少了文件体积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于一个好的程序员,必须在代码中提供好的注释。 在PHP中,给出注释没有缺点。 但是JavaScript呢? 您是否真的希望这些注释保留在代码中并使它的大小增加一倍,并且当然会在代码到达客户端(浏览器)时公开您所做的事情?

我不确定你们中有多少人会遇到这个问题,但是我已经面对了很多次。 我不擅长记忆,因此我在JavaScript代码中添加了很多代码注释。 从不希望这些评论能够传达给客户。 所以我以前用PHP代码从每个文件中删除注释,然后上传

缩小文件到服务器。

然后我想到一个主意。 我此后从未删除评论。 可能有些用途已经在使用此东西,但这对我来说是新的,因此请考虑在此处发布。

这里是...

  • 而不是常规名称文件夹。 在其中保存JavaScript文件的js脚本中,将它们保存在随机名称文件夹中。 像js_kl32lnfdn之类的东西
  • 我们将外部JavaScript文件称为
    <script type="text/javascript" src="/scripts/myscript.js"></script>
    取而代之的是,创建一个PHP函数,如下所示:
    
    function send_script($script)
    {
        echo "<script type=\"text/javascript\" src=\"/js.php?js=".$script."\"></script>"; 
        //don't use the XML style closing tag (<script ....  />) IE would not read it.
    } 
    将此功能保存在一个安全的文件中。
  • 在根文件夹中,保存此PHP文件(js.php)
    
    <?php
    //define the folder name, so that it can be changed anytime.
    define("FOLDER_NAME", "js_kl32lnfdn"); 
    //path for the original file
    $js_original = $_SERVER['DOCUMENT_ROOT']."/".FOLDER_NAME."/".$_GET['js']; 
    //header for the javascript file (will give a warning if not provided)
    header("content-type:text/javascript; charset:UTF-8"); 
    //alert error if file doesn't exisit
    if (!file_exists($js_original))
    die('alert(\'JavaScript file error!\')'); 
    //include minificator class
    require('jsmin-1.1.0.php'); 
    //read and minify the content
    $minified = JSMin::minify(file_get_contents($js_original)); 
    //header for caching
    header("Expires: ".gmdate("D, d M Y H:i:s", (time()+9000)) . " GMT"); 
    //year to write on copyright notice
    $year = getdate();
    $year = $year['year']; 
    //send your copyright notice
    echo "/* Copyright ".$year." - www.your-website.com */"; 
    //send the minified version
    echo $minified;
    ?> 
    最小化器 PHP类在这里: JSMin

会发生什么..

  • JavaScript文件将由js.php文件缩小 ,而js.php文件本身将使用缩小器类(不是我自己制作的)。
  • 路径为js_kl32lnfdn / script1.js的文件将称为js.php?js = script1.js。 因此,永远不会知道原始(注释)文件的路径。
  • 为了获得更高的安全性,例如,如果仅希望登录用户能够调用javascript或其他功能,则可以在js.php的开头添加一些验证代码。

希望你会喜欢。

问候,

哈普雷特

From: https://bytes.com/topic/php/insights/796602-how-minify-not-obfuscate-your-javascript-using-php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值