主题标签已被广泛用于Twitter,Instagram,Facebook等社交媒体应用程序中;作为一种标记或标记内容的方法,用户在这些社交媒体应用程序上上传或共享。在本指南中,我们将使用三个简单的步骤中的社交媒体应用程序或Web应用程序来定义一个主题标签的含义以及如何为社交媒体应用程序或Web应用程序构建标签系统。
- 什么是标签?
根据Wikipedia的说法,主题标签是一个元数据标签,由哈希符号#(hashtagâ,Wikipedia)置为元数据标签。它们用于Twitter,Instagram,Facebook等社交媒体应用程序中;作为一种标记或标记内容的方法,以文本形式上传或共享,或作为用户包含主题标签的文本。
入门
使用PHP构建标签系统将由三个操作,插入和选择/获取。我建议您在阅读有关这些步骤的同时提高注意力,并用示例解释这些操作如何使用PHP来构建用于社交媒体应用程序或Web应用程序的主题标签系统。
- 步骤1:从用户的文本获取主题标签
当我谈论“成为构建标签系统的操作之一”时;我不是指我们都熟悉的流行$_GET['']
方法。我的意思是创建一个函数,可以通过以文本形式上传或共享的内容或作为包含标签的文本来突出显示用户主题标签。
让我们看一下功能,然后从中设置XAMPP服务器(在PC上),为您的项目创建一个文件夹,然后使用名称get-hashtag-function.php创建文件。使用您喜欢的代码编辑器。现在,将下面的代码粘贴到您新创建的文件中并保存。
<?php
function gethashtags($string) {
$hashtags= FALSE;
preg_match_all("/\#([a-zA-Z0-9_]{1,20}+)/u", $string, $matches);
if ($matches) {
$matches[0] = str_replace('#', '', $matches[0]); //replace #
$hashtags = implode(' ,', $matches[0]);
}
return explode(" ,", $hashtags);
}
?>
上面的功能是我们从用户文本中获取主题标签的方法,因此我们通过使用名称index.php创建一个新文件,以查看如何get- get-中的函数ashtag-function.php-file工作。将下面的代码粘贴到您的“ index.php”文件中并保存。
<?php
// get hashtag function
include "get-hashtag-function.php";
// user text
$user_text = "Hello! This is a text with hashtags #love #care #support #coding";
echo '<p><b>Text:</b> '.$user_text.'</p>';
echo '<b>Hashtags from Text:</b> ';
// get hashtags from user text
$hashtags = gethashtags($user_text);
// paste highlighted hashtags
foreach($hashtags as $user_text_hashtags) {
echo $user_text_hashtags.", ";
}
?>
在上面的代码中,我们包含了get-hashtag-function.phpâ文件,创建了一个带有四个主题标签的文本的变量($ user_text),还继续使用gethashtags()
echo echo此变量函数名称来自get-hashtag-function.php file。要查看其工作原理,请打开浏览器并运行您的项目以查看图像之类的输出。
- 步骤2:将主题标签插入数据库
如果您有一个Twitter帐户,则必须在应用程序搜索页面或Twitter帐户主页的左侧看到Twitter的趋势主题标签列表。他们都在Twitter上从用户那里得到。然后插入数据库中以显示给其他用户,以便他们会看到标记或标记的内容,上面标记或标记了他们感兴趣的特定主题标签。在此步骤中,我们将在步骤1中创建的变量$user_text
中插入用户标签, 。因此,让我们使用名称“ HashTags_db”创建一个数据库,并在下面执行SQL代码,以为新创建的数据库创建表。
CREATE TABLE `hashtags` (
`id` int(11) NOT NULL,
`keyword` varchar(200) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
ALTER TABLE `hashtags`
ADD PRIMARY KEY (`id`);
ALTER TABLE `hashtags`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
执行上面的SQL代码后,您将拥有一个带有图像之类的列的表。
接下来,使用名称âdb-connect.phpâ创建一个新文件。粘贴下面的代码并保存。
<?php
$db = mysqli_connect('localhost', 'root', '', 'hashtags_db');
// Evaluate connection
if(mysqli_connect_errno()) {
echo 'A problem occured, please try again later';
exit();
}
?>
我们刚刚将新创建的数据库连接到了我们的项目。现在剩下的是您编写一个代码,该代码将从步骤1插入变量($ user_text)中的标签中代码
// connect to database
include "db-connect.php";
在PHP打开标签之后,在文件的顶部,也粘贴此查询
// hashtags selected and to be inserted into database
foreach($hashtags as $hashtag) {
if ($hashtag !== "") {
// check if hashtag already exist in database table
$hashtag_exist = "SELECT * FROM hashtags WHERE keyword = ?";
if ($stmt = mysqli_prepare($db, $hashtag_exist)) {
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
while (mysqli_stmt_fetch($stmt)) {
// fetch results
}
if (mysqli_stmt_num_rows($stmt) > 0) {
// hashtag exist
// if hashtag already exist in database table, update time created only (so that hashtag will be among "trending hashtags")
$insert = "UPDATE hashtags SET created_on = NOW() WHERE keyword = ?";
$stmt = mysqli_prepare($db, $insert);
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
echo "<p><i><font color='green'>One or all of the hashtag already exist but one or all of the hashtag time created has been updated in database instead.</font></i></p>";
} else {
// hashtag does not exist in database table
// insert hashtag into database
$insert = "INSERT INTO hashtags(keyword) VALUES(?)";
$stmt = mysqli_prepare($db, $insert);
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
echo "<p><i><font color='green'>Hashtag has been inserted into database.</font></i></p>";
}
}
} else {
// nothing
}
}
在PHP关闭标签之前,在文件末尾。这将将主题标签从$user_text
插入数据库中。您的index.php file现在看起来像这样。
<?php
// connect to database
include "db-connect.php";
// get hashtag function
include "get-hashtag-function.php";
// user text
$user_text = "Hello! This is a text with hashtags #love #care #support #coding";
echo '<p><b>Text:</b> '.$user_text.'</p>';
echo '<b>Hashtags from Text:</b> ';
// get hashtags from user text
$hashtags = gethashtags($user_text);
// get hashtags from user text
foreach($hashtags as $user_text_hashtags) {
echo $user_text_hashtags.", ";
}
// hashtags selected and to be inserted into database
foreach($hashtags as $hashtag) {
if ($hashtag !== "") {
// check if hashtag already exist in database table
$hashtag_exist = "SELECT * FROM hashtags WHERE keyword = ?";
if ($stmt = mysqli_prepare($db, $hashtag_exist)) {
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
while (mysqli_stmt_fetch($stmt)) {
// fetch results
}
if (mysqli_stmt_num_rows($stmt) > 0) {
// hashtag exist
// if hashtag already exist in database table, update time created only (so that hashtag will be among "trending hashtags")
$insert = "UPDATE hashtags SET created_on = NOW() WHERE keyword = ?";
$stmt = mysqli_prepare($db, $insert);
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
echo "<p><i><font color='green'>One or all of the hashtag already exist but one or all of the hashtag time created has been updated in database instead.</font></i></p>";
} else {
// hashtag does not exist in database table
// insert hashtag into database
$insert = "INSERT INTO hashtags(keyword) VALUES(?)";
$stmt = mysqli_prepare($db, $insert);
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
echo "<p><i><font color='green'>Hashtag has been inserted into database.</font></i></p>";
}
}
} else {
// nothing
}
}
?>
现在,让我们使用浏览器运行项目。如果您看到该消息标签已插入数据库 ;恭喜! $user_text
中的主题标签已插入数据库中。
- 步骤3:从数据库中选择/获取标签
现在,我们已经将用户文本插入数据库中的主题标签了,我们希望看到所有主题标签的列表(就像Twitter趋势趋势主题标签一样)并完成此操作,请在下面添加代码。 index.phpâfile在foreach($hashtags as $user_text_hashtags) { echo $user_text_hashtags.", "; }
行的代码线之后。
echo '<h3>Hashtags</h3>';
// select/fetch all hashtags from database
$query = "SELECT * FROM hashtags ORDER BY created_on DESC";
$stmt = mysqli_prepare($db, $query);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
// fetch results
$keyword = $row["keyword"];
$created_on = $row['created_on'];
echo '
<div>
<b>#'.$keyword.'</b> - <font color="#aaa">'.$created_on.'</font>
</div>';
}
您的index.php file的完整代码看起来像这样。
<?php
// connect to database
include "db-connect.php";
// get hashtag function
include "get-hashtag-function.php";
// user text
$user_text = "Hello! This is a text with hashtags #love #care #support #coding";
echo '<p><b>Text:</b> '.$user_text.'</p>';
echo '<b>Hashtags from Text:</b> ';
// get hashtags from user text
$hashtags = gethashtags($user_text);
// get hashtags from user text
foreach($hashtags as $user_text_hashtags) {
echo $user_text_hashtags.", ";
}
echo '<h3>Hashtags</h3>';
// select/fetch all hashtags from database
$query = "SELECT * FROM hashtags ORDER BY created_on DESC";
$stmt = mysqli_prepare($db, $query);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
// fetch results
$keyword = $row["keyword"];
$created_on = $row['created_on'];
echo '
<div>
<b>#'.$keyword.'</b> - <font color="#aaa">'.$created_on.'</font>
</div>';
}
// hashtags selected and to be inserted into database
foreach($hashtags as $hashtag) {
if ($hashtag !== "") {
// check if hashtag already exist in database table
$hashtag_exist = "SELECT * FROM hashtags WHERE keyword = ?";
if ($stmt = mysqli_prepare($db, $hashtag_exist)) {
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
while (mysqli_stmt_fetch($stmt)) {
// fetch results
}
if (mysqli_stmt_num_rows($stmt) > 0) {
// hashtag exist
// if hashtag already exist in database table, update time created only (so that hashtag will be among Hashtags list)
$insert = "UPDATE hashtags SET created_on = NOW() WHERE keyword = ?";
$stmt = mysqli_prepare($db, $insert);
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
echo "<p><i><font color='green'>One or all of the hashtag already exist but one or all of the hashtag time created has been updated in database instead.</font></i></p>";
} else {
// hashtag does not exist in database table
// insert hashtag into database
$insert = "INSERT INTO hashtags(keyword) VALUES(?)";
$stmt = mysqli_prepare($db, $insert);
mysqli_stmt_bind_param($stmt, "s", $hashtag);
mysqli_stmt_execute($stmt);
echo "<p><i><font color='green'>Hashtag has been inserted into database.</font></i></p>";
}
}
} else {
// nothing
}
}
?>
您现在可以在浏览器上运行项目,您将能够看到插入数据库的主题标签列表。
欢呼!您刚刚使用PHP构建了一个标签系统。
结论
使用主题标签是社交媒体应用程序和一些网络应用程序的关键功能,在开发过程中倾向于与它们一起使用。正如您从本指南中学到的那样,我建议您在GitHub上下载并运行我的项目,内容涉及使用jQuery和phpâ构建标签系统,我已经设计和构建了社交媒体应用程序发布功能,并使用了三个步骤我今天已经与您分享了,以及搜索主题标签并使用特定主题标签选择用户的内容等功能,以更多地了解实时社交媒体应用程序和其他Web应用程序如何与主题标签一起使用。
。