我要实现的功能是 可以多个正则来实现:
最主要的是 发帖的时候 过滤掉 a标签下内 别的网站的域名直接替换成空.(如果是本自己网站的链接 就不过滤了,就是要排除本站).
同时需要实现以下功能(可以多次正则实现):
1.替换 a标签下的 title 里的内容为空.
2.替换 a标签下的 alt 里的内容为空 同上.
3.替换把所有的< img /> 标签(图片标签) 外层加一个a标签谢谢

解决方案 »

  1.   

    其实就是 复制别人的帖子到自己网站的时候过滤一下
    用PHP.
      

  2.   

    3.替换把所有的< img /> 标签(图片标签) 外层加一个a标签
    href 是什么?
      

  3.   

    我采用了 一个暗箱放大图片的特效,需要在img 外层套上一个 a 标签, href 可以为 javascript:void(0). 谢谢版主的关注! 正则是在玩不转,累死不行.
      

  4.   

    比如套的 a 标签 . <a href="javascript:void(0)" class="fangda" ><img /></a>
      

  5.   

    $s= preg_replace('/(<a[^>]*title=")(.*?)("[^>]*>)/is','$1$3',$s);  //替换title$s= preg_replace('/(<a[^>]*alt=")(.*?)("[^>]*>)/is','$1$3',$s);   //替换alt
    $s= preg_replace('/<img[^>]*>/is','<a href="javascript:void(0)">\0</a>',$s);   //给图片加链接
      

  6.   

    例如本网站 $www = 'www.xxx.com';
      

  7.   

    比如 
    我的网站叫 www.a.com
    我复制过来的原来的内容: 
    <a href="http://www.ddd.com">你好</a>
    发帖的时候在一个地方加了本站的链接 <a href="http://www.a.com">你也好</a>最后页面的代码是:
    <a href="http://www.ddd.com">你好</a>
    <a href="http://www.a.com">你也好</a>这时候 我需要的是 把不是 www.a.com的 去掉,最后需要变成:
    <a href="javascript:void(0)">你好</a>
    <a href="http://www.a.com">你也好</a>就是说 我自己网站的内部链接 不替换了.外部的全部变成空的.
      

  8.   

    外部链接中:
    <a href="http://www.ddd.com">你好</a>  也有可能是: 
    <a href="http://www.ddd.com" title="你好网欢迎你" alt="点击进入你好网" >你好</a>如果能一次性的把  其他网站的 href 替换成javascript:void(0) ,title alt 为空(title=""  alt="" )那更好,不能的话 就分三次替换了.
      

  9.   

    $url='www.a.com';
    $s=preg_replace('/(<a\s*href=)"http:\/\/(?!'.$url.')(.+?)"/is','$1"javascript:void(0)"',$s);这个放在第一。
      

  10.   

    你这样就有点复杂了。
    a 标签中 不一定使用 http://
    如果 只是放置 .  aa.com  aa.cn aa.org 等等。
    你要判断好长了呢!
      

  11.   

    处理这种最好是用 自己特定的 <a> 标签使用。  例如 <-a-> 自己转换为 <a> 存储。
    如果放入的是 <a> 的话就 直接去掉。
      

  12.   

    好像有问题:
    比如:
    <a href="http://niaolei.org.cn/posts/38845"> 可以正常替换成 <a href="javascript:void(0)">
    但是 如: <a target="_blank" rel="book" href="http://niaolei.org.cn/posts/38845" title="点击查看 电影《守卫者传奇》中的猫头鹰知识大梳理"> 这样的 a和href 有东西的不行. 或者直接 不是本站的 a标签 全部删除:
    <a target="_blank" rel="book" href="http://niaolei.org.cn/posts/38845" title="点击查看 电影《守卫者传奇》中的猫头鹰知识大梳理"><span>点击</span></a> 
    替换成: <span>点击</span>
      

  13.   

    直接删除非本站的a标签 这样就不用再去替换什么title 和alt 了
      

  14.   

    早说嘛。何必绕这么大的弯呢
    $s=preg_replace('/<a[^>]*href="http:\/\/(?!'.$url.').+?"[^>]*>(.*?)<\/a>/is','$1',$s);
      

  15.   

    $s = <<< TXT
    最后页面的代码是:
    <a href="http://www.ddd.com">你好</a>
    <a href="http://www.a.com">你也好</a>
    TXT;echo preg_replace_callback('#<a.+>(.+)</a>#isU', 'back', $s);function back($r) {
      $myhost = 'http://www.a.com';
      if(strstr($r[0], $myhost)) return $r[0];
      return "<a href='javascript:void(0)'>$r[1]</a>";
    }图片的处理与此类似
    你最好弄个比较全面的测试数据,这样才好调试程序
      

  16.   

    我这测试了 
    jordan102 帅哥的 可以的.
    就是现在还要麻烦下:$s= preg_replace('/<img[^>]*>/is','<a href="javascript:void(0)">\0</a>',$s); //给图片加链接
    这个 我看了下,还有个新需求.就是 以前的 javascript:void(0) 换成 img 里面的 src例如 :
    <img src="www.gg.com/gg.jpg" />
    变成: <a href="www.gg.com/gg.jpg" ><img src="www.gg.com/gg.jpg" /></a>
      

  17.   

    $s= preg_replace('/<img[^>]*src="(.*?)"[^>]*>/is','<a href="$1">\0</a>',$s);
      

  18.   

    $s = <<< TXT
    最后页面的代码是:
    <a href="http://www.ddd.com">你好</a>
    <a href="http://www.a.com">你也好</a>
    <img src="www.gg.com/gg.jpg" />
    TXT;echo preg_replace_callback('#<a.+>(.+)</a>|(<img.+src=.*([^\'"]+?).*>)#isU', 'back', $s);function back($r) {
      if(count($r) == 4) return "<a href='$r[3]' >$r[0]</a>";
      $myhost = 'http://www.a.com';
      if(strstr($r[0], $myhost)) return $r[0];
      return "<a href='javascript:void(0)'>$r[1]</a>";
    }最后页面的代码是:
    <a href='javascript:void(0)'>你好</a>
    <a href="http://www.a.com">你也好</a>
    <a href='www.gg.com/gg.jpg' ><img src="www.gg.com/gg.jpg" /></a>
    简单的例子是很容易做的,复杂的情况下就不一定了
    要尽可能多的测试
      

  19.   

    $s = <<< TXT
    最后页面的代码是:
    <a href="http://www.ddd.com">你好</a>
    <a href="http://www.a.com">你也好</a>
    <img src="www.gg.com/gg.jpg" />
    TXT;echo preg_replace_callback('#<a.+>(.+)</a>|(<img.+src=.*([^\'"]+?).*>)#isU', 'back', $s);function back($r) {
      if(count($r) == 4) return "<a href='$r[3]' >$r[0]</a>";
      $myhost = 'http://www.a.com';
      if(strstr($r[0], $myhost)) return $r[0];
      return "<a href='javascript:void(0)'>$r[1]</a>";
    }
     最后页面的代码是:
    <a href='javascript:void(0)'>你好</a>
    <a href="http://www.a.com">你也好</a>
    <a href='www.gg.com/gg.jpg' ><img src="www.gg.com/gg.jpg" /></a>这个可以哟