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;
?>
时间: 2024-11-07 17:19:35

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

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

/** *  删除非站内链接 * * @access    public * @param     string  $body  内容 * @param     array  $allow_urls  允许的超链接 * @return    string */function Replace_Links( &$body, $allow_urls=array()  ){    $host_rule = join('|', $allow_urls);    $host_rule = preg_rep

替换字符串括号外的所有特殊字符(括号内的不能替换)

eg:用-替-换字符串里的特殊字符,并进行切分(括号里的不能替换) String roads = "G6包头...?九原收费站((这个是..--..?测试)——210国道——幸福南路(备注:车.货.路线不变,往-返)——210国道(((aa)——210国道(这样呢)"; 一.思路:1.找到括号的区间范围 2.判断匹配内容是否在括号区间内,若在,不替换,若不在,替换 3.使用StringBuffer的替换,并且保证替换之前和替换之后的长度一致 4.若在括号内的,有特殊字符-的话,替换成*

块级元素,行内(内联)元素和行内块元素分别有哪些, 另外什么是替换元素和费替换元素

参考替换元素和非替换元素: https://www.cnblogs.com/lixiaodou/p/7150624.html   块级元素.行内(内联)元素和行内块元素 块状元素 块状元素代表性的就是<div>,其他如<p>.<nav>.<aside>.<header>.<footer>.<center>.<section>.<article>.<ui>.<li>.<o

sed 使用扩展正则式的分组功能进行替换

以下命令使用sed的扩展正则式的分组功能进行替换,-r参数启用扩展正则式支持 sed -r -i 's/(PASS_MAX_DAYS)\s+([0-9]+)/\1 90/' /etc/login.defs 这条命令将/etc/login.defs文件的行 PASS_MAX_DAYS 99999 替换为 PASS_MAX_DAYS 90 以下正则式支持分组功能,()表示一个分组 (PASS_MAX_DAYS)\s+([0-9]+) 将PASS_MAX_DAYS放在分组1中,[0-9]+匹配任意多个

C# 二进制替换第一弹 byte 数组替换

Unity 3D本地发布WebPlayer版时遇到提示:"Failed to download data file"(如上图),遇到这个问题就是指Web服务器并没有支持这种*.unity3d文件类型.需要做的是在Web服务器中添加MIME类型: 1.IIS 7 及以上版本: 在功能视图的IIS选项卡中: 双击打开MIME,选择"添加": .unity3d application/octet-stream 2.IIS6版本: 右击计算机名,选择属性,找到MIME类型,

mingw qt(可以去掉mingwm10.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll的依赖,官方的mingw默认都是动态链接gcc的库而TDM是静态链接gcc库,tdm版本更好用)

原文地址:mingw qt作者:孙1东 不使用Qt SDK,使用mingw编译qt源代码所遇问题及解决方法: configure -fast -release -no-exceptions -no-rtti -no-stl -no-qt3support -no-opengl -no-multimedia -no-webkit -no-script -no-scripttools -nomake tools -nomake examples -nomake demos -nomake docs -

内联元素和行内元素的区别和理解

转载:http://hi.baidu.com/dingo826/blog/item/f69884f44f5394def3d38578.html 块对象默认宽度是100%(继承自父元素),如果没有采用“float:left/right;”样式,相邻的两个块对象就会分排在不同的两行上. 内联对象的宽度取决于其内部元素的宽度与padding样式值之和,不可直接指定其宽度与高度(“display:block;”.“float:left/right;”强行转换后可以定义),相邻的两个内联对象会排在同一行上

短链接是什么,为什么要用短链接?

短链接是什么? 短链接也叫短网址,即URL shortener,是对原来冗长url的一种"化妆"和"包装" 短链接是什么,为什么要用短链接?在保证跨境电商独立站目标网页不变的前提下,使url显示的更简短美观,或者使品牌信息更为突出. 一般而言,使用短链接的优势有以下几点: 1.易于阅读,看起来整洁干净,提高用户体验和点击率,利于复制粘贴. 比如 https://mp.weixin.qq.com/s?__biz=MzA5NDI5NDI3Nw==&mid=264

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和. 您可以假设除了数字 0 之外,这两个数都不会以 0 开头. 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807 来源:力扣(LeetCode)链接:https://leetcode-c