php正则替换非站内链接

<?php
//要替换的文本,比如产品描述中的文字
header("content-Type: text/html; charset=utf-8");
$content = '
<li><a href="http://afish.cnblogs.com" target="_blank">小鱼阁</a></li>
<li><a href="http://afish.cnblogs.com" target="_blank">小鱼阁</a></li>
<li><a href="http://afish.cnblogs.com" target="_blank">小鱼阁</a></li>
<li><a href="http://www.baidu.com" target="_blank">百度</a></li>
<li><a href="http://www.baidu.com" target="_blank">百度</a></li>
<li><a href="http://www.baidu.com" target="_blank">百度</a></li>
<li><a href="http://www.soso.com" target="_blank">搜搜</a></li>
<li><a href="http://www.soso.com" target="_blank">搜搜</a></li>
<li><a href="http://www.soso.com" target="_blank">搜搜</a></li>
'; //本站域名
$host_url = str_replace(".", "\.", str_replace("www.", "", $_SERVER['HTTP_HOST']));
//echo $host_url; //替换正则
$pattern = '/<[^>]*href=[\'\"]http?:\/\/(?!'.str_replace("http://","",$host_url).'|'.str_replace("http://www.","",$host_url).'|[\w\_]+\.'.str_replace("http://www.","",$host_url).')[^\'^\"]*[\'\"][^>]*>(.+?)<\/a>/is';
//替换成的内容
//$replace = '<a href="http://'.$_SERVER['HTTP_HOST'].'" target="_blank">$1</a>';
$replace = '<a href="http://'.$_SERVER['HTTP_HOST'].'" target="_blank">本站链接</a>';
//进行替换
$content = preg_replace($pattern, $replace, $content);
//输出替换后的内容
echo $content;
?>

php正则替换非站内链接 替换zencart描述内的非本站链接的更多相关文章

  1. PHP实现删除非站内外部链接实例代码

    /** *  删除非站内链接 * * @access    public * @param     string  $body  内容 * @param     array  $allow_urls  ...

  2. onkeyup的使用(将输入值为非数字的字符替换为空)

    onkeyup:当输入值的键盘抬起时触发这个事件. 例如: onkeyup="this.value=this.value.replace(/\D/g,'') 这是个正则式验证,用来验证输入值 ...

  3. phpstorm webstorm编辑器正则替换 类名,方法名替换

    首先勾选Match Case 和 Regex 正则规则:无须添加//左右分解符,直接写正则表达式,注意应该转义的部分,需要原封不动替换的部分加上括号 替换规则:正常书写正则,要继承下来的字符使用$1. ...

  4. JS利用正则配合replace()函数替换指定字符

    定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp,replacement) ...

  5. 使用Nginx反向代理和内容替换模块实现网页内容动态替换功能

    2016年11月21日 10:30:00 xian_02 阅读数:10943   Nginx是一款轻量级高性能服务器软件,虽然轻量,但功能非常强大,可用于提供WEB服务.反向代理.负载均衡.缓存服务. ...

  6. sed 's/AA/BB/' file # 将文件中的AA替换成BB,只替换一行中第一次出现的AA,替换后的结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中的所有AA都替换成BB,替换后的结果输出到屏幕

    生信人的自我修养:Linux命令速查手册 简佐义 ​ 四川大学 生物信息学硕士 科学求真 赢 10 万奖金 · 院士面对面 209 人赞同了该文章 许多人做生物信息学,要么不重视Linux,要么不知道 ...

  7. java.lang.String中的replace方法到底替换了一个还是全部替换了。

    你没有看错我说的就是那个最常用的java.lang.String,String可以说在Java中使用量最广泛的类了. 但是我却发现我弄错了他的一个API(也可以说是两个API),这个API是关于字符串 ...

  8. mingw qt(可以去掉mingwm10.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll的依赖,mingw默认都是动态链接gcc的库而TDM是静态链接gcc库,tdm版本更好用。用aspack压缩没有问题。qt本身不使用异常处理)good

    原文地址:mingw qt作者:孙1东 不使用Qt SDK,使用mingw编译qt源代码所遇问题及解决方法: configure -fast -release -no-exceptions -no-r ...

  9. Unity苹果(iOS)内购接入(Unity内置IAP)

    https://www.jianshu.com/p/4045ebf81a1c Unity苹果(iOS)内购接入(Unity内置IAP) Kakarottog                       ...

随机推荐

  1. BeanDefinition 实例

    BeanDefinition BeanDefinition /** * BeanDefinition 用于描述一个 bean 实例,包括属性值.构造参数和补充信息. */ public interfa ...

  2. 关于在IDEA中使用maven projects 的Lifecycle中打包package报expected START_TAG or END_TAG not TEXT

    报错指定到maven本地仓库下的settings.xml某一行,如下列JDK配置: <profiles> <profile>    <id>jdk-1.8</ ...

  3. PHP加速器eAccelerator安装

    程序说明 eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对 服务器的开销几乎为零. 它还有对脚本起优化作用,以加 ...

  4. docker容器和宿主机之间复制文件

    https://blog.csdn.net/u012416928/article/details/55049063 https://blog.csdn.net/u011596455/article/d ...

  5. 【Java基础】构造方法 static 块 {}块 执行顺序

    package com.test.innerclass; public class HelloB extends HelloA { public HelloB() { System.out.print ...

  6. [Amazon] Program for Fibonacci numbers 斐波那契数列

    The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21 ...

  7. java:struts框架2(方法的动态和静态调用,获取Servlet API三种方式(推荐IOC(控制反转)),拦截器,静态代理和动态代理(Spring AOP))

    1.方法的静态和动态调用: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...

  8. java:Oracle(Jdbc的封装)和HTML(登录,注册,个人信息界面)

    1.Oracle Jdbc的封装: public class TestJdbc { // 把jdbc需要的属性,全部私有化 private static final String DRIVER = & ...

  9. centos7 系統vps安裝mysql5.6及設置本地遠程連接筆記

    用xshell連接上vps 1,下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm su ...

  10. Anko

    先mark一下. https://www.jianshu.com/p/4a3ca2c315f2