php正则替换非站内链接 替换zencart描述内的非本站链接
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描述内的非本站链接的更多相关文章
- PHP实现删除非站内外部链接实例代码
/** * 删除非站内链接 * * @access public * @param string $body 内容 * @param array $allow_urls ...
- onkeyup的使用(将输入值为非数字的字符替换为空)
onkeyup:当输入值的键盘抬起时触发这个事件. 例如: onkeyup="this.value=this.value.replace(/\D/g,'') 这是个正则式验证,用来验证输入值 ...
- phpstorm webstorm编辑器正则替换 类名,方法名替换
首先勾选Match Case 和 Regex 正则规则:无须添加//左右分解符,直接写正则表达式,注意应该转义的部分,需要原封不动替换的部分加上括号 替换规则:正常书写正则,要继承下来的字符使用$1. ...
- JS利用正则配合replace()函数替换指定字符
定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp,replacement) ...
- 使用Nginx反向代理和内容替换模块实现网页内容动态替换功能
2016年11月21日 10:30:00 xian_02 阅读数:10943 Nginx是一款轻量级高性能服务器软件,虽然轻量,但功能非常强大,可用于提供WEB服务.反向代理.负载均衡.缓存服务. ...
- sed 's/AA/BB/' file # 将文件中的AA替换成BB,只替换一行中第一次出现的AA,替换后的结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中的所有AA都替换成BB,替换后的结果输出到屏幕
生信人的自我修养:Linux命令速查手册 简佐义 四川大学 生物信息学硕士 科学求真 赢 10 万奖金 · 院士面对面 209 人赞同了该文章 许多人做生物信息学,要么不重视Linux,要么不知道 ...
- java.lang.String中的replace方法到底替换了一个还是全部替换了。
你没有看错我说的就是那个最常用的java.lang.String,String可以说在Java中使用量最广泛的类了. 但是我却发现我弄错了他的一个API(也可以说是两个API),这个API是关于字符串 ...
- 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 ...
- Unity苹果(iOS)内购接入(Unity内置IAP)
https://www.jianshu.com/p/4045ebf81a1c Unity苹果(iOS)内购接入(Unity内置IAP) Kakarottog ...
随机推荐
- BeanDefinition 实例
BeanDefinition BeanDefinition /** * BeanDefinition 用于描述一个 bean 实例,包括属性值.构造参数和补充信息. */ public interfa ...
- 关于在IDEA中使用maven projects 的Lifecycle中打包package报expected START_TAG or END_TAG not TEXT
报错指定到maven本地仓库下的settings.xml某一行,如下列JDK配置: <profiles> <profile> <id>jdk-1.8</ ...
- PHP加速器eAccelerator安装
程序说明 eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对 服务器的开销几乎为零. 它还有对脚本起优化作用,以加 ...
- docker容器和宿主机之间复制文件
https://blog.csdn.net/u012416928/article/details/55049063 https://blog.csdn.net/u011596455/article/d ...
- 【Java基础】构造方法 static 块 {}块 执行顺序
package com.test.innerclass; public class HelloB extends HelloA { public HelloB() { System.out.print ...
- [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 ...
- java:struts框架2(方法的动态和静态调用,获取Servlet API三种方式(推荐IOC(控制反转)),拦截器,静态代理和动态代理(Spring AOP))
1.方法的静态和动态调用: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...
- java:Oracle(Jdbc的封装)和HTML(登录,注册,个人信息界面)
1.Oracle Jdbc的封装: public class TestJdbc { // 把jdbc需要的属性,全部私有化 private static final String DRIVER = & ...
- centos7 系統vps安裝mysql5.6及設置本地遠程連接筆記
用xshell連接上vps 1,下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm su ...
- Anko
先mark一下. https://www.jianshu.com/p/4a3ca2c315f2