PHP 批量替换相对地址为绝对地址实现代码

  1. <?php 
  2.  
  3. //需要替换的关键字 
  4. $GLOBALS["patterns"] = array
  5.     "/#BASE_URL#/" 
  6. ); 
  7. //替换后的内容,和上面的匹配规则一一对应 
  8. $GLOBALS["replacements"] = array
  9.    "http://api.map.baidu.com/lbsapi/cloud/" 
  10.     //"http://172.22.168.178/lbsapi/" 
  11.     //"http://dev.baidu.com/wiki/static/map/cloud/" 
  12. ); 
  13. /** 
  14.  * 操纵文件类 
  15.  *  
  16.  * 例子: 
  17.  * FileUtil::copyDir('b','d/e');                    测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去 
  18.  * FileUtil::copyFile('b/1/2/3.exe','b/b/3.exe'); 测试复制文件        建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去 
  19.  * FileUtil::createDir('a/1/2/3');                    测试建立文件夹 建一个a/1/2/3文件夹 
  20.  * FileUtil::unlinkFile('b/d/3.exe');             测试删除文件        删除b/d/3.exe文件 
  21.  */ 
  22. class FileUtil { 
  23.     /** 
  24.      * 建立文件夹 
  25.      * 
  26.      * @param string $aimUrl 
  27.      * @return viod 
  28.      */ 
  29.     function createDir($aimUrl) { 
  30.         $aimUrl = str_replace('''/'$aimUrl); 
  31.         $aimDir = ''
  32.         $arr = explode('/'$aimUrl); 
  33.         foreach ($arr as $str) { 
  34.             $aimDir .= $str . '/'
  35.             if (!file_exists($aimDir)) { 
  36.                 mkdir($aimDir); 
  37.             } 
  38.         } 
  39.     } 
  40.     /** 
  41.      * 删除文件 
  42.      * 
  43.      * @param string $aimUrl 
  44.      * @return boolean 
  45.      */ 
  46.     function unlinkFile($aimUrl) { 
  47.         if (file_exists($aimUrl)) { 
  48.             unlink($aimUrl); 
  49.             return true; 
  50.         } else { 
  51.             return false; 
  52.         } 
  53.     } 
  54.      
  55.     /** 
  56.      * 复制文件夹 
  57.      * 
  58.      * @param string $oldDir 
  59.      * @param string $aimDir 
  60.      * @param boolean $overWrite 该参数控制是否覆盖原文件 
  61.      * @return boolean 
  62.      */ 
  63.     function copyDir($oldDir$aimDir$overWrite = false) { 
  64.         $aimDir = str_replace('''/'$aimDir); 
  65.         $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir.'/'
  66.         $oldDir = str_replace('''/'$oldDir); 
  67.         $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir.'/'
  68.         if (!is_dir($oldDir)) { 
  69.             return false; 
  70.         } 
  71.         if (!file_exists($aimDir)) { 
  72.             FileUtil::createDir($aimDir); 
  73.         } 
  74.         $dirHandle = opendir($oldDir); 
  75.         while(false !== ($file = readdir($dirHandle))) { 
  76.             if ($file == '.' || $file == '..') { 
  77.                 continue
  78.             } 
  79.             if (!is_dir($oldDir . $file)) { 
  80.                 FileUtil::copyFile($oldDir . $file$aimDir . $file$overWrite); 
  81.             } else { 
  82.                 FileUtil::copyDir($oldDir . $file$aimDir . $file$overWrite); 
  83.             } 
  84.         } 
  85.         return closedir($dirHandle); 
  86.     } 
  87.     /** 
  88.      * 复制文件 
  89.      * 
  90.      * @param string $fileUrl 
  91.      * @param string $aimUrl 
  92.      * @param boolean $overWrite 该参数控制是否覆盖原文件 
  93.      * @return boolean 
  94.      */ 
  95.     function copyFile($fileUrl$aimUrl$overWrite = false) { 
  96.         if (!file_exists($fileUrl)) { 
  97.             return false; 
  98.         } 
  99.         if (file_exists($aimUrl) && $overWrite == false) { 
  100.             return false; 
  101.         } elseif (file_exists($aimUrl) && $overWrite == true) { 
  102.             FileUtil::unlinkFile($aimUrl); 
  103.         } 
  104.         $aimDir = dirname($aimUrl); 
  105.         FileUtil::createDir($aimDir); 
  106.         copy($fileUrl$aimUrl); 
  107.         //替换变量 
  108.         $apiFilePointer = fopen($aimUrl'r'); 
  109.         $apiFileContent = fread($apiFilePointerfilesize($aimUrl)); 
  110.         //只在js、html、css文件进行替换 
  111.         if (preg_match('/(.js|.html|.css|.htm)$/'$aimUrl)) { 
  112.             $apiFileContent = preg_replace($GLOBALS["patterns"], $GLOBALS["replacements"], $apiFileContent); 
  113.         } 
  114.         fclose($apiFilePointer); 
  115.         echo $aimUrl."rn"
  116.         $apiFilePointer = fopen($aimUrl'w+'); 
  117.         fwrite($apiFilePointer$apiFileContent); 
  118.         fclose($apiFilePointer); 
  119.         //替换变量 
  120.         return true; 
  121.     } 
  122. FileUtil::copyDir("resource","cloud",true); 
  123. ?> 
波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » PHP 批量替换相对地址为绝对地址实现代码

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