- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 02-11-2001, 23:18
Argus
 Newbie
Links : Onlinestatus : Argus ist offline
Registriert seit: Oct 2001
Beiträge: 26
Argus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

Ich möchte mit nem ereg herausfinden ob in einer Variable Sonderzeichen enthalten sind... gibt es da eine globale Definition für?
Also für alle kleinen Buchstaben kann ich ja [a-z] schreiben. Gibts sowas auch für Sonderzeichen?

Thx schoma
Mit Zitat antworten
  #2 (permalink)  
Alt 02-11-2001, 23:47
JoelH
 Registrierter Benutzer
Links : Onlinestatus : JoelH ist offline
Registriert seit: Jul 2001
Beiträge: 2.740
JoelH ist zur Zeit noch ein unbeschriebenes Blatt
Standard hmm,

was sind für dich denn alles Sonderzeichen ?
Mit Zitat antworten
  #3 (permalink)  
Alt 03-11-2001, 00:02
Argus
 Newbie
Links : Onlinestatus : Argus ist offline
Registriert seit: Oct 2001
Beiträge: 26
Argus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

In diesem Fall alles bis auf die Buchstaben und die Zahlen
Mit Zitat antworten
  #4 (permalink)  
Alt 03-11-2001, 00:05
JoelH
 Registrierter Benutzer
Links : Onlinestatus : JoelH ist offline
Registriert seit: Jul 2001
Beiträge: 2.740
JoelH ist zur Zeit noch ein unbeschriebenes Blatt
Standard hmm,

in diesem Fall würde ich auf Buchstaben und Zahlen testen , geht wohl einfacher
Mit Zitat antworten
  #5 (permalink)  
Alt 03-11-2001, 00:14
Argus
 Newbie
Links : Onlinestatus : Argus ist offline
Registriert seit: Oct 2001
Beiträge: 26
Argus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja klar aber wenn ich jetzt ereg("[a-zA-Z0-9]", $var); eintippe, dann guckt er ja ob mind. einmal eins von den zulässigen Werten eingetippt wurde. Es soll aber nur aus Buchstaben und Zahlen bestehen... wie mach ich dann das?
Das ist ja das Problem... bzw. das ist das Problem, wenns nich andersrum geht .ähh.. ja also wie sag ich ihm, das er nur true zurückgeben soll, wenn ALLE Zeichen Buchstaben/Zahlen sind.

Thhxxxxx
Mit Zitat antworten
  #6 (permalink)  
Alt 03-11-2001, 00:45
JoelH
 Registrierter Benutzer
Links : Onlinestatus : JoelH ist offline
Registriert seit: Jul 2001
Beiträge: 2.740
JoelH ist zur Zeit noch ein unbeschriebenes Blatt
Standard hmm,

iss ja nicht gerade meine domäne aber versuchen kann man es ja mal, also ich würd so an die Sache rangehen :

$true = preg_match("|[a-zA-Z0-9].*|",$durchsuchstring)

natürlich sind meine regExp. wie imemr ohne garantie !!
Mit Zitat antworten
  #7 (permalink)  
Alt 03-11-2001, 01:33
smeagol
 Newbie
Links : Onlinestatus : smeagol ist offline
Registriert seit: May 2001
Beiträge: 141
smeagol ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also wenn du nach .* suchst, gibt er true bei jedem beliebigen Zeichen aus.
Verbesserungsvorschlag:

$true = preg_match("|^[a-zA-Z0-9]+$|",$durchsuchstring);

Was passiert da drin?
"|^[a-zA-Z0-9]+$|" zeigen ihm, dass das Muster von Anfagn bis Ende der zu durchsuchenden Zeichenkette stehen muss.
("|^[a-zA-Z0-9]+$|" sagt ihm, das Muster ist gültig wenn die links stehende Zeichenklasse mindestens einmal oder mehrmals auftaucht.
Dadurch verhindert man, dass die $true wahr ist, wenn die zu testende Variable komplett leer ist (dann kann er ja kein Zeichen finden).


Mit Zitat antworten
  #8 (permalink)  
Alt 03-11-2001, 02:13
JoelH
 Registrierter Benutzer
Links : Onlinestatus : JoelH ist offline
Registriert seit: Jul 2001
Beiträge: 2.740
JoelH ist zur Zeit noch ein unbeschriebenes Blatt
Standard hmm,

dies stimmt so aber nicht .* bedeutet das der [] Ausdrück belieb lang sein kann, nicht mehr und nicht weniger
Mit Zitat antworten
  #9 (permalink)  
Alt 03-11-2001, 20:26
smeagol
 Newbie
Links : Onlinestatus : smeagol ist offline
Registriert seit: May 2001
Beiträge: 141
smeagol ist zur Zeit noch ein unbeschriebenes Blatt
Standard Du irrst

Betrachte mal folgendes Beispiel, um deine Aussage zu überprüfen:

$durchsuchstring = "aa";

$true = preg_match("|[a].*|",$durchsuchstring);
echo $true;

Er sollte "1" (also wahr) ausgeben.
Schön und gut.

Probieren wir mal $durchsuchstring = "a";
Und danach $durchsuchstring = "aaaaaaaaaaaaaaaaa";
Gibt immer wieder "1" aus. Prima?

Und dann probieren wir $durchsuchstring = "ab";
Hmm. Da gibt er doch schon wieder "1" aus. Aber es steht doch gar kein "b" in der RegExp? Warum macht er das? Kannst es wahlweise auch mit "a%", "a{wzw§$%~§%" probieren, es ist immer wahr.

Lösung: "." steht für ein beliebiges Zeichen. Und "*" ist nichts anderes als ein Quantifier, der mir sagt: Kein- oder mehrmals folgt der links davon stehende Ausdruck (egal ob Gruppe, Zeichenklasse oder einzelnes Zeichen).
Um die beliebige Länge festzustellen entweder die geschweiften Klammern nehmen ({1, }) oder einfach nur das *.
Mit Zitat antworten
  #10 (permalink)  
Alt 05-11-2001, 23:07
Titus
 PHP Master
Links : Onlinestatus : Titus ist offline
Registriert seit: Jan 2001
Ort: im Rodgau
Beiträge: 4.292
Titus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

if (ereg('^[0-9a-zA-Z]*$', $string)) echo "'$string' enthält keine Sonderzeichen.";

Willst du, dass mindestens ein Zeichen enthalten sein soll, dann mach aus dem Sternchen (*) ein Plus (+).
__________________
mein Sport: mein Frühstück: meine Arbeit:

Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:47 Uhr.