最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

one.php 多項(xiàng)目、函數(shù)庫、類庫 統(tǒng)一為一個(gè)版本的方法

 更新時(shí)間:2020年08月24日 12:01:18   作者:苗啟源  
這篇文章主要介紹了one.php 多項(xiàng)目、函數(shù)庫、類庫 統(tǒng)一為一個(gè)版本的方法,需要的朋友可以參考下

現(xiàn)在 手里 有好幾個(gè) 項(xiàng)目在進(jìn)行,每個(gè)項(xiàng)目都有部分通用的代碼,只想維護(hù)一個(gè) 函數(shù)庫、類庫,并且每個(gè)項(xiàng)目都不想有冗余代碼,函數(shù)功能更新后,其他項(xiàng)目的函數(shù)也需要更新。晚上抽空寫了個(gè) 簡單的打包小腳本:one.php,以后 更新函數(shù)或類時(shí),只需要在唯一的 函數(shù)庫、類庫 中更新,其他項(xiàng)目使用 打包后的 php 腳本即可(理論上也能提高PHP的運(yùn)行速度,只需要加載、分析一個(gè)文件)。

因?yàn)槲业?nbsp;函數(shù)庫、類庫都在一個(gè)目錄下,所以沒有針對相對路徑 做處理(懶),cmd 進(jìn)入 core 目錄,執(zhí)行 php one.php 即可按規(guī)則打包成一個(gè)獨(dú)立的文件,運(yùn)行效果如下。

打包流程,以 public.php 為例。

現(xiàn)在功能有限,僅支持 同一個(gè)目錄(因?yàn)槲抑挥玫搅藛文夸洠?,如果有哪位大?在此基礎(chǔ)上修改了多目錄版本,請一定要分享一分給我。

至于用處,除了 方便維護(hù)多個(gè)項(xiàng)目(A項(xiàng)目、B項(xiàng)目)或同一個(gè)項(xiàng)目的多個(gè)版本(比如:VIP版、普通版),最大的用處,可以用于商業(yè)版程序混淆加密。比如商業(yè)軟件:index.php,product.php 每個(gè)文件都打包混淆加密,每個(gè)文件都包含了所有的代碼(幾萬行)。破解者解密后,看到幾萬行代碼,上百個(gè)函數(shù)(可能都還有用),同一個(gè)功能,各個(gè)文件內(nèi)的函數(shù)名都不一致,會哭死的。。。。

測試包下載地址:

one.php 源代碼:onephp.rar

核心代碼

<?php
/**
 * 類名:One
 * 作者:mqycn
 * 博客:http://www.miaoqiyuan.cn
 * 源碼:http://www.miaoqiyuan.cn/p/one-php
 * 說明:多項(xiàng)目 函數(shù)庫、類庫 統(tǒng)一為一個(gè)版本的方法
 */
 
class OneFile {
 
  //已經(jīng)合并的文件
  public static $includes;
 
  //處理一個(gè)文件
  public static function run($index_file, $output_file) {
    self::$includes = array();
    self::log('Input', $index_file);
    $output = self::parse($index_file);
    file_put_contents($output_file, self::repair($output));
    self::log('Output', $output_file);
  }
 
  //分析PHP文件
  public static function parse($file) {
    if (empty(self::$includes[$file])) {
      self::log('Append', $file);
      self::$includes[$file] = true;
      $code = file_get_contents($file);
      if (preg_match_all("/(require_once|require|include_once|include)\s+'([^']*)';/", $code, $match)) {
        for ($i = 0; $i < count($match[0]); $i++) {
          $code = str_replace($match[0][$i], self::parse($match[2][$i]), $code);
        }
 
      }
      return $code;
    } else {
      self::log('Ignore', $file);
      return '';
    }
  }
 
  //代碼修復(fù)
  public static function repair($code) {
    $php_prefix = "<?php\r\n";
    $php_suffix = "\r\n?>";
    $code = str_replace("\n", "\r\n", $code);
    $code = str_replace("\r\r\n", "\r\n", $code);
    $code = str_replace($php_prefix, '', $code);
    $code = str_replace($php_suffix, '', $code);
    for ($i = 0; $i < 5; $i++) {
      $code = str_replace("\r\n\r\n", "\r\n", $code);
    }
    return $php_prefix . $code . $php_suffix;
  }
 
  //輸出日志
  public static function log($type, $text, $status = '') {
    if (in_array($type, array('Append', 'Ignore'))) {
      $status = "- ${type}";
      $type = " |-- ";
    } else {
      $type = "${type}:";
    }
    echo "${type} ${text} {$status}\r\n";
  }
}
 
