Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将文本URL转换为PHP页面中的可单击链接?_Php_Regex_Url - Fatal编程技术网

如何将文本URL转换为PHP页面中的可单击链接?

如何将文本URL转换为PHP页面中的可单击链接?,php,regex,url,Php,Regex,Url,我相信这是一个非常简单、显而易见的答案,但我的大脑已经崩溃,我似乎无法理解。我有一个PHP站点,允许用户将信息发布到mySQL的文本字段中。这些帖子都可以在线查看。在post/edit模式下,该字段是HTML表单中的文本区域,在读取模式下是静态文本。用户希望能够在帖子中包含URL,并将其显示为可点击链接,而无需在字段中包含HTML(我不希望他们能够这样做-太冒险了)。因此,在显示数据时,需要这样做,而不是在保存到数据库时将html插入文本 显示器的代码非常简单: $query = "SELECT

我相信这是一个非常简单、显而易见的答案,但我的大脑已经崩溃,我似乎无法理解。我有一个PHP站点,允许用户将信息发布到mySQL的文本字段中。这些帖子都可以在线查看。在post/edit模式下,该字段是HTML表单中的文本区域,在读取模式下是静态文本。用户希望能够在帖子中包含URL,并将其显示为可点击链接,而无需在字段中包含HTML(我不希望他们能够这样做-太冒险了)。因此,在显示数据时,需要这样做,而不是在保存到数据库时将html插入文本

显示器的代码非常简单:

$query = "SELECT * FROM meetings where id=".$_GET['id'];
$result = mysqli_query($dbc, $query) or die('Error querying database');
$rows = mysqli_fetch_array($result);

echo "<p><div id=\"articleBody\">". $rows['body']. "</div></p>";
$query=“SELECT*FROM meeting where id=”.$\u GET['id'];
$result=mysqli_query($dbc,$query)或die('Error querying database');
$rows=mysqli\u fetch\u数组($result);
回声“”$行['body']。“

”;
有没有一个函数我可以放在$rows['body']附近,它可以显示以http开头的任何内容作为可点击的链接?请记住,变量可能包含URL,也可能不包含URL。

$out=$rows['body'];
$out = $rows['body'];

echo "<p><div id='articleBody'>";

if(substr($out,0,4)=='http') { echo "<a href='#'>".$out."</a>"; }
else { echo $out; } 

echo "</div></p>";
回声“”; if(substr($out,0,4)='http'){echo”“;} else{echo$out;} 回声“

”;
使用
preg\u replace
完成以下操作:

$html = preg_replace('"\b(http://\S+)"', '<a href="$1">$1</a>', $rows['body'])
echo "<p><div id=\"articleBody\">".$html."</div></p>";
$html=preg_replace(“\b(http://\S+”,“,$rows['body]”)
echo“”$html.

”;
这不会使链接文本成为正文字段的全部值吗?那不是我需要的。该字段可以包含多段文字,其中可能包含链接,也可能不包含链接。谢谢!出于某种原因,我认为有一个本机PHP函数可以做到这一点。这正是我所需要的。哦,天哪,你真的像那样在查询中插入了$\u GET变量吗?应该考虑转义它或使用准备好的语句。例如。。yourwebsite.com/article.php?id=''%20或%201%3D1..或更糟..@barfoon-不,我确实在实时代码中转义了它;我遇到了FTP问题,无法将其复制/粘贴到这篇文章中,所以我很懒,只是给出了一些基本信息,而不是重新键入每一点。