即将红色标记的内容提取出来添加A标签,这是第二个A标签
分类:热门新闻

前面介绍过js把文本链接转换成A标签,现在看一个php的方法,这个是在 Silva 代码的基础上修改的,如果有不完善的地方大家可提出来。

需要提取的内容如下:

需要提取的内容如下:

需要提取的内容如下:

<a href="
<a href="


<img border="0" alt="" src="

复制代码 代码如下:
这是第一个A标签,
成长脚印-专注于互联网发展这是第二个A标签。


图片 1,这是一个IMG标签

a href=这是第一个A标签,a href=成长脚印-专注于互联网发展/a这是第二个A标签。这是第一个需要被提取的URL地址,这是第二个需要被提取的URL地址'。img border=0 alt= src=_zh-cn.gif,这是一个IMG标签

类似微博中的自动提取URL为超链接地址。即将红色标记的内容提取出来添加A标签,转换成真正的超链接。网上搜索了很久,没有找到一个切实可行的解决方案。大都只是简单的提取URL(A标签和IMG标签内的地址也被提取替换了),并不能满足以上需求。正则表达式中也没发现能够实现提取时过滤掉A标签的方法。于是转换了一下思路,“曲线救国”。即,先将所有的A标签和IMG标签正则替换为某一个统一的标记,然后再提取URL地址替换为超链接,最后再将统一的标记还原替换为以前的A标签和IMG标签便解决了。

类似微博中的自动提取URL为超链接地址。即内容提取出来添加A标签,转换成真正的超链接。网上搜索了很久,没有找到一个切实可行的解决方案。大都只是简单的提取URL(A标签和IMG标签内的地址也被提取替换了),并不能满足以上需求。正则表达式中也没发现能够实现提取时过滤掉A标签的方法。于是转换了一下思路,“曲线救国”。即,先将所有的A标签和IMG标签正则替换为某一个统一的标记,然后再提取URL地址替换为超链接,最后再将统一的标记还原替换为以前的A标签和IMG标签便解决了。

类似微博中的自动提取URL为超链接地址。即将红色标记的内容提取出来添加A标签,转换成真正的超链接。网上搜索了很久,没有找到一个切实可行的解决方案。大都只是简单的提取URL,并不能满足以上需求。正则表达式中也没发现能够实现提取时过滤掉A标签的方法。于是转换了一下思路,曲线救国。即,先将所有的A标签和IMG标签正则替换为某一个统一的标记,然后再提取URL地址替换为超链接,最后再将统一的标记还原替换为以前的A标签和IMG标签便解决了。

 代码如下

