2016-07-20 7 views
2

Ich möchte alle Hashtags aus einer Zeichenfolge finden und sie in eine Tabelle (SQL) einfügen.PHP Hashtags in String finden und in Datenbank einfügen

$string = "hello #hashtag_1 bla bla #hashtag_2"; 

Ich habe keine Idee, wie dies zu tun ist. Irgendwelche Ideen?

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; 
} 
+1

Warum funktioniert das nicht? – Confiqure

Antwort

2

Nun, wenn Sie $hashtags zurückkehren, wird es als ein Array zurückgegeben

Array 
(
    [0] => #hashtag_1 
    [1] => #hashtag_2 
) 

Sie benötigen das Array in einen String zu kombinieren. Verwenden Sie diese als Ihre getHashtags() Funktion (ich wählte ihn haben Komma getrennt werden, aber Sie können andere Trennzeichen wählen)

function getHashtags($string) { 
    $hashtags = FALSE; 
    preg_match_all("/(#\w+)/u", $string, $matches); 
    if ($matches) { 
     $hashtags = implode(",", $matches[0]); 
    } 
    return $hashtags; 
} 

$hashtags zurückkehren würde #hashtag_1,#hashtag_2 und dann $sql_query zu

$sql_query = mysqli_query($conn, "INSERT INTO hashtags VALUES('" . getHashtags($string) . "')") 

Auch sein ändern sollte sicher, einen Scheck zu geben, wenn $hashtags != FALSE, so dass es nur in die Datenbank einfügt, wenn es ein Hashtag gibt

Also hier ist der vollständige Code:

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 . "')") 
} 
+0

Überprüfen Sie meine letzte Änderung. Ich füge einen Haken hinzu, wenn '$ Hashtags! = FALSE' sind – Bijan