校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > one.php 多項(xiàng)目、函數(shù)庫(kù)、類庫(kù) 統(tǒng)一為一個(gè)版本的方法

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

熱門標(biāo)簽:如何在世界地圖標(biāo)注 臨沂crm外呼系統(tǒng)平臺(tái) 菏澤語(yǔ)音外呼系統(tǒng)運(yùn)營(yíng)商 地圖標(biāo)注符號(hào)樣式有 廈門400電話辦理選易號(hào)網(wǎng) 梧州市機(jī)器人外呼系統(tǒng)怎么樣 天客通地圖標(biāo)注 電子地圖標(biāo)注怎么修改 公司外呼系統(tǒng)中心

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

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

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

現(xiàn)在功能有限,僅支持 同一個(gè)目錄(因?yàn)槲抑挥玫搅藛文夸洠绻心奈淮笊?在此基礎(chǔ)上修改了多目錄版本,請(qǐng)一定要分享一分給我。

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

測(cè)試包下載地址:

one.php 源代碼:onephp.rar

核心代碼

?php
/**
 * 類名:One
 * 作者:mqycn
 * 博客:http://www.miaoqiyuan.cn
 * 源碼:http://www.miaoqiyuan.cn/p/one-php
 * 說(shuō)明:多項(xiàng)目 函數(shù)庫(kù)、類庫(kù) 統(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ù)庫(kù)、類庫(kù) 統(tǒng)一為一個(gè)版本的方法的文章就介紹到這了,更多相關(guān)多項(xiàng)目、函數(shù)庫(kù)、類庫(kù)統(tǒng)一為一個(gè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:貴陽(yáng) 瀘州 白城 黃石 迪慶 雞西 郴州 綿陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《one.php 多項(xiàng)目、函數(shù)庫(kù)、類庫(kù) 統(tǒng)一為一個(gè)版本的方法》,本文關(guān)鍵詞  one.php,多,項(xiàng)目,函數(shù),庫(kù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《one.php 多項(xiàng)目、函數(shù)庫(kù)、類庫(kù) 統(tǒng)一為一個(gè)版本的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于one.php 多項(xiàng)目、函數(shù)庫(kù)、類庫(kù) 統(tǒng)一為一個(gè)版本的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 保康县| 宿松县| 庄浪县| 锡林浩特市| 团风县| 宁远县| 当雄县| 巨野县| 顺昌县| 分宜县| 保德县| 麟游县| 崇义县| 平南县| 四子王旗| 嘉黎县| 和政县| 左权县| 湘阴县| 皋兰县| 扎兰屯市| 武隆县| 昌都县| 达孜县| 乡城县| 札达县| 韶关市| 化州市| 沭阳县| 永清县| 嘉荫县| 大洼县| 西安市| 克什克腾旗| 房产| 丽水市| 麻栗坡县| 玉环县| 神木县| 唐山市| 泰安市|