复制代码 代码如下:
function linkAdd($content){
 //提取替换出所有A标签(统一标记)
 preg_match_all('/.*?/i',$content,$linkList);
 $linkList=$linkList[0];
 $str=preg_replace('/.*?/i','',$content);

代码如下复制代码

function linkAdd($content){
 //提取替换出所有A标签(统一标记<{link}>)
 preg_match_all('/<a.*?href=".*?".*?>.*?</a>/i',$content,$linkList);
 $linkList=$linkList[0];
 $str=preg_replace('/<a.*?href=".*?".*?>.*?</a>/i','<{link}>',$content);

 //提取替换出所有的IMG标签(统一标记)
 preg_match_all('/]+>/im',$content,$imgList);
 $imgList=$imgList[0];
 $str=preg_replace('/]+>/im','',$str);

function linkAdd($content){//提取替换出所有A标签preg_match_all('/a.*?href=.*?.*?.*?/a/i',$content,$linkList);$linkList=$linkList[0];$str=preg_replace('/a.*?href=.*?.*?.*?/a/i','{link}',$content);

 //提取替换出所有的IMG标签(统一标记<{img}>)
 preg_match_all('/<img[^>]+>/im',$content,$imgList);
 $imgList=$imgList[0];
 $str=preg_replace('/<img[^>]+>/im','<{img}>',$str);
 
 //提取替换标准的URL地址
 $str=preg_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_/+.~#?&//=]+)','<a href="" target="_blank"></a>',$str);
 
 //还原A统一标记为原来的A标签
 $arrLen=count($linkList);
 for($i=0;$i<$arrLen;$i++){
  $str=preg_replace('/<{link}>/',$linkList[$i],$str,1);
 }
 
 //还原IMG统一标记为原来的IMG标签
 $arrLen2=count($imgList);
 for($i=0;$i<$arrLen2;$i++){
  $str=preg_replace('/<{img}>/',$imgList[$i],$str,1);
 }
 
 return $str;
}

 //提取替换标准的URL地址
 $str=preg_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_/+.~#?&//=]+)','',$str);

//提取替换出所有的IMG标签preg_match_all('/img[^]+/im',$content,$imgList);$imgList=$imgList[0];$str=preg_replace('/img[^]+/im','{img}',$str);//提取替换标准的URL地址$str=preg_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_/+.~#?//=]+)','a href=/0 target=_blank/0/a',$str);//还原A统一标记为原来的A标签$arrLen=count($linkList);for($i=0;$i$arrLen;$i++){$str=preg_replace('/{link}/',$linkList[$i],$str,1); }//还原IMG统一标记为原来的IMG标签$arrLen2=count($imgList);for($i=0;$i$arrLen2;$i++){$str=preg_replace('/{img}/',$imgList[$i],$str,1); }return $str;}

$content='
<a href="
<a href="


<img border="0" alt="" src="';
echo linkAdd($content);

 //还原A统一标记为原来的A标签
 $arrLen=count($linkList);
 for($i=0;$i  $str=preg_replace('//',$linkList[$i],$str,1);
 }

$content='a href=这是第一个A标签,a href=成长脚印-专注于互联网发展/a这是第二个A标签。这是第一个需要被提取的URL地址,这是第二个需要被提取的URL地址。img border=0 alt= src=_zh-cn.gif,这是一个IMG标签';echo linkAdd($content);

返回的内容为:

 //还原IMG统一标记为原来的IMG标签
 $arrLen2=count($imgList);
 for($i=0;$i  $str=preg_replace('//',$imgList[$i],$str,1);
 }

返回的内容为:

<a href=" <a href=" <a href="" target="_blank"> <a href="" target="_blank">
<img border="0" alt="" src="

 return $str;
}

a href=这是第一个A标签, a href=成长脚印-专注于互联网发展/a这是第二个A标签。 a href= target=_blank这是第一个需要被提取的URL地址, a href= target=_blank这是第二个需要被提取的URL地址。img border=0 alt= src=_zh-cn.gif,这是一个IMG标签

即为我们想要的内容。

$content='
这是第一个A标签,
成长脚印-专注于互联网发展这是第二个A标签。


图片 2,这是一个IMG标签';
echo linkAdd($content);

即为我们想要的内容。

例2,

返回的内容为:

例2,

 代码如下

复制代码 代码如下:
这是第一个A标签, 成长脚印-专注于互联网发展这是第二个A标签。 这是第一个需要被提取的URL地址, 这是第二个需要被提取的URL地址。
图片 3,这是一个IMG标签

代码如下复制代码

/**
 * PHP 版本 在 Silva 代码的基础上修改的
 * 将URL地址转化为完整的A标签链接代码
 */
/** =============================================
 NAME        : replace_URLtolink()
 VERSION     : 1.0
 AUTHOR      : J de Silva
 DESCRIPTION : returns VOID; handles converting
 URLs into clickable links off a string.
 TYPE        : functions
 ============================================= */

即为我们想要的内容。

/*** PHP 版本 在 Silva 代码的基础上修改的* 将URL地址转化为完整的A标签链接代码*//** =============================================NAME : replace_URLtolink()VERSION : 1.0AUTHOR : J de SilvaDESCRIPTION : returns VOID; handles convertingURLs into clickable links off a string.TYPE : functions============================================= */

function replace_URLtolink($text) {
    // grab anything that looks like a URL...
    $urls = array();
   
    // build the patterns
    $scheme = '(https?://|ftps?://)?';
    $www = '([w]+.)';
    $ip = '(d{1,3}.d{1,3}.d{1,3}.d{1,3})';
    $name = '([w0-9]+)';
    $tld = '(w{2,4})';
    $port = '(:[0-9]+)?';
    $the_rest = '(/?([w#!:.?+=&%@!-/]+))?';
    $pattern = $scheme.'('.$ip.$port.'|'.$www.$name.$tld.$port.')'.$the_rest;
    $pattern = '/'.$pattern.'/is';
   
    // Get the URLs
    $c = preg_match_all($pattern, $text, $m);
   
    if ($c) {
        $urls = $m[0];
    }
   
    // Replace all the URLs
    if (! empty($urls)) {
        foreach ($urls as $url) {
            $pos = strpos('http://', $url);
           
            if (($pos && $pos != 0) || !$pos) {
                $fullurl = ';
            } else {
                $fullurl = $url;
            }
           
            $link = ''.$url.'';
           
            $text = str_replace($url, $link, $text);
        }
    }
   
    return $text;
}

例2,
复制代码 代码如下:
/**
 * PHP 版本 在 Silva 代码的基础上修改的
 * 将URL地址转化为完整的A标签链接代码
 */

function replace_URLtolink($text) { // grab anything that looks like a URL... $urls = array(); // build the patterns $scheme = '(|ftps?://)?'; $www = '([w]+.)'; $ip = '(d{1,3}.d{1,3}.d{1,3}.d{1,3})'; $name = '([w0-9]+)'; $tld = '(w{2,4})'; $port = '(:[0-9]+)?'; $the_rest = '(/?([w#!:.?+=%@!-/]+))?'; $pattern = $scheme.'('.$ip.$port.'|'.$$name.$tld.$port.')'.$the_rest; $pattern = '/'.$pattern.'/is'; // Get the URLs $c = preg_match_all($pattern, $text, $m); if ($c) { $urls = $m[0]; } // Replace all the URLs if (! empty($urls)) { foreach ($urls as $url) { $pos = strpos('', $url); if (($pos $pos != 0) || !$pos) { $fullurl = ''.$url; } else { $fullurl = $url; } $link = ''.$url.''; $text = str_replace($url, $link, $text); } } return $text;}

例一测试过,例二没有测试过大家测试一下看那个好用用那个吧。

function replace_URLtolink($text) {
    // grab anything that looks like a URL...
    $urls = array();

例一测试过,例二没有测试过大家测试一下看那个好用用那个吧。

    // build the patterns
    $scheme = '(https?://|ftps?://)?';
    $www = '([w]+.)';
    $ip = '(d{1,3}.d{1,3}.d{1,3}.d{1,3})';
    $name = '([w0-9]+)';
    $tld = '(w{2,4})';
    $port = '(:[0-9]+)?';
    $the_rest = '(/?([w#!:.?+=&%@!-/]+))?';
    $pattern = $scheme.'('.$ip.$port.'|'.$www.$name.$tld.$port.')'.$the_rest;
    $pattern = '/'.$pattern.'/is';

    // Get the URLs
    $c = preg_match_all($pattern, $text, $m);

    if ($c) {
        $urls = $m[0];
    }

    // Replace all the URLs
    if (! empty($urls)) {
        foreach ($urls as $url) {
            $pos = strpos('http://', $url);

            if (($pos && $pos != 0) || !$pos) {
                $fullurl = ';
            } else {
                $fullurl = $url;
            }

            $link = ''.$url.'';

            $text = str_replace($url, $link, $text);
        }
    }

    return $text;
}

本文由威尼斯在线注册平台发布于热门新闻,转载请注明出处:即将红色标记的内容提取出来添加A标签,这是第二个A标签

上一篇:用户可接受的语言信息 下一篇:你应该增添有关怎么着顾客有权上传文件的节制,upload.html 代码如下
猜你喜欢
热门排行
精彩图文