SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 10.11.2003, 21:10:41
Fuchs Fuchs ist offline
Junior Member
 
Registriert seit: Jul 2003
Beiträge: 182
Zitat:
Original geschrieben von sourcecode
Immer wieder der gleiche und dumme Fehler!
Du darfst niemals preg_match verwenden, wenn du nach FESTEN Zeichen(ketten) suchst. preg_match ist dafür gedacht, wenn du nach bestimmten Mustern suchst, wo jedes einzelne Zeichen einer (langen) Zeichenkette innerhalb eines bestimmten Bereichs liegen kann. Eine einfache Zeichensuche verbraucht nun mal weniger Resourcen als preg_match.
Achja das waere mir neu. Der Funktins - Name (preg_match) beschreibt doch eigentl. schon genug um deine Behauptung zu verwerfen.

Wie wuerdes du denn nun einen String darauf ueberpruefen das nur bestimmte Zeichen drin vorkommen?
1:
PHP-Code:
if (strspn($input'abc...zABC...Z')) != strlen($input)) {...} 
Hab ich gebenchmarkt und ist immer langsamer wie preg_match()
(Mit diesem sollte dann auch klar sein wie man die for - Schleife vermeiden kann:)

PHP-Code:
if (strcspn($inputimplode(''$checkasii)) != strlen($input)) 
2:
PHP-Code:
if (ctype_alpha($input)) {...} 
ist abhaengig von der php Version. (In verschiedenen Versionen match er auf verschiedene Zeichen)

3:
PHP-Code:
if (preg_match()) ... 
Dabei kann nichts schief gehen. Und unperformant sind preg_* nicht!


Andre

Geändert von Fuchs (10.11.2003 um 21:13:12 Uhr)
Mit Zitat antworten
  #12  
Alt 11.11.2003, 00:22:30
sourcecode sourcecode ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 287
wollte letzlich nur auf eines raus:

Zitat:
Original geschrieben von Fuchs
Immer wieder der gleiche und dumme Fehler!
Du darfst niemals ueberpruefen ob ein unerlaubtes Zeichen in einem String vorkommt sondern du ueberpruefen ob nur erlaubt Zeichen im String vorkommen.[...]Die paar die du da ausschliesst kann jeder trottel umgehen[...]und nicht anders!
Es ist kein Fehler, dass ich die Zeichenkette auf ihre Gültigkeit prüfe, indem ich kontrolliere, ob sie ungültige Zeichen enthält. Wieso darf ich es niemals so prüfen? Nenne mir doch bitte einen Grund dafür! Wie soll denn "jeder Trottel" die Zeichen umgehen, wenn ich sie explizit verbiete? Es gibt 256 Ascii-Zeichen, wenn ich davon jetzt z.B. alle 32 Steuerzeichen, sowie z.B. 20 weitere verbiete, bleiben dem user damit genau 204 verschiedene Zeichen, die gültig sind, nicht mehr und nicht weniger.

Und zu preg_match: Es ist unnötig, wenn ich nicht nach Mustern suche, sondern nach konkreten einzelnen Zeichen (oder Zeichenketten).
Mit Zitat antworten
  #13  
Alt 11.11.2003, 20:07:08
Fuchs Fuchs ist offline
Junior Member
 
Registriert seit: Jul 2003
Beiträge: 182
Zitat:
Original geschrieben von sourcecode
Es ist kein Fehler, dass ich die Zeichenkette auf ihre Gültigkeit prüfe, indem ich kontrolliere, ob sie ungültige Zeichen enthält. Wieso darf ich es niemals so prüfen? Nenne mir doch bitte einen Grund dafür! Wie soll denn "jeder Trottel" die Zeichen umgehen, wenn ich sie explizit verbiete? Es gibt 256 Ascii-Zeichen, wenn ich davon jetzt z.B. alle 32 Steuerzeichen, sowie z.B. 20 weitere verbiete, bleiben dem user damit genau 204 verschiedene Zeichen, die gültig sind, nicht mehr und nicht weniger.
Naja ich gebs solangsam auf. Ich habe eigentl. schon alles gesagt weshalb und wieso.

Zitat:
Und zu preg_match: Es ist unnötig, wenn ich nicht nach Mustern suche, sondern nach konkreten einzelnen Zeichen (oder Zeichenketten).
Genauso wie simple text Dateien Datenbanken (kein DBMS) sind, ist a-z ein Muster. Ein simples, aber es ist eins.

Grus Andre
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:45:12 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt