在做內容站時,經常會用到采集軟件在互聯網上大肆侵略別站的資源,一采集就是幾千篇的文章,采集之后,發現內容中有些原站點的超級鏈接,要是一個個去改的話,很麻煩,所以寫了個方法,測試成功。
簡單說一下原理,這里重利用的是 PHP 的替換函數 preg_replace,在實際應用中,我們經常使用 preg_replace 去替換一些危險字符或去轉換一些斜杠或回車等.
preg_replace($1,$2,$3) 有三個重要的參數,其中 $1 是要搜索的字符串,$2 是要替換成的字符串,$3 是要進行替換的字符串。
那么知道了 preg_replace 函數工作的原理,那么進行替換超鏈接就不難了,我們只需要將參數 $1 和 $2 轉換成數組,進行批量替換,以下是方法,測試成功,共享給 phper,代碼如下:
- <?php
- $str="<a href="xxx">超級鏈接</a>|<a href="xxx">這是個鏈接</a><br>";
- function removelink($str){
- $mode=array("#<a href="(.*)">#iUs","#</a>#iUs");
- $want=array("","");
- $con=preg_replace($mode,$want,$str);
- return $con;
- }
- echo removelink($str);
- ?>
或如下代碼:
- <?php
- $content = file_get_contents('test.html');
- $url = 'http://m.survivalescaperooms.com'; //要換成的新網址
- $preg = '/[s]href=("|')[S]*("|')/i';
- $replace = ' href="' . $url . '"';
- $content = preg_replace($preg, $replace, $content); //正則替換
- create_log('newhtml', $content); //生成新文件
- ?>
都是可以的.
新聞熱點
疑難解答