最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 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. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

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

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级