<?php
/**
* 文本路径转换为有链接的文字
* @param string $str 转换内容
* @return string
*/
function urlToLink($str) {
$arr = array("www." => "http://www.");
$str = strtr($str, $arr);
$arr = array("http://http://" => "http://");
$str = strtr($str, $arr);
$str2 = explode("http://", $str);
for ($n = 1; isset($str2[$n]); $n ++) {
$str3 = explode(".", $str2[$n]);
if (isset($str3[1])) {
$str4 = explode("www.", $str2[$n]);
if ((isset($str4[1]) && isset($str3[2])) || !isset($str4[1])) {
$length = strlen($str2[$n]);
for ($i = 0; $i <= $length; $i ++) {
//从空格断开
if (($i - 1) == strlen(trim(mb_substr($str2[$n], 0, $i, 'gb2312')))) {
$ii = $i - 1;
$url1 = mb_substr($str2[$n], 0, $ii, 'gb2312');
$url2 = mb_substr($str2[$n], $ii, $length, 'gb2312');
$url3 = "<a href=\"http://" . $url1 . "\" target=\"_blank\">http://" . $url1 . "</a>" . $url2;
break;
} //从出现汉字处断开
if ($i != strlen(mb_substr($str2[$n], 0, $i, 'gb2312'))) {
$ii = $i - 1;
$url1 = mb_substr($str2[$n], 0, $ii, 'gb2312');
$url2 = mb_substr($str2[$n], $ii, $length, 'gb2312');
$url3 = "<a href=\"http://" . $url1 . "\" target=\"_blank\">http://" . $url1 . "</a>" . $url2;
break;
}
if ($i == $length)
$url3 = "<a href=\"http://" . $str2[$n] . "\" target=\"_blank\">http://" . $str2[$n] . "</a>";
}
} else
$url3 = "http://" . $str2[$n];
} else
$url3 = "http://" . $str2[$n];
$url .= $url3;
}
if (substr($str, 0, 7) == "http://")
$url = "<a href=\"http://$str2[0]\" target=\"_blank\">" . $str2[0] . "</a>" . $url;
else
$url = $str2[0] . $url;
return $url;
}
?>

PHP文本路径转换为链接文字的更多相关文章

  1. javaScript识别网址文本并转为链接文本

    最近项目有个需求:用户之间发送消息时,如果发送者输入的信息中含有网址文本,要在接受者界面中显示网址链接,点击该链接直接跳转到网页.这个功能和 QQ 发送网址文本的效果非常像,可以说是一模一样的. 思路 ...

  2. Javascript 将图片的绝对路径转换为base64编码

    Javascript将图片的绝对路径转换为base64编码 我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码:在这我们引用的是淘宝首页一张图片如下: var i ...

  3. Windows文件路径转换为java中可识别的文件路径的转义方法,(另附转义多种格式)

    ps:欢迎加qq好友:2318645572,交流学习 一:路径转化 Windows中的文件路径格式为 D:\eclipse\apache-tomcat-7.0.67\wtpwebapps\... Ja ...

  4. iOS开发富文本制作 图片和文字/NSMutableParagraphStyle/NSMutableAttributedString

    /NSMutableParagraphStyle/NSMutableAttributedString 组合使 NSString * titlestr=@"日产GT-R"; NSMu ...

  5. 将windows文本格式转换为UNIX格式

    将windows文本格式转换为UNIX格式 1.使用sed命令来进行转换,如下: sed -e ’s,^M,,g’ textfile 其中^M的输入方法是Ctrl+V, Ctrl+M 对于批量文件的处 ...

  6. 通过正则把文本里的链接加上a标签

    把文本里的链接替换成a标签 function addLinks($text) { return preg_replace('/(http[s]?:\/\/[A-Za-z0-9]+\.[A-Za-z0- ...

  7. Js 将图片的绝对路径转换为base64编码

    转.... 我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码:在这我们引用的是淘宝首页一张图片如下:  var img = "https://img. ...

  8. JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。

    内容选中事件(onselect) 选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行. 如下代码,当选中用户文本框内的文字时,触发onselect 事件, ...

  9. C# 设置Word文本框中的文字旋转方向

    在Word中可插入文本框,默认情况下插入的文本框中的文字方向为横向排列,对于一些特殊文档的设计要求,需要改变文字方向,如本次测试中的文档排版为考生试卷类型,考生信息栏的内容为下图中的这种, 本文将以C ...

随机推荐

  1. perl's Favorite Default: $_

    If you omit the control varibele from the beiginning of foreach loop, Perl uses its favrorite defaul ...

  2. [转]numpy性能优化

    转自:http://blog.csdn.net/pipisorry/article/details/39087583 http://blog.csdn.net/pipisorry/article/de ...

  3. 记JavaScript的入门学习(三)

    2016.12.6晚上十点半完成JavaScript的第二章学习,看了点第三章的开头总述,都说原生js每一个知识点都可以分分钟钟让你放弃,而我在努力探索着.月末的时候就回家放假了,希望在家也可以有个小 ...

  4. android app安全问题设置

    1.应用签名未校验风险:检测 App 程序启动时是否校验签名证书. 2.应用数据任意备份风险 Android 2.1 以上的系统可为 App 提供应用程序数据的备份和恢复功能,该 由 AndroidM ...

  5. HelloMyBLOG!!!

    还记得刚辞职的时候,心中满是无助.学习Java的期间让我慢慢重拾信心,带我走出最初的迷茫.如今我已不再是一个人,今后渐渐要开始挑起一个家庭甚至几个家庭的重担.现在也算是在异乡暂时站住了脚跟,虽然离我的 ...

  6. CodeForces 706E Working routine

    十字链表. 开一个十字链表,矩阵中每一格作为一个节点,记录五个量: $s[i].L$:$i$节点左边的节点编号 $s[i].R$:$i$节点右边的节点编号 $s[i].U$:$i$节点上面的节点编号 ...

  7. hibernate中的sql语句

    hibernate的hql查询语句总结   在这里通过定义了三个类,Special.Classroom.Student来做测试,Special与Classroom是一对多,Classroom与Stud ...

  8. Edward's Cola Plan

     Edward's Cola Plan Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu S ...

  9. 朗姆达表达式类似IN查询条件

    if (list.Contains("全部"))            {                model.All = true;            }        ...

  10. redis5--set的操作

    Set集合类型(1)介绍redis的set是string类型的无序集合set元素最大可以包含(2的32次方-1)个元素关于set集合类型除了基本的添加删除操作,其它有用的操作还包含集合的取并集(uni ...