zoukankan      html  css  js  c++  java
  • 清除超链接,但保留文字

    用到的函数有

    preg_match_all($pattern,$content,$match);

    preg_replace($pattern,$replacement,$content,$limit,$count)

    思路:

    (1)提取超链接部分。

    (2)将超链接部分用不不带超链接的文字部分替换。

    难点:正则表达式

    匹配超链接的正则表达式

    $pattern = '/<a.*?href=".*?".*?>(.*?)<\/a>/';

    或者

    $pattern = '/<a[^>]*>([^<]*)<\/a>/';

    上面两种正则表达式都不能匹配一些网页中的全部超链接,原因是什么,我没有分析,不知道。

    代码如下:

     1 <?php
     2 /*
     3     preg_relace()
     4     清除网页中的超链接,但是保留文字,思路:找出所有的超链接;将超链接用无超链接的文字代替
     5 */
     6 $content = file_get_contents('http://www.hao123.com');
     7 
     8 $result = strip_link($content);
     9 echo $result;
    10 function strip_link($content)    //清除文本中的超链接
    11 {
    12     /*
    13     $pattern = '/<a.*?href=".*?".*?>(.*?)<\/a>/';
    14     */
    15     $pattern = '/<a([^>]*)>([^<]*)<\/a>/';
    16     preg_match_all($pattern,$content,$match);
    17     $result = $content;
    18     foreach( $match[2] as $value )
    19     {
    20         $result = preg_replace($pattern,$value,$result,1);
    21     }
    22     return $result;
    23 }
  • 相关阅读:
    pyzabbix 接口使用
    lvs使用进阶
    lvs基础
    linux服务基础之nginx配置详解
    linux服务基础之编译安装nginx
    iptables (二) nat & tcp_wrapper
    iptables (一) 主机防火墙和网络防火墙
    rsyslog及loganalyzer
    linux基础之Mini Linux制作
    linux基础之磁盘管理与文件系统
  • 原文地址:https://www.cnblogs.com/chuganghong/p/3062563.html
Copyright © 2011-2022 走看看