晚上好......我是编程的新手,我能够以自己的方式工作,使用下面的代码将文本显示为链接
<?php
$textorigen = $row_get_tweets['tweet'];
// URL starting with http://
$reg_exUrl = "/(^|\A|\s)((http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}(\/\S*)?)/";
if(preg_match($reg_exUrl, $textorigen, $url)) {
// make the urls hyper links
$text_result=preg_replace( $reg_exUrl, "$1<a href=\"$2\">$2</a> ", $textorigen );
echo $textorigen=$text_result;
} else {
// if no urls in the text just return the text
echo $text_result=$textorigen;
}
// URL starting www.
$reg_exUrl = "/(^|\A|\s)((www\.)[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}(\/\S*)?)/";
if(preg_match($reg_exUrl, $text_result, $url)) {
// make the urls hyper links
$text_result=preg_replace( $reg_exUrl, "$1<a href=\"http://$2\">$2</a>", $text_result );
echo $textorigen=$text_result;
?>
所以它的工作正常,但重复我的帖子,如果它的第二个if语句发现是真的(www.anything.com)和如果有一个没有链接的帖子它没有显示它。非常肯定它的我的if语句错了并且花了好几个小时试图解决它。亲切地帮助我。
我希望它:
1)如果发布,则显示www链接 2)如果发布,则显示http链接 3)如果没有发布htto或www,则显示链接。谢谢
请注意preg_replace函数非常适用
答案 0 :(得分:0)
问题在于,每次程序到达echo
时,帖子都会再次打印。
所以我的建议是将所有echo $textorigen=$text_result;
更改为$textorigen=$text_result;
,并在所有替换逻辑的最后放置echo $textorigen;
。