首页 文章

用PHP解析文本以找到url [重复]

提问于
浏览
0

这个问题在这里已有答案:

我有以下 php 代码:

if(isset($_POST['text']))
      {

        $text= mysql_real_escape_string($_POST['text']);

      }

其中$ text是utf-8 . 我要做的是解析文本,以便查找$ text和 tag 中是否有相应的URL . 例如,如果$ text要:

Lorem ipsum dolor sit amet,consectetur adipiscing elit . Mauris laoreet congue luctus . 在fringilla mattis nisl . Vestibulum id eros sed ante vestibulum faucibus . Vestibulum luctus enim坐在ante ante imperdiet placerat . Fusce imperdiet rhoncus tempor . Lorem ipsum dolor坐下来,精致的adipistur elit . Suspendisse ullamcorper metus vel diam consectetur,vel laoreet lectus www.google.com elementum . 在ut nunc id felis bibendum viverra nec quis dui . Donec non purus commodo,vestibulum nisl non,lobortis eros . Ut et arcu convallis,posuere nibh a,venenatis ligula . Mauris ullamcorper massa libero,placerat pretium magna condimentum ut . Ut elit turpis,nondiet pretium mauris vitae,iaculis facilisis quam . Maecenas ut vulputate libero .

然后我希望它以这种方式出现:

Lorem ipsum dolor sit amet,consectetur adipiscing elit . Mauris laoreet congue luctus . 在fringilla mattis nisl . Vestibulum id eros sed ante vestibulum faucibus . Vestibulum luctus enim坐在ante ante imperdiet placerat . Fusce imperdiet rhoncus tempor . Lorem ipsum dolor坐下来,精致的adipistur elit . Suspendisse ullamcorper metus vel diam consectetur,vel laoreet lectus www.google.com elementum . 在ut nunc id felis bibendum viverra nec quis dui . Donec non purus commodo,vestibulum nisl non,lobortis eros . Ut et arcu convallis,posuere nibh a,venenatis ligula . Mauris ullamcorper massa libero,placerat pretium magna condimentum ut . Ut elit turpis,nondiet pretium mauris vitae,iaculis facilisis quam . Maecenas ut vulputate libero .

我的疑问在于我是否应该遍历每个字符并尝试检测URL或通过正则表达式运行$ text(使用php?)并尝试相同的操作 . 在最后一个案例(正则表达式)中,我应该如何找到索引来创建标记?谢谢您的帮助 .

1 回答

  • 2

    我通过一些快速研究从另一个stackoverflow问题中找到了一个答案:

    return preg_replace('!(http://[a-z0-9_./?=&-]+)!i', '<a href="$1">$1</a> ', $text." ");
    

    参考:https://stackoverflow.com/a/5252897/2827066

相关问题