轉載出處:http://www.luanxin.top/index.php/archives/4/
仿站的時候扒下來的代碼a鏈接總是指向別的地方,要一個一個改的話都要累死了,展示的時候隨便點一下就亂跳,很煩,於是想用php寫一個能改變a鏈接href屬性的代碼,代碼如下:
<?php // 替換a標簽中的href屬性值
function a_replace_href($str) {
$preg = '/href=(\"|\')(.*?)(\"|\')/i';
$replacestr = 'href="#"';
$res = preg_replace($preg, $replacestr, $str);
return $res;
}
// 獲取字符串中的所有a標簽
function from_str_get_a($str){
$preg = '/<a .*?>/i';
preg_match_all($preg, $str, $imgArr);
return $imgArr[0];
}
$str = file_get_contents("index.html");
$data = from_str_get_a($str);//獲取字符串中的a標簽
$data1 = a_replace_href($data);//替換后應該顯示的a標簽
$res = $str;
// 反復對字符串進行查找替換
foreach ($data as $key => $value) {
$res = str_replace($value,$data1[$key],$res,$i);
}
// 另存文件
file_put_contents("index1.html",$res);
?>
原理就是采用正則匹配然后替換,如果你們有更好的想法或優化歡迎留言評論,分享一下您的心得!
測試效果如下:
源文件代碼:
替換后文件代碼: