Hoppa direkt till innehåll

Parsea hashtaggar

2012-11-18 - php, hashtags, twitter, textparsing
Hur skriver man den rubriken på svenska? Nåja, jag insåg att när jag donade lite med en importfunktion för Twitter så vore det bra med en funktion som tog en textsträng och parsade ut de hashtags (ord med # framför) och returnerade dem som hashtags, nyckelord samt textsträngen utan dem. Så här ser den funktionen ut, kanske någon annan som kan ha användning för den?
function parse_hashtags($string){
  $return = array(
    "tags" => array(),
    "keywords" => array(),
    "original" => $string
  );
  $words = preg_split("/\s+/", $string);
  foreach ($words as $word){
    if (preg_match("/^#/", $word)){
      $return["string"][] = str_replace("#", "", $word);
      $word = preg_replace("/[^#a-z_åäö]/", "", $word);
      $return["tags"][] = $word;
      $return["keywords"][] = str_replace("#", "", $word);
    } else {
      $return["string"][] = $word;
    }
  }
  if (is_array($return["keywords"])){
    foreach (array_reverse($return["keywords"]) as $key){
      if ($return["string"][count($return["string"])-1] == $key){
        unset($return["string"][count($return["string"])-1]);
      } else {
        break;
      }
    }
  }
  $return["string"] = join(" ", (array)$return["string"]);
  return $return;
}
Så funktionen returnerar alltså en array med de olika delarna, här är output från ett exempel:
$string = "I like to swim in the #ocean, it's very nice! #clean #fun";
$keywords = parse_hashtags($string);
print_r($keywords);

Array ( [tags] => Array ( [0] => #ocean [1] => #clean [2] => #fun ) [keywords] => Array ( [0] => ocean [1] => clean [2] => fun ) [original] => I like to swim in the #ocean, it's very nice! #clean #fun [string] => I like to swim in the ocean, it's very nice! )
Den är rätt så intelligent. Inte nog med att den returnerar både separata tags och keywords (med eller utan hashtecknet) så returnerar den både originalsträngen samt en uppstädad strängversion utan hashtags. Och den är så pass smart att den konverterar hashtags inne i meningen till ord men struntar i att ta med dem i slutet av meningen - notera ordet "ocean" som är en tag men är kvar i den uppstädade meningen medan tagsen "clean" och "fun" är borta. Så det blir helt enkelt en snygg förståelig mening av det hela.
Mer i Tutorials
PHP Formatera telefonnummer
Skapa ett Netflixprogram
Expandera korta URLar
Parsea hashtaggar
Repeterande schema i iCal med AppleScript
Vlj datumspann med jQuery
Rkna ungefrlig tid med PHP
Nyckelord: php, hashtags, twitter eller textparsing
Triggrse
Splittrad tillvaro p webben del 2
Parsea hashtaggar
OAuth fungerar inte
Hur nya iPaden stller till det p webben
Microbloggning och bloggning kan det fungera tillsammans
Layoutmotor fr Atlas
Nordic: The Musical
I-V: Mjölner: Himlen brinner
Nordic: The Musical
I-IV: Loke: Gudarnas spel
Nordic: The Musical
I-V: Freja: Oändlig kärlek
Ljussabel-projektet
Hemma Bäst
Skåp till Ute-TV
Thåström i Globen
Födelsedagspresent
Bröllopspresent
Borta Bra
Recension: Jacy's
Thåström
Nordic: The Musical
I-III: Oden
Nordic: The Musical
I-II: Yggdrasil
Nordic: The Musical
I-I: Ginnungagap: Allting börjar alltid någonstans
Borta Bra
Recension: Bohusgården Hotell & Konferens
Borta Bra
Recension: Elite Palace
Nytt projekt på gång: Ljussablar som ljuskälla
Hemma Bäst
Hemma-Spa klart!
Alien: Romulus
Hemma Bäst
Utebaren klar!
Hemma Bäst
Börjar likna en bar!
Hemma Bäst
Reglar på plats
Hemma Bäst
Rivning pågår!
Mjölner!
Borta Bra
Örnen börjar bli redo för Sweden Rock
Hemma Bäst
Utebar!
Mixtejp
Norrsken
Kan ha "råkat" skaffa något på Sci-Fi-mässan
Borta Bra
Recension: Steam Hotell
Hemma Bäst
Det börjar ta form med hemma-spa:et
Rostfärg och IKEA-lampa
Myst Book
Create a physical book from my digital book
Myst Book
Survey Island
Myst Book
Someone is trying to sell my map!
Julkalender
Myst Book
Myst book updated
Borta Bra
Recension: Yasuragi Ryokan Hanare
Borta Bra
Recension: Ad Astra
Ny tatuering - midgårdsormen!
Minnestal till en kaffekopp
Förlovade
Borta Bra
Sweden Rock 2023
Ny nummerskylt för huset
Fix i husbilen
Grubbelgubbe
Hemma Bäst
Uppdateringar i verkstaden!
Måla med rostfärg
Vårfix i trädgården
Jung Kook
Pappaskämt och annan humor