Home > Backend Development > PHP Tutorial > 跪求正则表达式写法

跪求正则表达式写法

WBOY
Release: 2016-06-23 13:24:47
Original
1119 people have browsed it

在线求助php正则表达式写法。
以下文本中出现的所有url想换成超链接形式。

“文字www.baidu.com文字
www.html.com
文字http://www.baidu.com
https://www.google.com”

代码如下:
public function make_clickable($str) {
   $str = preg_replace('`([^"=\'>])((http://|https://|ftp://|ftps://|www.)[^\s$2', $str);
   return $str;
}

问题:
当文本为www.baidu.com时,超链接变成http://localhost/www.baidu.com

www前没有http或https的情况下,想替换成http://www.baidu.com的格式,再替换成超链接,
跪求正则表达式写法。


回复讨论(解决方案)

在此基础上改了下

$s = '“文字www.baidu.com文字www.html.com文字http://www.baidu.comhttps://www.google.com”';echo make_clickable($s);function make_clickable($str) {   $str = preg_replace('`([^"=\'>])((http://|https://|ftp://|ftps://|www.)[^\s< ]+[^\s<\.)])`ie',"_link('\\1','\\2')" , $str);   return $str;}function _link($text,$link){	if(explode('.',$link)[0]=='www'){		$link='http://'.$link;	}	return $text.'<a href="'.$link.'" target="_blank" rel="nofollow">'.$link.'</a>';}
Copy after login

非常有用。感谢


class Convert
{
   /*
   * URLを自?でリンク形式に
   */
   public function make_clickable($str)
   {

      $str = preg_replace('`([^"=\'])((http://|https://|ftp://|ftps://|www.)[^\s      return $str;

   }

   private static function _link($text, $link)
   {
      if (explode('.', $link)[0] == 'www') {

         $link = 'http://' . $link;

      }
      return $text . '' . $link . '';
   }
}

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template