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 ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. 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 für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.05.2003, 19:37:47
Willy Willy ist offline
Anfänger
 
Registriert seit: Nov 2002
Beiträge: 63
Prüfen, zahl bzw. buchstabe in EINER VARIABLEN

Hallo, wie kann ich prüfen, ob bei einer Variablen (Im format A1, oder D11, oder so) der 1. Buchstabe zwischen A-F und die Zahl zwischen 1 und 11 ist? In der Variablen ist KEIN Leerzeichen vorhanden. Geht das ? danke vielmals

willy
__________________
MFG: Willy
-----------------------------------------
Zuerst der Spass und dann das Vergnügen

Mit Zitat antworten
  #2  
Alt 16.05.2003, 21:10:13
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Klaro geht das.

Kleine Ideensammlung:
Prüfen, ob Variable eine Zahl ist (is_numeric).
- wenn ja, dann kein Buchstabe vorhanden -> Fehleingabe
- wenn nicht, dann $buchstabe=$variable[0]; (erstes Zeichen zu $buchstabe) unset($variable[0]); (erstes Zeichen entfernen) und $zahl=$variable; (Rest als Zahl betrachten)

Kannst auch mit substr() arbeiten.

Alles klarofix?
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 16.05.2003, 21:19:13
overclocker overclocker ist offline
Junior Member
 
Registriert seit: May 2002
Beiträge: 179
Ich hab jetzt ehr an ne regular expression gedacht..
PHP-Code:
$var "D11";
$search ereg("^[A-F][0-9][0|1]?$",$var);
     if(
$search){
         echo 
"Gefunden!";
     }else{
         echo 
"Nicht gefunden!";
     } 
Es wird nach in $var gesucht, ob es mit einem Großbuchstamen von A-F beginnt, mit einer Zahl von 0-9 "weitergeht" und ob an der dritten Stelle vielleicht noch eine 0 oder eine 1 vorkommt.

Also dann..
Mit Zitat antworten
  #4  
Alt 16.05.2003, 21:21:22
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Wenn möglich, dann vermeidet man reguläre Ausdrücke. Solche Ausdrücke sind zwar fast alles, aber nicht schnell!
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 16.05.2003, 21:24:37
overclocker overclocker ist offline
Junior Member
 
Registriert seit: May 2002
Beiträge: 179
ja, das weiß ich, aber so ein kleines suchmuster wird die performance doch nicht sooo arg runterziehen oder ?
Mit Zitat antworten
  #6  
Alt 16.05.2003, 21:26:46
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Weiß nicht. Wäre mal ein Benchmark wert: Eine Suchabfrage mit simplen Stringfunktionen und ein regulärer Ausdruck.
Ma schaun. Wenn mir mal wieder langweilig sein sollte. Heute nicht mehr...

Wie auch immer: Ich bleibe dabei - reg. Expr. nur, wenn wirklich nötig.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #7  
Alt 16.05.2003, 21:41:21
overclocker overclocker ist offline
Junior Member
 
Registriert seit: May 2002
Beiträge: 179
Jo.. natürlich bin ich auch nicht der Hardcore Regex User ;)
Aber hier kam mir spontan Regex ins Gedächtnis..

Ich hab nen "Benchmark" gemacht und mit Regex brauchts
ca. 0.0002 sek. (der Wert ändert sich gar nicht, egal was ich eingebe ;)).
PHP-Code:
<?php
     
function getmicrotime(){
     list(
$usec,$sec) = explode(" ",microtime());
     return ((float)
$usec + (float)$sec);
     }
     
$time_start getmicrotime();
     
//
     
$search ereg("^[A-F][0-9][0|1]?$",$var);
     if(
$search){
         echo 
"Gefunden!";
     }else{
         echo 
"Nichts gefunden!";
     }
     
//
     
$time_end getmicrotime();
     
$time_difference $time_end $time_start;
     
$time_rounded round($time_difference,4);
     echo 
"<br>";
     echo 
$time_rounded;
?>
alles auf win xp auf nem athlon 1,2 ghz und 512 mb sd-ram

