给文本中的url加超级链接,同时滤过已加过链接的url

/**
 * 给文本中的url加超级链接,同时滤过已有链接的url
 * @param  string $str [description]
 * @return [type]      [description]
 */
function text2links($str=‘‘) {
    if($str==‘‘ or !preg_match(‘/(http|www\.|@)/i‘, $str)) return $str;

    $lines = explode("\n", $str);
    $new_text = ‘‘;
    while (list($k,$l) = each($lines)) {
        // replace links:
        $l = preg_replace("/([ \t]|^)www\./i", "\\1http://www.", $l);
        $l = preg_replace("/([ \t]|^)ftp\./i", "\\1ftp://ftp.", $l);
        $l = preg_replace("/([^=\‘\"]http:\/\/[^ )!]+)/i","<a href=\"\\1\">\\1</a>", $l);
        $l = preg_replace("/([^=\‘\"]https:\/\/[^ )!]+)/i","<a href=\"\\1\">\\1</a>", $l);
        $l = preg_replace("/(ftp:\/\/[^ )!]+)/i","<a href=\"\\1\">\\1</a>", $l);
        $l = preg_replace("/([-a-z0-9_]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)+))/i","<a href=\"mailto:\\1\">\\1</a>", $l);
        $new_text .= $l."\n";
    }
    return $new_text;
}
$text = "open: http://www.baidu.com/ and <a href=‘http://www.baidu.com‘>hehe</a>";
var_dump(text2links($text));

输出结果:

string(109) "open:<a href=" http://www.baidu.com/"> http://www.baidu.com/</a> and <a href=‘http://www.baidu.com‘>hehe</a>"
时间: 2024-12-22 16:18:49

给文本中的url加超级链接,同时滤过已加过链接的url的相关文章

javascript异步延时加载及判断是否已加载js/css文件

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名: 例如: int a int &b=a; //定义引用b,它是变量a的引用,即别名 #include <stdio.h> void main() { int a = 123; int &b = a; printf("a=%d b=%d\n", a, b); } 执行结果: 实例:引用和变量的关系 #include <io

PHP实现把文本中的URL转换为链接的auolink()

转载:http://www.jb51.net/article/52916.htm 其实我在<把文本中的URL地址转换为可点击链接的JavaScript.PHP自定义函数>一文中介绍过PHP代码如何实现将URL地址转化成链接的方法,今天给大家介绍一个更加简洁的版本,先来看看PHP的源代码: /** * Author: SeeDZ * From: http://code.seebz.net/p/autolink-php/ **/ function autolink($str, $attribute

Linux Shell编程实战---解析文本中的邮件地址和url

解析文本中的邮件地址和url (1).使用场景 从给定的文件中解析出所需要的文本是从事文本处理时常见的一项任务.诸如电子邮件地址.URL等都能够借助适合的正则表达式找出来.我们通常需要从一个包含大量无关字符及单词的电子邮件客户列表或HTML网页中将电子邮件地址解析并提取出来. (2).正则匹配 匹配一个电子邮件地址的正则表达式如下: [A-Za-z0-9._][email protected][A-Za-z0-9.]+\.[a-zA-Z]{2,4} 匹配HTTP URL的正则表达式如下: htt

如何使用JS脚本从HTML中分离图片标签与文本,替换文本中指定的内容并加粗(原创)

var html='ddfsdfsdfdsd dfsdfsdffds<img _src="http://localhost:8490/60E86EA7-FE7B-44BF-8270-4DF2036B2118.PNG" data-latex="x=\frac {-b\pm \sqrt {{b}^{2}-4ac}} {2a}" src="http://localhost:8490/60E86EA7-FE7B-44BF-8270-4DF2036B2118.

JS批量替换内容中关键词为超链接,避开已存在的链接和alt、title中的关键词

懂点seo的人都知道要给内容中关键词加上链接,形成站内锚文本链接,这对seo有很大的帮助. 思路就是在数据库中录入若干个关键词和关键词对应的链接,当然链接可以根据关键词的id自动生成,或者直接用关键词作为链接参数,如?tag=1.?kw=关键词. 这个问题不是简单的一个批量replace那么简单,要考虑到已经存在的超链接,不能将里面的文字再次替换为超链接,还有就是图片的alt属性,或者其他标签的title属性,里面的文字也不该被替换. 见下面的HTML代码: [<a href="http:

Android检测富文本中的&lt;img标签并实现点击效果

本文旨在:通过点击一张图片Toast输出位置与url链接. 闲话少说,实现原理大概是酱紫的::通过正则表达式检测富文本内的图片集合并获取url,在src=“xxx” 后面添加 onclick方法,至于js如何load进去本人是自己拼接了一个html标签的上下文 js调用java方法请自行搜索不在本文讨论范围. public class HtmlUtils { /** * 获取html中的所有图片 * @param compatText * @return */ public static Lis

Atitit.实现反向代理(1)----url rewrite 配置and内容改写 and -绝对路径链接改写 java php

Atitit.实现反向代理(1)----url rewrite  配置and内容改写 and -绝对路径链接改写 java php 1. 代理的实现:::普通代理and反向代理?? 1 2. url rewrite 的框架选型 1 3. ---------反向代理rewrite 配置mode_rewrite 1 1. Java的实现 2 4. 排除自身(apache_mode_rewrite) 2 2. Java的实现 排除自身 2 5. 内容改写(php mode_rwt) 3 3. Java

Hadoop-2.2.0中文文档—— Common - 超级用户模拟别的用户

pcDuino3下支持mmc启动,官方的Uboot是采用SPL框架实现的,因为内部的SRAM空间达到32K,我们完全可以在这32K空间内编写一个完整可用小巧的bootloader来完成引导Linux kernel的目的. 我们首先介绍下SPL框架,可以先看下<GNU ARM汇编--(十八)u-boot-采用nand_spl方式的启动方法>和<GNU ARM汇编--(十九)u-boot-nand-spl启动过程分析>,NAND_SPL也算是SPL框架下的一种模式. 当使用Nand f

【实验总结二】如何从文本中批量导入数据

前言:我的mysql装的时候没有配置导入数据,所以贸然导入会报错,我可是为那个错误纠结了好久,现在和朋友们分享一下我实验中遇到的坑: mysql --enable-local-infile -u root -p (这一句一定要写,如果网上的方法你都试了一遍仍说和version不兼容的话,一定要试一试这一句). LOAD DATA local INFILE '完整路径' INTO table: 大功告成咯,注意文本中条目之间tab隔开(一个tab就好,忽略对齐问题,要和表的结构对应哦,还有一点,表