Newsletter

  • Immer informiert über die neusten Trends, Webseiten und Tutorials! Einfach hier für den monatlichen Newsletter anmelden.
  •  Eintragen
  •  Austragen

Login

Umfrage

  • Bloggt Ihr?
  •  
  • ja
  • nein
  • bloggen?
  •  

BlackBeats

BlackBeats.fm Stream
- ONAIR -
Hip Hop Musik vom feinsten

Blackbeats FM

Linktipps

» Startseite » PHP und MySQL Tutorials

MetaKeywords automatisch erstellen

 
Mit der hier vorgestellten Funktion lassen sich die MetaKeywords für jede beliebige Seite automatisch erstellen, egal ob statische .html Seite oder dynamisch erzeugte .php Seite.



Das ganze wird mit folgendem Script realisiert, das eine beliebige URL ausliest und somit unabhängig von Server, verwendeter Programmiersprache der Seite, etc. ist.
Testen können sie das ganze unter folgender URL: WME MetaKey Test


Features:
- automatisches Auslesen der Wörter einer Seite
- automatische Filterung von sog. Stopwörtern (für Suchmaschinen wichtig!)
- automatische Filterung von Wörtern kleiner 4 Zeichen
- automatische Ausgabe als String mit Kommata getrennt

  1.  <?php
  2.   // Copyright by
  3.   // http://www.webmaster-eye.de
  4.   // Funktion zum löschen der Wörter in $stopword aus dem Array $unique
  5.   function unset_by_val($needle,&$haystack) {
  6.    while(($gotcha = array_search($needle,$haystack)) > -1)
  7.      unset($haystack[$gotcha]);
  8.   }
  9.   // Extra angepasste Funktion für UTF-8 Zeichen
  10.   function word_limiter($str, $limit = 100, $end_char = '8230') {
  11.      if (trim($str) == '')
  12.          return $str;
  13.      preg_match('/s*(?:S*s*){'. (int) $limit .'}/', $str, $matches);
  14.      if (strlen($matches[0]) == strlen($str))
  15.          $end_char = '';
  16.      return trim($matches[0]);
  17.   }
  18.   // Hauptfunktion, ermittelt Keywörter und fügt sie in ein Array ein
  19.   function keyword_unique($url = ""){
  20.    $stopword = array("ab", "ihrer", "noch", "also", "beim", "gibt", "viele", "aber", "als", "am", "an", "auch", "auf", "aus", "bei", "bin", "bis", "bist", "da", "dadurch", "daher", "darum", "das", "daß", "dass", "dein", "deine", "dem", "den", "der", "des", "dessen", "deshalb", "die", "dies", "dieser", "dieses", "doch", "dort", "du", "durch", "ein", "eine", "einem", "einen", "einer", "eines", "er", "es", "euer", "eure", "für", "hatte", "hatten", "hattest", "hattet", "hier", "hinter", "ich", "ihr", "ihre", "im", "in", "ist", "ja", "jede", "jedem", "jeden", "jeder", "jedes", "jener", "jenes", "jetzt", "kann", "kannst", "können", "könnt", "machen", "mein", "meine", "mit", "muß", "mußt", "musst", "müssen", "müßt", "nach", "nachdem", "nein", "nicht", "nun", "oder", "seid", "sein", "seine", "sich", "sie", "sind", "soll", "sollen", "sollst", "sollt", "sonst", "soweit", "sowie", "und", "unser", "unsere", "unter", "vom", "von", "vor", "wann", "warum", "was", "weiter", "weitere", "wenn", "wer", "werde", "werden", "werdet", "weshalb", "wie", "wieder", "wieso", "wir", "wird", "wirst", "wo", "woher", "wohin", "zu", "zum", "zur", "über");
  21.    $uniquearray();
  22.    $buffer = @file_get_contents($url);
  23.   
  24.    // Mit <div> Erweiterung? Dann hier die Kommentare löschen... (#...)
  25.    // Es werden mit dieser Erweiterung dann nur Inhalte genutzt die
  26.    // zwischen <div id="mitte"> </div> liegen
  27.    // Der reguläre Ausdruck kann natürlich beliebig umgeändert werden...
  28.    // Er funktioniert leider nicht für verschachtelte Tags!
  29.    #preg_match("-<div id=\"mitte\">(.*?)</div>-si", $buffer, $content);
  30.    #$buffer = $content[0];
  31.   
  32.    $kill = array("/",",","&","  ",".","!","?",":",";","-","'",">","<","(",")");
  33.    $replace = array(" "," "," "," ","","","","","","","","","","");
  34.    $words1 = str_replace($kill,$replace,word_limiter(strtolower(html_entity_decode(preg_replace("-<(.*?)>(.*?)<(.*?)>-si"," ",$buffer)))));
  35.    $words2 = explode(" ",trim($words1));
  36.    $unique = array_unique($words2);
  37.    for($v=0;$v <= count($stopword);$v++){
  38.      unset_by_val($stopword[$v],$unique);
  39.    }
  40.    return $unique;
  41.   }
  42.   // Aufrufen der Hauptfunktion, Array in String umwandeln und Wörter mit weniger
  43.   // als 4 Buchstaben löschen
  44.   // Alles was angepasst werden muss, ist im Grunde nur diese Zeile:
  45.   // $keywords = keyword_unique("http://www.webmaster-eye.de/");
  46.   // wobei sie die URL durch eine beliebige ersetzen können (die dann ausgelesen wird).
  47.   $keywords = keyword_unique("http://www.webmaster-eye.de/");
  48.   for($x = 0;$x < count($keywords);$x++){
  49.    if($keywords[$x] != " " && !empty($keywords[$x]) && strlen($keywords[$x]) >= 4){
  50.      $keys .= $keywords[$x].",";
  51.    }
  52.   }
  53.   // Ausgabe der Keywörter, mit Kommata getrennt
  54.   echo substr($keys,0,strlen($keys)-1);
  55.  ?>


Erläuterungen zur Nutzung finden sie in den Kommentaren des Scriptes oben, grundlegend ist nur folgender Aufruf:
  1.  <?php
  2.  $keywords = keyword_unique("http://www.webmaster-eye.de/");
  3.  ?>


Damit starten sie die Funktionen und können hier auch die URL angeben die ausgelesen werden soll.
Bei weiteren Fragen oder Anregungen hier zu schreiben sie bitte einen Kommentar zu diesem Artikel.

Tipp:
Mit folgender kleinen PHP Codezeile können sie die aktuelle URL der Seite auslesen auf der sie gerade sind:
  1.  <?php
  2.  $url = "http://".$_SERVER["HTTP_HOST"]."".$_SERVER["REQUEST_URI"]."";
  3.  ?>




Fragen? Probleme? Keine Antworten? Hilfe finden Sie im Webmaster Forum!

Diese Artikel könnten Sie auch interessieren:
Unterschiedlicher Footer auf verschiedenen Seiten
Alternative Syntax für Kontroll-Strukturen
String nach Wortende trennen
Reguläre Ausdrücke