Autor Beitrag
stigge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Fr 28.09.07 22:47 
Hallo,

ich möchte in einem PHP-Skript Strings untersuchen, ob sie andere Zeichen als A-Z, a-z, 0-9 oder _- enthalten. Mit Google habe ich einige Codes gefunden, die aber alle nicht funktionieren wollen warum auch immer.
Hiermit habe ich nach Lösungen gesucht damit ihr nicht denkt das ich nur zu faul bin:
www.google.de/search...mp;btnG=Google-Suche

Ich habe die ersten Seiten durchgesehen und habe nichts funktionierendes gefunden.
Hat jemand einen funktionierenden Code?

MfG,

Stigge
direction4delphi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84

WIN 95, WIN 98, WIN ME, WIN NT, WIN 2000, WIN XP, VISTA
D2 Prof, D4 Prof,D2005 Prof, Delphi4Php
BeitragVerfasst: Sa 29.09.07 00:28 
user profile iconstigge hat folgendes geschrieben:
Hallo,

ich möchte in einem PHP-Skript Strings untersuchen, ob sie andere Zeichen als A-Z, a-z, 0-9 oder _- enthalten. Mit Google habe ich einige Codes gefunden, die aber alle nicht funktionieren wollen warum auch immer.
Hiermit habe ich nach Lösungen gesucht damit ihr nicht denkt das ich nur zu faul bin:
www.google.de/search...mp;btnG=Google-Suche

Ich habe die ersten Seiten durchgesehen und habe nichts funktionierendes gefunden.
Hat jemand einen funktionierenden Code?

MfG,

Stigge



Regular Expressions sind dein Freund (ereg - www.php.net/ereg) oder (preg_match - www.php.net/manual/d...tion.preg-match.php)

Hier sollte alles so erklärt sein das du jede Form des Vorkommens checken kannst.

Gruß
direction

_________________
Warning: dates on calendar are closer than they appear.
r2c2
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Sa 29.09.07 08:48 
preg_replace() oder selber drüber iterieren...

mfg

Christian

_________________
Kaum macht man's richtig, schon klappts!
direction4delphi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84

WIN 95, WIN 98, WIN ME, WIN NT, WIN 2000, WIN XP, VISTA
D2 Prof, D4 Prof,D2005 Prof, Delphi4Php
BeitragVerfasst: Sa 29.09.07 16:34 
user profile iconr2c2 hat folgendes geschrieben:
preg_replace() oder selber drüber iterieren...

mfg

Christian


War ja nicht die Rede davon die Zeichen zu ersetzten, sondern nur zu checken ob diese Vorkommen - aber zum ersetzten - Bestens

Gruß
direction

_________________
Warning: dates on calendar are closer than they appear.
r2c2
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Sa 29.09.07 17:06 
user profile icondirection4delphi hat folgendes geschrieben:

War ja nicht die Rede davon die Zeichen zu ersetzten, sondern nur zu checken ob diese Vorkommen - aber zum ersetzten - Bestens

Tjoa... Ich war ehrlich der Meinung, dass das Ersetzen gesucht war. Deshalb hab ich statt dem schon erwähnten preg_match preg_replace vorgeschlagen... Ich sollte wohl nochmal meine Brille putzen... :oops:

mfg

Christian

_________________
Kaum macht man's richtig, schon klappts!
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 04.10.07 13:48 
Mach dir nix draus. Laut Titel will er sie herausfiltern, was für mich ersetzen gleich kommt ;-).

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Christian V.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 311

Win Xp Prof
Turbo Delphi 2005
BeitragVerfasst: Do 04.10.07 14:17 
Das hier als RegEx verwenden:
/([^a-z\-_0-9]*)/i

Achtung: Umlaute werden so entfernt. Falls du die Umlaute behalten willst:
/([^a-z\-_0-9äöü]*)/i

_________________
Hardware runs the world, software controls the hardware, code generates software - Have You already coded today?
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Sa 06.10.07 11:34 
Sorry das ich solange nicht geantwortet habe.
Nach langem Ausprobieren funktioniert es:
ausblenden Quelltext
1:
2:
if (preg_match('#^[a-z0-9-_]*$#i', $string) == 0)
{echo "nicht ok";}else{ echo "ok";}

Danke für die Hilfe!

P.S.: Ich wollte nur überprüfen ob Sonderzeichen vorkommen, nicht sie ersetzen. Der Titel war echt etwas irreführend, stimmt schon :wink: