在php中我們經常會需要把字符串中的超級鏈接地址與url給過濾掉,下面我來利用php正則功能實現替換掉網頁中所有超鏈接與url實例.
正則替換掉網頁中所有超鏈接,代碼如下:
- <?php
- $content = file_get_contents('test.html');
- $url = 'http://www.companysz.com'; //要換成的新網址
- $preg = '/[s]href=("|')[S]*("|')/i';
- $replace = ' href="' . $url . '"';
- $content = preg_replace($preg, $replace, $content); //正則替換
- create_log('newhtml', $content); //生成新文件
- ?>
下面是寫文件操作,代碼如下:
- function create_log($filename, $text) {
- if ( strtolower(substr($filename, -4)) != 'html' ){
- $filename .= '.html';
- }
- $filename = dirname ( __FILE__ ) . '/' . $filename;
- if (!file_exists ( $filename )) {
- exec( 'touch '. $filename);
- exec( 'chmod 777 '. $filename);
- }
- $handle = fopen ( $filename, "w+b" );
- $text .= "rn";
- fwrite($handle, $text);
- fclose ( $handle );
- }
下面一個簡單的采集功能,代碼如下:
- $url ='http://www.companysz.com';
- $body=@file_get_contents($url);
- preg_match_all('/href=['"]?([^'"]*)['"]?>(.*)/i',$body,$b);
- $nums = array();
- foreach($b[1] as $u){
- if(in_array($u,$nums)){
- continue;
- }
- $nums[]=$u;
- $title=strip_tags($u);
- echo $title."</br>";
- }
新聞熱點
疑難解答