电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

如何批量替换相对地址为绝对地址


发布日期:2018/5/23
 

如果你的url链接是相对路径“static/mapicss”你想把他批量替换成绝对路径“那么你可以这样做

写一个PHP文件把需要替换的网址写进去
这个代码的意思就是把#BASE_URL#替换成
这句话的意思是把resource文件里的内容替换一遍然后放到cloud文件夹里FileUtil::copyDir("resource""cloud"true);

复制代码 代码如下:
<?php
//需要替换的关键字
$GLOBALS["patterns"] = array(
"/#BASE_URL#/"
);
//替换后的内容和上面的匹配规则一一对应
$GLOBALS["replacements"] = array(
"
//"
//"
);
/**
* 操纵文件类
*
* 例子
* FileUtil::copyDir(bd/e); 测试复制文件夹 建立一个d/e文件夹把b文件夹下的内容复制进去
* FileUtil::copyFile(b///exeb/b/exe); 测试复制文件 建立一个b/b文件夹并把b//文件夹中的exe文件复制进去
* FileUtil::createDir(a///); 测试建立文件夹 建一个a///文件夹
* FileUtil::unlinkFile(b/d/exe); 测试删除文件 删除b/d/exe文件
*/
class FileUtil {
/**
* 建立文件夹
*
* @param string $aimUrl
* @return viod
*/
function createDir($aimUrl) {
$aimUrl = str_replace( / $aimUrl);
$aimDir = ;
$arr = explode(/ $aimUrl);
foreach ($arr as $str) {
$aimDir = $str /;
if (!file_exists($aimDir)) {
mkdir($aimDir);
}
}
}
/**
* 删除文件
*
* @param string $aimUrl
* @return boolean
*/
function unlinkFile($aimUrl) {
if (file_exists($aimUrl)) {
unlink($aimUrl);
return true;
} else {
return false;
}
}
/**
* 复制文件夹
*
* @param string $oldDir
* @param string $aimDir
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function copyDir($oldDir $aimDir $overWrite = false) {
$aimDir = str_replace( / $aimDir);
$aimDir = substr($aimDir ) == / ? $aimDir : $aimDir/;
$oldDir = str_replace( / $oldDir);
$oldDir = substr($oldDir ) == / ? $oldDir : $oldDir/;
if (!is_dir($oldDir)) {
return false;
}
if (!file_exists($aimDir)) {
FileUtil::createDir($aimDir);
}
$dirHandle = opendir($oldDir);
while(false !== ($file = readdir($dirHandle))) {
if ($file == || $file == ) {
continue;
}
if (!is_dir($oldDir $file)) {
FileUtil::copyFile($oldDir $file $aimDir $file $overWrite);
} else {
FileUtil::copyDir($oldDir $file $aimDir $file $overWrite);
}
}
return closedir($dirHandle);
}
/**
* 复制文件
*
* @param string $fileUrl
* @param string $aimUrl
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function copyFile($fileUrl $aimUrl $overWrite = false) {
if (!file_exists($fileUrl)) {
return false;
}
if (file_exists($aimUrl) && $overWrite == false) {
return false;
} elseif (file_exists($aimUrl) && $overWrite == true) {
FileUtil::unlinkFile($aimUrl);
}
$aimDir = dirname($aimUrl);
FileUtil::createDir($aimDir);
copy($fileUrl $aimUrl);
//替换变量
$apiFilePointer = fopen($aimUrl r);
$apiFileContent = fread($apiFilePointer filesize($aimUrl));
//只在jshtmlcss文件进行替换
if (preg_match(/(js|html|css|htm)$/ $aimUrl)) {
$apiFileContent = preg_replace($GLOBALS["patterns"] $GLOBALS["replacements"] $apiFileContent);
}
fclose($apiFilePointer);
echo $aimUrl"rn";
$apiFilePointer = fopen($aimUrl w+);
fwrite($apiFilePointer $apiFileContent);
fclose($apiFilePointer);
//替换变量
return true;
}
}
FileUtil::copyDir("resource""cloud"true);
?>


再写一个bat批处理文件来运行这个PHP
php releasephp
现在只需点击bat文件全部页面里的相对地址就会变成绝对地址了

上一篇:allow

下一篇:请离开include