【问题标题】:PHP Hashtag SystemPHP标签系统
【发布时间】:2013-10-07 20:45:44
【问题描述】:

我正在尝试在 PHP 中设置标签系统,如果用户输入的单词旁边包含 #,它将被替换为链接。

例如:

$input = "mysql_real_escape_string($_POST['input'])";
$sql = "INSERT INTO table (input) VALUES ('$input')";
mysql_query($sql, $connect);
?>
<?php
mysql_select_db("database",$connect);
$sql = mysql_real_escape_string("SELECT * FROM input");
$myData = mysql_query($sql, $connect);
echo $myData;

$myData 会说“刚刚在学区以 80 英里/小时的速度行驶 #yolo”

我希望它回响:

Just went 80mph in a schoolzone <a href="search?q=%23yolo">#yolo</a>

在 Twitter 上点赞。我不知道如何设置,但我认为可能涉及到 preg_match()str_replace()

【问题讨论】:

  • $input = "mysql_real_escape_string($_POST['input'])"; 可能不是你想要的。
  • mysql_* 函数已弃用,请考虑使用 mysqli_* 或 PDO。
  • $sql = mysql_real_escape_string("SELECT * FROM input"); 不需要转义静态字符串,只有已经生成的字符串才应该对其输入进行清理。
  • 请认真地停止使用mysql_query。太可怕了。

标签: php mysql sql twitter hashtag


【解决方案1】:

您要查找的正则表达式是#([^\s]+),它匹配哈希后的一个或多个字符,直到出现空白。然后可以将其与 preg_replace 一起使用以创建链接。

例如

$output = preg_replace( "/#([^\s]+)/", "<a href=\"search?q=%23$1\">#$1</a>", $input );

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多