时间:2021-07-01 10:21:17 帮助过:15人阅读
- <br><!--?php <BR-->//需要替换的关键字 <br>$GLOBALS["patterns"] = array( <br>"/#BASE_URL#/" <br>); <br>//替换后的内容,和上面的匹配规则一一对应 <br>$GLOBALS["replacements"] = array( <br>"http://api.map.baidu.com/lbsapi/cloud/" <br>//"http://172.22.168.178/lbsapi/" <br>//"http://dev.baidu.com/wiki/static/map/cloud/" <br>); <br>/** <br>* 操纵文件类 <br>* <br>* 例子: <br>* FileUtil::copyDir('b','d/e'); 测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去 <br>* FileUtil::copyFile('b/1/2/3.exe','b/b/3.exe'); 测试复制文件 建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去 <br>* FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 <br>* FileUtil::unlinkFile('b/d/3.exe'); 测试删除文件 删除b/d/3.exe文件 <br>*/ <br>class FileUtil { <br>/** <br>* 建立文件夹 <br>* <br>* @param string $aimUrl <br>* @return viod <br>*/ <br>function createDir($aimUrl) { <br>$aimUrl = str_replace('', '/', $aimUrl); <br>$aimDir = ''; <br>$arr = explode('/', $aimUrl); <br>foreach ($arr as $str) { <br>$aimDir .= $str . '/'; <br>if (!file_exists($aimDir)) { <br>mkdir($aimDir); <br>} <br>} <br>} <br>/** <br>* 删除文件 <br>* <br>* @param string $aimUrl <br>* @return boolean <br>*/ <br>function unlinkFile($aimUrl) { <br>if (file_exists($aimUrl)) { <br>unlink($aimUrl); <br>return true; <br>} else { <br>return false; <br>} <br>} <br>/** <br>* 复制文件夹 <br>* <br>* @param string $oldDir <br>* @param string $aimDir <br>* @param boolean $overWrite 该参数控制是否覆盖原文件 <br>* @return boolean <br>*/ <br>function copyDir($oldDir, $aimDir, $overWrite = false) { <br>$aimDir = str_replace('', '/', $aimDir); <br>$aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir.'/'; <br>$oldDir = str_replace('', '/', $oldDir); <br>$oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir.'/'; <br>if (!is_dir($oldDir)) { <br>return false; <br>} <br>if (!file_exists($aimDir)) { <br>FileUtil::createDir($aimDir); <br>} <br>$dirHandle = opendir($oldDir); <br>while(false !== ($file = readdir($dirHandle))) { <br>if ($file == '.' || $file == '..') { <br>continue; <br>} <br>if (!is_dir($oldDir . $file)) { <br>FileUtil::copyFile($oldDir . $file, $aimDir . $file, $overWrite); <br>} else { <br>FileUtil::copyDir($oldDir . $file, $aimDir . $file, $overWrite); <br>} <br>} <br>return closedir($dirHandle); <br>} <br>/** <br>* 复制文件 <br>* <br>* @param string $fileUrl <br>* @param string $aimUrl <br>* @param boolean $overWrite 该参数控制是否覆盖原文件 <br>* @return boolean <br>*/ <br>function copyFile($fileUrl, $aimUrl, $overWrite = false) { <br>if (!file_exists($fileUrl)) { <br>return false; <br>} <br>if (file_exists($aimUrl) && $overWrite == false) { <br>return false; <br>} elseif (file_exists($aimUrl) && $overWrite == true) { <br>FileUtil::unlinkFile($aimUrl); <br>} <br>$aimDir = dirname($aimUrl); <br>FileUtil::createDir($aimDir); <br>copy($fileUrl, $aimUrl); <br>//替换变量 <br>$apiFilePointer = fopen($aimUrl, 'r'); <br>$apiFileContent = fread($apiFilePointer, filesize($aimUrl)); <br>//只在js、html、css文件进行替换 <br>if (preg_match('/(\.js|\.html|\.css|\.htm)$/', $aimUrl)) { <br>$apiFileContent = preg_replace($GLOBALS["patterns"], $GLOBALS["replacements"], $apiFileContent); <br>} <br>fclose($apiFilePointer); <br>echo $aimUrl."\r\n"; <br>$apiFilePointer = fopen($aimUrl, 'w+'); <br>fwrite($apiFilePointer, $apiFileContent); <br>fclose($apiFilePointer); <br>//替换变量 <br>return true; <br>} <br>} <br>FileUtil::copyDir("resource","cloud",true); <br>?> <br> <br>再写一个bat批处理文件,来运行这个PHP。 <br>php release.php <br>现在,只需点击bat文件,全部页面里的相对地址就会变成绝对地址了。
- <p></p>
- <p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/327111.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/327111.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">如果你的url链接是相对路径“static/mapi.css”,你想把他批量替换成绝对路径“http://dev.baidu.com/wiki/static/map/cloud/static/mapi.css”。那么,你可以...</span></p>