Poste deinen Vorschlag und ich werd's bei mir testen ;)
Würde mich nämlich echt interessieren, ob der Unterschied groß ist.

cu
Mit Zitat antworten
  #8  
Alt 16.05.2003, 21:52:10
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Klatsch das mal rein:
PHP-Code:
 $var='D11'$hex=array('A','B','C','D','E','F');
 if (
in_array(substr($var,0,1),$hex) && is_numeric(substr($var,1,2)))
  echo 
'Gefindet.';
 else
  echo 
'Gefindet ni.'
Solche Messungen führt man übrigens mehrere Male durch -> statistische Abweichung.


Hab mal einen alten Benchmark umgeschrieben:
PHP-Code:
<?php
set_time_limit
(0);

$var='D11'$hex=array('A','B','C','D','E','F');
$count_f=0;
for (
$i=0$i<1000$i++)
 {
  
$start=microtime();
  if (
in_array(substr($var,0,1),$hex) && is_numeric(substr($var,1,2)))
   echo 
'Gefindet.<br>';
  else
   echo 
'Gefindet ni.<br>';
  
$count_f+=microtime()-$start;
 }

$count_w=0;
for (
$i=0$i<1000$i++)
 {
  
$start=microtime();
  
$search ereg("^[A-F][0-9][0|1]?$",$var);
  if(
$search)
   echo 
"Gefunden!<br>";
  else
   echo 
"Nichts gefunden!<br>";
  
$count_w+=microtime()-$start;
 }

echo 
"<br><br>";
echo 
"Durchschnitt 1: ".($count_f/1000)."<br>n";
echo 
"Durchschnitt 2: ".($count_w/1000)."<br>n";
echo 
"<br><br><b>Fertig.</b>";
exit;
?>
Da wechselt der Gewinner immer mal. Statistik halt.
__________________
sic!
--> http://dbCF.de/

Geändert von ­c­4­ (16.05.2003 um 21:56:43 Uhr)
Mit Zitat antworten
  #9  
Alt 16.05.2003, 22:13:08
overclocker overclocker ist offline
Junior Member
 
Registriert seit: May 2002
Beiträge: 179
ok, hab dein komplettes Skript übernommen:

1 Durchlauf:
Durchschnitt 1: 2.7191E-005
Durchschnitt 2: 2.6151E-005

2 Durchlauf:
Durchschnitt 1: 5.337E-005
Durchschnitt 2: 2.8938E-005

3 Durchlauf:
Durchschnitt 1: 2.8677E-005
Durchschnitt 2: 3.1513E-005

4 Durchlauf:
Durchschnitt 1: 3.1417E-005
Durchschnitt 2: 2.5938E-005

5 Durchlauf:
Durchschnitt 1: 2.8465E-005
Durchschnitt 2: 3.5404E-005

6 Durchlauf:
Durchschnitt 1: 3.3862E-005
Durchschnitt 2: 3.0071E-005

OK, so läufts bei mir..
im Übrigen weiß ich auch, dass Benchmarks öfters durchgeführt werden.. denke nicht, dass ich ein absoluter Anfänger in der Computerwelt bin, nur weil ich nicht 900 posts hab.
Mit Zitat antworten
  #10  
Alt 17.05.2003, 07:35:56
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Also kann man sagen, dass es bei dem Beispiel egal ist, ob manreg. Exp. oder Stringfunktionen nimmt. Letztere werde ich aber trotzdem bevorzugen. :)


Zitat:
im Übrigen weiß ich auch, dass Benchmarks öfters durchgeführt werden.. denke nicht, dass ich ein absoluter Anfänger in der Computerwelt bin, nur weil ich nicht 900 posts hab
Locker bleiben! War doch nur ein Satz. Ich wollte nicht zum Ausdruck bringen, dass ich Dich belehren muss, nur weil ich mehr Posts habe. Geklärt? Gut. Danke.
__________________
sic!
--> http://dbCF.de/
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 04:18:42 Uhr.


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


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