如何让一个bbcode将url标签解析为链接? [英] how do I make a bbcode to parse url tags into links?
本文介绍了如何让一个bbcode将url标签解析为链接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我应该如何解析php中的url?我想让它变成这样
How should I go about parsing a url in php? I wanna make it so it goes
[url=http://www.google.com]Google[/url]
变成:
Turns into:
<a href="http://www.google.com">Google</a>
这是我用于其他bb代码的代码:
This is the code I'm using for my other bb codes:
function postparser($post){
$post = str_replace("\n",'END_OF_LINE',$post);
$post = str_replace("[line]",'HORIZONTAL_LINE',$post);
$post = str_replace("[bold]",'BOLD_TEXT_START',$post);
$post = str_replace("[/bold]",'BOLD_TEXT_END',$post);
$post = str_replace("[yt]",'YOUTUBE_START',$post);
$post = str_replace("[/yt]",'YOUTUBE_END',$post);
$post = sanitize($post);
$post = str_replace("END_OF_LINE",'<br />',$post);
$post = str_replace("HORIZONTAL_LINE",'<hr />',$post);
$post = str_replace("BOLD_TEXT_START",'<b>',$post);
$post = str_replace("BOLD_TEXT_END",'</b>',$post);
$post = str_replace("YOUTUBE_START",'<iframe width="560" height="315" src="http://www.youtube.com/embed/',$post);
$post = str_replace("YOUTUBE_END",'" frameborder="0" allowfullscreen></iframe>',$post);
return $post;
}
我会如何去做这件事?
推荐答案
$post = preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/', '<a href="\1">\2</a>', $post);
进入解析后的bbcode text:
Google
Into parsed bbcode text: Google
您可能需要要使用更具体的正则表达式,而不仅仅是。+ 以过滤出潜在的不良/危险输入。
You'll probably want to use more specific regex than just .+ to filter out potentially bad/dangerous input.
这篇关于如何让一个bbcode将url标签解析为链接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文