Keywordüberprüfung funktioniert nicht bei Wörtern mit Umlauten

tina33333

Mitglied
Bitte um Hilfe. Suche bereits nach geraumer Zeit nach einer Lösung für mein Problem, bin aber noch nicht fündig geworden.
Möchte verschiedene Keyword in der Metadescription überprüfen. Das funktioniert auch ganz gut. Sobald aber ein Wort mit Umlaut, wie z.B. Kitzbühel eingegeben wird, dann erkennt das Programm keine Übereinstimmung. Hab es schon versucht mit Kitzbuehel oder Kitzbühel, aber auch das funktioniert nicht. Hier der Code:
PHP:
<?php
$tags = get_meta_tags('http://www.domain.com');
	$description = $tags['description'];
	echo $description;

	$suchwort="kitzbühel";
	if (preg_match("/".$suchwort.'/i', $description, $treffer)) {
		print_r($treffer);
		echo "<br />Yes, keyword is in metadescription";
	}
	else {
		echo "<br />No, keyword is not in metadescription"; 
	}

?>
Ich würde mich sehr über die Korrektur meines php-codes freuen.
Liebe Grüße
Tina
 
Moin,

ich vermute, dass es hier ein Zeichensatzproblem gibt. Die genannte Webseite ist ISO-8859-1 codiert und im Code-Editor ist wahrscheinlich UTF-8 eingestellt (was so auch erstmal richtig ist).

PHP:
if (preg_match("/".$suchwort."/i", utf8_encode($description), $treffer)) { ... }

Mit der utf8_encode() Funktion wird der Zeichensatz dann angeglichen und du solltest die entsprechenden Treffer erhalten.

MfG aGeNET
 
Super!! Das funktioniert!
Vielen herzlichen Dank. Ich freue mich total!
Schönen Tag noch und liebe Grüße!

Super!! Das funktioniert!
Vielen herzlichen Dank. Ich freue mich total!
Schönen Tag noch und liebe Grüße!

Da hätte ich noch eine Bitte: ich muss den Code auch noch in eine Funktion packen und weiß nicht wie ich das am besten anstellen soll......
 
PHP:
$keywords = array('Kitzbühl', 'Insbruck', 'Salzburg'); // ein oder mehrere Keywords, die gefunden werden sollen
// Aufruf mit has_keywords("http://www.almhof-kirchberg.com", $keywords);

function has_keywords($url, $keywords) {
  $tags = get_meta_tags($url);
  if (preg_match("/(".implode("|", $keywords).")/i", utf8_encode($tags['description']))) {
    return true; // Suchwort ist enthalten
  } else {
    return false; // Suchwort ist nicht enthalten
  }
}

Dürfte ein Anfang sein, da du nicht schilderst, was im Endeffekt rauskommen soll.

MfG aGeNET
 
Moin,

ich vermute, dass es hier ein Zeichensatzproblem gibt. Die genannte Webseite ist ISO-8859-1 codiert und im Code-Editor ist wahrscheinlich UTF-8 eingestellt (was so auch erstmal richtig ist).

PHP:
if (preg_match("/".$suchwort."/i", utf8_encode($description), $treffer)) { ... }

Und wenn die Seite schon UTF-8 Codiert ist?

Achja für so einfache suchen kann man auch stripos() nutzen.
http://php.net/stripos
 

Neue Beiträge

Zurück