我想从字符串中找到所有主题标签并将它们插入表(sql)。
$string = "hello #hashtag_1 bla bla #hashtag_2";
我不知道如何做到这一点。有什么想法吗?
function getHashtags($string) {
$hashtags= FALSE;
preg_match_all("/(#\w+)/u", $string, $matches);
if ($matches) {
$hashtagsArray = array_count_values($matches[0]);
$hashtags = array_keys($hashtagsArray);
}
return $hashtags;
}
答案 0 :(得分:2)
当你返回$hashtags
时,它将作为数组返回
Array
(
[0] => #hashtag_1
[1] => #hashtag_2
)
您需要将数组合并为一个字符串。使用此作为getHashtags()
函数(我选择以逗号分隔,但您可以选择其他分隔符)
function getHashtags($string) {
$hashtags = FALSE;
preg_match_all("/(#\w+)/u", $string, $matches);
if ($matches) {
$hashtags = implode(",", $matches[0]);
}
return $hashtags;
}
$hashtags
将返回#hashtag_1,#hashtag_2
然后你的$sql_query
应该改为
$sql_query = mysqli_query($conn, "INSERT INTO hashtags VALUES('" . getHashtags($string) . "')")
还要确保添加一个检查$hashtags != FALSE
,以便只有在有标签的情况下才会插入数据库
所以这是完整的代码:
function getHashtags($string) {
$hashtags = FALSE;
preg_match_all("/(#\w+)/u", $string, $matches);
if ($matches) {
$hashtags = implode(",", $matches[0]);
}
return $hashtags;
}
$hashtags = getHashtags($string);
if($hashtags != FALSE) {
$sql_query = mysqli_query($conn, "INSERT INTO hashtags VALUES('" . $hashtags . "')")
}