Der folgende Beitrag wurde am 25. 06. 2005, 18:51 Uhr von joker veröffentlicht.
hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
kann mir da einer helfen?
(mit regulären Ausdrücken kenn ich mich nich t gut aus)
mfg joker
Der folgende Beitrag wurde am 25. 06. 2005, 18:56 Uhr von Alexander Brock veröffentlicht.
Hallo joker,
> hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
> kann mir da einer helfen?
/^[a-z]*$/
Gruß
Alexander Brock
--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }
Der folgende Beitrag wurde am 25. 06. 2005, 18:57 Uhr von Ashura veröffentlicht.
Hallo joker.
> hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
> kann mir da einer helfen?
Sicher. Welche Buchstaben sollen alles enthalten sein?
Ich vermute A-Z, a-z, äöü ß.
> (mit regulären Ausdrücken kenn ich mich nich t gut aus)
Da wirst du hier aber nicht umhin kommen.
Eine sehr gute Einleitung zum Thema RegEx gibt es hier: http://pcre.nophia.de/intro/index.php
Gruß, Ashura
--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 19: Notes
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]
Der folgende Beitrag wurde am 25. 06. 2005, 18:57 Uhr von Kermit veröffentlicht.
> hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
> kann mir da einer helfen?
>
> (mit regulären Ausdrücken kenn ich mich nich t gut aus)
if (preg_match("/^[a-z]*$/", $blub) == 1) echo "nur Buchstaben";
Der folgende Beitrag wurde am 26. 06. 2005, 12:00 Uhr von Siechfred veröffentlicht.
Tag joker.
> hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
Ich nehme an, dass dein String neben Groß- und Kleinbuchstaben auch Umlaute und das Eszett enthalten darf und wenigstens 1 Zeichen lang sein muss. Dann würde das Muster so aussehen:$muster = "/^[A-Za-zäöüÄÖÜß]+$/";
Die allgemeine Syntax regulärer Ausdrücke kannst du hier nachlesen:
http://de.selfhtml.org/perl/sprache/regexpr.htm, die PHP-Spezifika sind hier beschrieben: http://de.php.net/manual/de/reference.pcre.pattern.syntax.php.
Siechfred
--
Früh übt sich ... (74kB)
Der folgende Beitrag wurde am 27. 06. 2005, 08:55 Uhr von Cybaer veröffentlicht.
Hi,
> hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
ctype_lower(), ctype_alpha(), ctype_print(), ...
> (mit regulären Ausdrücken kenn ich mich nich t gut aus)
Die sind hier i.d.R. auch gar nicht notwendig.
Gruß, Cybaer
--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
Der folgende Beitrag wurde am 27. 06. 2005, 10:52 Uhr von Siechfred veröffentlicht.
Tag Cybaer.
> ctype_lower(), ctype_alpha(), ctype_print(), ...
> > (mit regulären Ausdrücken kenn ich mich nich t gut aus)
> Die sind hier i.d.R. auch gar nicht notwendig.
Was ist mit Umlauten und dem Eszett bei o.g. Funktionen? Wäre da ein RegExp nicht die sicherere Variante?
Siechfred
--
Früh übt sich ... (74kB)
Der folgende Beitrag wurde am 27. 06. 2005, 11:47 Uhr von Cybaer veröffentlicht.
Hi,
> Was ist mit Umlauten und dem Eszett bei o.g. Funktionen?
Was soll damit sein? Werden auf Wunsch berücksichtigt. Auf Wunsch auch nicht.
> Wäre da ein RegExp nicht die sicherere Variante?
Das kann nur der OP beantworten - schließlich wird *er* eine Aufgabenstellung vor Augen haben (die wir ohnehin nicht kennen).
Auf jeden Fall aber gibt es bereits eine Funktion in PHP die, wie erfragt, "nur a-z" erkennt. Für *darüberhinausgehende* Vorschläge wird aber sicherlich jeder offen sein - sicherlich auch wenn sie erstmal komplizierter sind. ;-)
Aber tröstlicherweise kann man auch mit ctype... komplexere Aufgaben erledigen. Z.B. das Zuweisen der Buchstaben zu einer Sprache. Das dürfte mit RegExp wohl nur mit aufwendigen Tabellen gelingen.
Und so gesehen ist ctype... den RegExp bei solcherlei Aufgabenstellungen in jeder Hinsicht überlegen ...
Gruß, Cybaer
--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
Der folgende Beitrag wurde am 27. 06. 2005, 11:52 Uhr von Cybaer veröffentlicht.
Hi,
> Z.B. das Zuweisen der Buchstaben zu einer Sprache.
Ähm, nicht "Sprache", Zeichensatz natürlich. =;-)
Gruß, Cybaer
--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
Der folgende Beitrag wurde am 27. 06. 2005, 11:57 Uhr von Daniel veröffentlicht.
Hi,
> Und so gesehen ist ctype... den RegExp bei solcherlei Aufgabenstellungen in jeder Hinsicht überlegen ...
und ein link kommt immer gut.
http://de3.php.net/manual/de/ref.ctype.php
MfG
Der folgende Beitrag wurde am 27. 06. 2005, 16:42 Uhr von Siechfred veröffentlicht.
Tag Cybaer.
> > Was ist mit Umlauten und dem Eszett bei o.g. Funktionen?
> Was soll damit sein? Werden auf Wunsch berücksichtigt. Auf Wunsch auch nicht.
Aha, und wie äußere ich meinen Wunsch in PHP?
> Aber tröstlicherweise kann man auch mit ctype... komplexere Aufgaben erledigen. Z.B. das Zuweisen der Buchstaben zu einer Sprache. Das dürfte mit RegExp wohl nur mit aufwendigen Tabellen gelingen.
Hm, ist das bezogen auf die Fragestellung denn erforderlich?
> Und so gesehen ist ctype... den RegExp bei solcherlei Aufgabenstellungen in jeder Hinsicht überlegen ...
Da wage ich als PHP-Laie nicht zu widersprechen :-)
Siechfred
--
Früh übt sich ... (74kB)
Der folgende Beitrag wurde am 28. 06. 2005, 09:36 Uhr von Cybaer veröffentlicht.
Hi,
> Aha, und wie äußere ich meinen Wunsch in PHP?
Indem Du mittels setlocale() den Zeichensatz deiner Wahl einstellst.
> Hm, ist das bezogen auf die Fragestellung denn erforderlich?
Keineswegs. War eine rein prinzipielle Anmerkung, daß man kann, wenn man einfache Funktionen nicht mag und auf "komplexe" Programmierung steht. ;-)
Gruß, Cybaer
--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
Der folgende Beitrag wurde am 28. 06. 2005, 09:44 Uhr von Siechfred veröffentlicht.
Tag Cybaer.
> Indem Du mittels setlocale() den Zeichensatz deiner Wahl einstellst.
Naja, irgendwie komme ich mit der Doku zu setlocale noch nicht so recht klar. Gibt es vordefinierte Strings, derer ich mich beim Einstellen des Zeichensatzes bedienen kann (ich gehe mal davon aus) und wo finde ich die?
Siechfred
--
Früh übt sich ... (74kB)
Der folgende Beitrag wurde am 28. 06. 2005, 09:54 Uhr von Ashura veröffentlicht.
>> puts "Hallo " + gets.chomp + "."
?> Siechfred
=> Hallo Siechfred.
> Naja, irgendwie komme ich mit der Doku zu setlocale noch nicht so recht klar. Gibt es vordefinierte Strings, derer ich mich beim Einstellen des Zeichensatzes bedienen kann (ich gehe mal davon aus) und wo finde ich die?
In den Beispielcodes der Userkommentare.
Gruß, Ashura
--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 19: Notes
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]
Der folgende Beitrag wurde am 28. 06. 2005, 11:00 Uhr von Siechfred veröffentlicht.
Tag Ashura.
> > Gibt es vordefinierte Strings, derer ich mich beim Einstellen des Zeichensatzes bedienen kann (ich gehe mal davon aus) und wo finde ich die?
> In den Beispielcodes der Userkommentare.
Die Userkommentare habe ich schon vorher mal überflogen, aber das ist mir zu dünn. Der eine sagt: "Nimm dies", der nächste sagt "Dies funktioniert hier unter OS Xyz nicht, nimm besser das". Irgendwo muss es doch eine offizielle[tm] Quelle für diese Strings geben, ggf. mit Versionsnummer und Angaben zur Kompatibilität, oder?
Siechfred
--
Früh übt sich ... (74kB)
Der folgende Beitrag wurde am 28. 06. 2005, 11:03 Uhr von Christian Kruse veröffentlicht.
你好 Siechfred,
> Die Userkommentare habe ich schon vorher mal überflogen, aber das ist mir
> zu dünn. Der eine sagt: "Nimm dies", der nächste sagt "Dies funktioniert
> hier unter OS Xyz nicht, nimm besser das". Irgendwo muss es doch eine
> offizielle[tm] Quelle für diese Strings geben, ggf. mit Versionsnummer und
> Angaben zur Kompatibilität, oder?
Nein. Denn jeder Administrator kann die Locales benennen, wie er lustig ist.
Deshalb macht man sowas konfigurierbar.
再见,
克里斯蒂安
--
Wenn der Schüler bereit ist, erscheint der Meister.
http://wwwtech.de/
Der folgende Beitrag wurde am 28. 06. 2005, 11:11 Uhr von Siechfred veröffentlicht.
Tag Christian.
> Denn jeder Administrator kann die Locales benennen, wie er lustig ist.
Hm, ich benenne eine Locale also 'blablubb' und setze sie mittels setlocale, soweit richtig? Ansonsten verlasse ich mich darauf, dass der Administrator bei der Benamsung seiner Locales die Userkommentare auf php.net gelesen hat, oder?
> Deshalb macht man sowas konfigurierbar.
Irgendwie habe ich gerade ein massives Verständnisproblem (es ist einfach zu warm für Leute meines Alters ...). Ich vergebe für eine Locale einen Namen, gut. Ich möchte diese Locale verwenden, dazu nehme ich setlocale, auch klar (denke ich). Gibt es nun aber standardisierte Locales, die ich verwenden kann, oder muss ich PHP raten lassen, indem ich ihm ein Array möglicher Locales übergebe in der Hoffnung, dass eine davon passt?
Siechfred
--
Früh übt sich ... (74kB)
Der folgende Beitrag wurde am 28. 06. 2005, 11:17 Uhr von Christian Kruse veröffentlicht.
你好 Siechfred,
> > Denn jeder Administrator kann die Locales benennen, wie er lustig ist.
>
> Hm, ich benenne eine Locale also 'blablubb' und setze sie mittels
> setlocale, soweit richtig?
Nicht du, sondern der Administrator des Servers.
> Ansonsten verlasse ich mich darauf, dass der Administrator bei der
> Benamsung seiner Locales die Userkommentare auf php.net gelesen hat, oder?
Nein, du verlässt dich drauf, dass der Administrator die Standard-Namen
belässt :)
> > Deshalb macht man sowas konfigurierbar.
>
> Irgendwie habe ich gerade ein massives Verständnisproblem (es ist einfach
> zu warm für Leute meines Alters ...). Ich vergebe für eine Locale einen
> Namen, gut.
Nein, nicht du, sondern der Administrator.
> Ich möchte diese Locale verwenden, dazu nehme ich setlocale, auch klar
> (denke ich).
Jupp.
> Gibt es nun aber standardisierte Locales, die ich verwenden kann, oder
> muss ich PHP raten lassen, indem ich ihm ein Array möglicher Locales
> übergebe in der Hoffnung, dass eine davon passt?
Weder, noch. Du schaust nach, welche Locales es gibt (locale -a) und
stellst das richtige in der Konfiguration der Software ein.
再见,
克里斯蒂安
--
Sich erinnern bedeutet, aus einer Erfahrung nicht ausreichend gelernt zu haben.
http://wwwtech.de/
Der folgende Beitrag wurde am 28. 06. 2005, 11:51 Uhr von Siechfred veröffentlicht.
Tag Christian.
> Du schaust nach, welche Locales es gibt (locale -a) und stellst das richtige in der Konfiguration der Software ein.
Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es nicht standardisiert ist? Muss ich mich dann doch darauf verlassen, dass es eine passend benannte Locale gibt? Und kann man sich bei einer Software dann überhaupt darauf verlassen, dass es eine passende Locale auf dem Zielsystem gibt? Angenommen, ich mache es so, wie es in den Userkommentaren steht, dann komme ich doch um eine Alternative nicht herum:$input = $_POST['Nachname'];
$input_OK = False;
if(setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de-DE', 'de', 'ge', 'de_DE.ISO_8859-1', 'German')) {
if(ctype_alpha($input)) {
$input_OK = True;
}
}
else {
if(preg_match("/^[a-zA-ZäöüÄÖÜß-]+$/", $input)) {
$input_OK = True;
}
}
if(!$input_OK) {
echo "Der Nachname enthält unzulässige Zeichen.";
}
So, wo ist nun der Sinn von ctype_alpha in diesem Zusammenhang, ich kann $input doch gleich nur mit preg_match testen (das war ja der Ursprung dieses Threadzweigs).
Siechfred
--
Früh übt sich ... (74kB)
Der folgende Beitrag wurde am 28. 06. 2005, 11:59 Uhr von Christian Kruse veröffentlicht.
你好 Siechfred,
> > Du schaust nach, welche Locales es gibt (locale -a) und stellst das
> > richtige in der Konfiguration der Software ein.
>
> Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es nicht
> standardisiert ist?
Nachgucken :) man locale, man localedef
> Und kann man sich bei einer Software dann überhaupt darauf verlassen,
> dass es eine passende Locale auf dem Zielsystem gibt?
Wenn nicht, muss der Administrator halt ein entsprechendes Locale
einrichten.
> Angenommen, ich mache es so, wie es in den Userkommentaren steht, [...]
Das macht man auch nicht -- wie gesagt, sowas hält man konfigurierbar.
> So, wo ist nun der Sinn von ctype_alpha in diesem Zusammenhang, ich kann
> $input doch gleich nur mit preg_match testen (das war ja der Ursprung
> dieses Threadzweigs).
preg_match() verhält sich, abhängig vom locale, auch anders. i-Flag, \l,
\L, \u, \U, \w, \W, \s, \S, \d, \D, nur um mal einige zu nennen.
再见,
克里斯蒂安
--
Mensch zu Mathematiker: "Ich finde Ihre Arbeit ziemlich monoton". Mathematiker: "Mag sein! Dafür ist sie aber stetig und unbeschränkt."
http://wwwtech.de/
Der folgende Beitrag wurde am 28. 06. 2005, 12:16 Uhr von Siechfred veröffentlicht.
Tag Christian.
> > Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es nicht
> > standardisiert ist?
> Nachgucken :) man locale, man localedef
Geht nicht, da kommt immer "Der Befehl 'man' ist entweder falsch geschrieben oder konnte nicht gefunden werden." *fg* Nee, im Ernst, ich mag mir nicht PHP installieren, nur um diese zwei manuals lesen zu können, gibt's die auch irgendwo anders zu bestaunen, oder ist ihr Inhalt gar gleich dem auf php.net?
> > Angenommen, ich mache es so, wie es in den Userkommentaren steht, [...]
> Das macht man auch nicht -- wie gesagt, sowas hält man konfigurierbar.
Du meinst, dass der User vor Softwareinstallation beim Administrator den Namen der Locale für deutsch erfragt, dies dann (wie auch immer) in einer Konfiguration hinterlegt, sodass sich das Skript diesen String dann aus der Konfiguration holen kann?
> preg_match() verhält sich, abhängig vom locale, auch anders. i-Flag, \l,
> \L, \u, \U, \w, \W, \s, \S, \d, \D, nur um mal einige zu nennen.
Ja, bekannt. Aber ich wollte ja keine der Zeichenklassen verwenden ;-)
Verstehe ich dich also richtig, dass man bei umfangreichen PHP-Projekten zunächst die (das?) zutreffende Locale (ggf. durch den Anwender) erfragen lässt und dann setzt?
Siechfred
--
Früh übt sich ... (74kB)
Der folgende Beitrag wurde am 28. 06. 2005, 12:21 Uhr von Christian Kruse veröffentlicht.
你好 Siechfred,
> > > Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es
> > > nicht standardisiert ist?
> > Nachgucken :) man locale, man localedef
>
> Geht nicht, da kommt immer "Der Befehl 'man' ist entweder falsch
> geschrieben oder konnte nicht gefunden werden." *fg* Nee, im Ernst, ich
> mag mir nicht PHP installieren, nur um diese zwei manuals lesen zu
> können, gibt's die auch irgendwo anders zu bestaunen, oder ist ihr Inhalt
> gar gleich dem auf php.net?
Mit PHP hat das gar nichts zu tun. Aber Manpages kannst du auch im
Indernett einsehen, z. B. hier:
http://www.die.net/doc/linux/man/
locale(1)
locale(3)
locale(7)
localeconv(3)
localedef(1)
> > > Angenommen, ich mache es so, wie es in den Userkommentaren steht, [...]
> > Das macht man auch nicht -- wie gesagt, sowas hält man konfigurierbar.
>
> Du meinst, dass der User vor Softwareinstallation beim Administrator den
> Namen der Locale für deutsch erfragt, dies dann (wie auch immer) in einer
> Konfiguration hinterlegt, sodass sich das Skript diesen String dann aus
> der Konfiguration holen kann?
Korrekt. Wobei ein locale noch einiges mehr an Infos enthält als nur die
Sprache.
> > preg_match() verhält sich, abhängig vom locale, auch anders. i-Flag, \l,
> > \L, \u, \U, \w, \W, \s, \S, \d, \D, nur um mal einige zu nennen.
>
> Ja, bekannt. Aber ich wollte ja keine der Zeichenklassen verwenden ;-)
Solltest du aber :)
> Verstehe ich dich also richtig, dass man bei umfangreichen PHP-Projekten
> zunächst die (das?) zutreffende Locale (ggf. durch den Anwender) erfragen
> lässt und dann setzt?
Ja, der Installateur trägt das (sic! ;-) richtige Locale in die
Konfiguration ein. Wenn er es nicht weiss, muss er halt beim
System-Administrator nachfragen.
再见,
克里斯蒂安
--
Ihr wisst nicht, wie man den Menschen dient. Wie sollt ihr wissen, wie man den Goettern dienen soll?
http://wwwtech.de/
Der folgende Beitrag wurde am 29. 06. 2005, 09:51 Uhr von Cybaer veröffentlicht.
Hi,
> Geht nicht, da kommt immer "Der Befehl 'man' ist entweder falsch geschrieben oder konnte nicht gefunden werden."
man ist der Kommandozeilenbefehl um in unixoiden Shells die Manual Pages aufzurufen (also das, was bei Windows die Hilfe ist - na ja, sinngemäß ;-)).
Demzufolge müßtest Du in PHP, vorausgesetzt dein Provider arbeitet mit Unix/Linux, diese Kommandozeilenbefehle wie üblich mit exec() & Co. aufrufen.
> Ja, bekannt. Aber ich wollte ja keine der Zeichenklassen verwenden ;-)
Wenig sinnvoll. Um bei den äöü zu bleiben: Warum sind diese erlaubt? Wenn sie erlaubt sind, was ist dann mit àé etc.? Sind die nicht erlaubt? Wenn man alle diese Zeichen jenseits von a-z umfassen will, dann wird das Erstellen entsprechenden manuellen RegExp-Liste halt zur Qual ... ;-)
Gruß, Cybaer
--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4