PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit REGEX


netdirk
09.11.2005, 17:37:27
ich habe ein script geschrieben das keywords automatisch ausgeben soll.
mein lokales testsystem läuft unter windows hier funktioiert das script einwandfrei. der server selbst läuft unter linux. hier hat das script probleme mit den deutschen umlauten.

hier der code:

#### ~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
## die suche nach den keywords beginnt
# 1. Löschen aller wörter die auf einen . oder : folgen
$pattern = "/[.:]{1,5}( )?\b[A-ZÄÖÜa-zäöüß&;]{2,50}\b/sU";
$text = preg_replace($pattern, ' ', $text);

# 2. Löschen aller kleingeschrieben worte
$pattern = "/\b[a-zäöü&;]{2,50}\b/sU";
$text = preg_replace($pattern, '', $text);



die gefundenen wörter werden dann in einem nächsten schritt in ein array geschrieben. dabei werden dann auch leerzeichen und anderer schrott enfernt:


foreach ($extract as $word)
{
$pattern = "/\W/sU";
$word = preg_replace($pattern, '', $word);

## wen word leer ist oder kleiner, gleich 2 zeichen lang ist
if (empty($word) || strlen($word) <= 2)
{
unset($word);
}
else
{
if(!isset($words[$word]))
{
$words[$word] = '1';
}
else
{
$key = $words[$word];
$key++;
$words[$word] = $key;
}
}
}



die keywords die das script dann ausgibt sind sehr gut.
probleme hat es nur auf linux mit den umlauten. stößt es unter linux auf ein wort mit einem umlaut dann stellt es das nur teilweise dar.
z.b. aus "gefäß" wird dann "gef". oder aus "vorankündigung" wird "vorank".

ist irgendwas am suchmuster verkehrt?
behandelt linux umlaute anders als windows?

sitze jetzt schon seit 2 tagen darüber. was mach ich verkehrt?

netdirk
11.11.2005, 00:34:58
an alle die sich einen kopf gemacht haben erstmal ein dankeschön.
habe die lösung gefunden. das problem war folgendes:

ganz zum schluß am script wurde durch die regex "\W" alle zeichen gelöscht die nicht alphanumerisch sind. leider interpetiert linux das aber ein wenig anders.
umlaute sind unter linux nicht alphanumerisch. darum wurden die gelöscht.

der keywordfinder läuft jetzt gut und die keywords die gefunden werden können sich sehen lassen.

ich teste noch ein wenig bin aber guter dinge :-)