Отделяйте хештеги от строки и храните в отдельных строках

Я пытаюсь отделить мои хэштеги от строки из одного поста, поэтому, если в посте их больше одного, они разделяются на один #hashtags и положить в отдельные строки в моей таблице хештега их post_id,

В настоящее время с моей функцией ниже они вставляются в одну строку и перечисляются через запятую. Как я могу поместить их в массив, а затем хранить их по отдельности, пожалуйста?

Вот что я пытался безрезультатно:

      $hashtags ="#hashtag1 this is my string with two hashtags #hashtag2";
if($hashtags==""){
}else{
function getHashtagsd($hashtags) {
$hashtagarray = FALSE;
preg_match_all("/(#\w+)/u", $hashtags, $matches);
if ($matches) {
$hashtagarray = implode(",", $matches[0]);
}
return $hashtagarray;
}

$hashtagarray = getHashtagsd($hashtags);
$hashtagarray = getHashtagsd($hashtags);
$myArray1 = explode(';', $hashtagarray);
$myArray  = explode('#', $myArray1);

$insertf = "INSERT INTO streamdata_hashtags(streamitem_hashtag_id,hashtag,streamitem_hashtag_timestamp) VALUES ($last_id,'$hashtagarray',NOW())";
$add_postf = mysqli_query($mysqli,$insertf) or die(mysqli_error($mysqli));

}

Я добавил взрывы и получил эту ошибку:

explode () ожидает, что параметр 2 будет строкой, а массив задан в

0

Решение

Вы сделали много кодирования, которое не было необходимым. Я обновил код и добавил несколько комментариев о том, как он работает:

$hashtags = "#hashtag1 this is my string with two hashtags #hashtag2";

function getHashtagsd($hashtags) {
preg_match_all("/(#\w+)/u", $hashtags, $matches);

if ($matches) {
return $matches[0]; // No need to implode, just return the array
}
}

$hashtagarray = getHashtagsd($hashtags);

// Walk through the array and insert each hashtag
for($i = 0; $i < count($hashtagarray); $i++){
$insertf = "INSERT INTO streamdata_hashtags(streamitem_hashtag_id,hashtag,streamitem_hashtag_timestamp) VALUES ($last_id,'". $hashtagarray[$i] ."',NOW())";
$add_postf = mysqli_query($mysqli,$insertf) or die(mysqli_error($mysqli));
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector