我在 php 脚本中使用 mysqli 查询从 mysql 数据库表中提取数据并将其显示在网站上。
一些数据包括链接,但它们以特定格式格式化。链接格式为#Link Name#http://www.link.com
所以首先#
设置名称,第二个#
设置超链接。
我需要我的 php 脚本来解析它并在网站上显示为正常的超链接。
这是php脚本:
<?php
include('mysql_connection.php');
$c = mysqlConnect();
$locale = $_GET['locale'];
$last_news_id = $_GET['news_id'];
sendQuery ("set character_set_results='utf8'");
sendQuery ("set collation_connection='utf8_general_ci'");
if (strcmp($locale,"en") != 0)
$locale = "en";
$result = sendQuery("SELECT * FROM news WHERE id > ".$last_news_id." and locale = '" . $locale . "' ORDER BY id DESC LIMIT 10");
echo '<table width=\"100%\">';
while($row = mysqli_fetch_array($result, MYSQL_NUM))
{
echo '<tr><td width=\"100%\"><b>Date: </b>'.$row[2].'</td></tr>';
echo '<tr><td width=\"100%\">'.nl2br($row[3]).'</td></tr>';
echo '<tr><td width=\"100%\"><hr style="height: 2px; border: none; background: #515151;"></td></tr>';
}
echo '</table>';
mysqliClose($c);
?>
编辑:我添加了这一行,它有助于解决一个问题:
echo '<tr><td width=\"100%\">'.preg_replace('/#([^#]*)#.*/', '<a href="$2" target="_blank">$1</a>', $row[3]).'</td></tr>';
它仍然打开现有页面而不是超链接。我猜 $2 应该是超链接,第二个 # 之后的值。但是,我不完全确定如何将其编码到 php.ini 中。