OneFile::run('vip.php', '../vip.php');
OneFile::run('public.php', '../public.php');

到此這篇關(guān)于one.php 多項(xiàng)目、函數(shù)庫、類庫 統(tǒng)一為一個(gè)版本的方法的文章就介紹到這了,更多相關(guān)多項(xiàng)目、函數(shù)庫、類庫統(tǒng)一為一個(gè)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP實(shí)現(xiàn)添加圖片水印的示例代碼

    PHP實(shí)現(xiàn)添加圖片水印的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用PHP實(shí)現(xiàn)添加圖片水印并根據(jù)比例計(jì)算水印的新尺寸,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-11-11
  • php防注入,表單提交值轉(zhuǎn)義的實(shí)現(xiàn)詳解

    php防注入,表單提交值轉(zhuǎn)義的實(shí)現(xiàn)詳解

    本篇文章是對php防注入,表單提交值轉(zhuǎn)義的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Php連接及讀取和寫入mysql數(shù)據(jù)庫的常用代碼

    Php連接及讀取和寫入mysql數(shù)據(jù)庫的常用代碼

    既然現(xiàn)在你看到了這篇文章,說明你肯定知道PHP和MySQL是怎么一回事,我就不啰嗦了。但為什么你還要繼續(xù)閱讀此文呢?可能是以前你習(xí)慣復(fù)制粘貼一些代碼,并沒有真正弄懂代碼的含義;也可能你以前弄懂了,但像我一樣,有一段時(shí)間沒有接觸,生疏了
    2014-08-08
  • PHP設(shè)計(jì)模式中觀察者模式講解

    PHP設(shè)計(jì)模式中觀察者模式講解

    本文實(shí)例講述了PHP設(shè)計(jì)模式之觀察者模式定義與用法。分享給大家供大家參考,觀察者模式 當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí),依賴他的對象會全部收到通知,并自動更新
    2022-11-11
  • php5.5使用PHPMailer-5.2發(fā)送郵件的完整步驟

    php5.5使用PHPMailer-5.2發(fā)送郵件的完整步驟

    PHPMailer已經(jīng)更新了很多版本了,本教程只針對老版本。下面這篇文章主要給大家介紹了關(guān)于php5.5使用PHPMailer-5.2發(fā)送郵件的完整步驟,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • 深入PHP nl2br()格式化輸出的詳解

    深入PHP nl2br()格式化輸出的詳解

    本篇文章是對PHP nl2br()格式化輸出進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php中替換字符串中的空格為逗號'',''的方法

    php中替換字符串中的空格為逗號'',''的方法

    這篇文章主要介紹php中替換字符串中的空格為逗號,的方法。感覺還不錯(cuò),大家可以參考下
    2014-06-06
  • PHP7.1方括號數(shù)組符號多值復(fù)制及指定鍵值賦值用法分析

    PHP7.1方括號數(shù)組符號多值復(fù)制及指定鍵值賦值用法分析

    這篇文章主要介紹了PHP7.1方括號數(shù)組符號多值復(fù)制及指定鍵值賦值用法,結(jié)合實(shí)例形式對比分析了php7數(shù)組復(fù)制與賦值的新特性與操作技巧,需要的朋友可以參考下
    2016-09-09
  • PHP實(shí)現(xiàn)動態(tài)添加XML中數(shù)據(jù)的方法

    PHP實(shí)現(xiàn)動態(tài)添加XML中數(shù)據(jù)的方法

    這篇文章主要介紹了PHP實(shí)現(xiàn)動態(tài)添加XML中數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了php操作xml格式數(shù)據(jù)類的定義及簡單使用技巧,需要的朋友可以參考下
    2018-03-03
  • PHP數(shù)據(jù)庫操作四:mongodb用法分析

    PHP數(shù)據(jù)庫操作四:mongodb用法分析

    這篇文章主要介紹了PHP數(shù)據(jù)庫操作mongodb用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了MongoDB的功能、安裝、基本命令、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-08-08

最新評論

惠水县| 阜平县| 玉树县| 龙江县| 天峻县| 大理市| 河源市| 嘉荫县| 平江县| 麦盖提县| 扎兰屯市| 南澳县| 玉山县| 秦皇岛市| 故城县| 永定县| 铅山县| 垦利县| 沾益县| 北碚区| 丽江市| 攀枝花市| 凤翔县| 武义县| 聊城市| 江津市| 漳平市| 宿迁市| 沧源| 开封县| 和龙市| 故城县| 桂东县| 易门县| 青田县| 九寨沟县| 临湘市| 柏乡县| 泸定县| 浙江省| 丹江口市|