Zur Navigation

function REMOVED in PHP 7.0.0

1 Selo

Hallo,

es wird Zeit für mich den alten php-Code ereg und ereg_replace zu ersetzen.

Nun finde ich Code, von dem ich gar nicht mehr weiß, was das genau bedeutet.

if ((!ereg('.{7,}',$Var)))
Warum war das in einer doppelten Klammer mit Ausrufezeichen? Muss ich da bei der Ersetzung durch preg_match etwas beachten?

Und auch diese beiden:

$variable = preg_replace( "/(oe)/", "ö",$variable); 
$variable = preg_replace( "/(oe)/im", "ö",$variable); 

Wozu steht das hier zwischen zwei Schrägstrichen und einmal noch mit im ?

Das müsste doch auch ausreichend sein?
$variable = preg_replace('(oe)', 'ö',$variable);

Vielen Dank im Voraus für eine Antwort und eine schöne Adventszeit wünscht Euch Lothar

02.12.2018 18:27

2 Jörg Kruse

Warum war das in einer doppelten Klammer mit Ausrufezeichen?

Die äußeren Klammern sind m.E. überflüssig. Das Ausrufezeichen negiert die Bedingung

Wozu steht das hier zwischen zwei Schrägstrichen und einmal noch mit im ?

preg_replace() verwendet die PCRE-Syntax. Die "/" sind die Delimiter, die am Anfang und Ende eines Ausdrucks stehen. Dahinter stehen ggf. noch Modifikatoren. i bedeutet, dass Groß- und Kleinschreibung ignoriert wird und m, dass ^ und $ sich auch auf einen Zeilenumbruch beziehen können.

03.12.2018 00:26 | geändert: 03.12.2018 00:30

3 Selo

Danke Jörg,

nun habe ich wahrscheinlich richtig Murks gemacht, bevor ich Euch um Rat gefragt habe.

Aus
if ((!ereg('.{7,}',$Var)))

habe ich dieses gemacht:
[code]if (preg_match('.{7,}',$Var))

Ich begreife es nun nicht ganz.
Das mit Ausrufezeichen heißt dann, wenn es weniger als 7 Zeichen sind?
Und die Variante ohne Ausrufezeichen, wenn es mehr als 7 Zeichen sind?

Dann muss ich wohl alles neu machen, was das Ausrufezeichen enthalten hatte?

Habe es getestet. Das scheint gar nicht zu funktionieren:
if (preg_match('.{7,}',$Var))
Wie müsste das richtig lauten, damit es nicht weniger als 7 Zeichen sein dürfen?

Ist das so richtig zur Überprüfung der e-Mailadresse?
if (preg_match("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $mail))

04.12.2018 09:48 | geändert: 04.12.2018 10:34

4 Jörg Kruse

Das mit Ausrufezeichen heißt dann, wenn es weniger als 7 Zeichen sind?
Und die Variante ohne Ausrufezeichen, wenn es mehr als 7 Zeichen sind?

Ohne Ausrufezeichen, wenn es 7 oder mehr Zeichen sind. Und abgesehen von den Ausrufezeichen bei Negation müssen auch die Delimiter noch mit rein. Bei weniger als 7 Zeichen:

if (!preg_match('/.{7,}/',$Var))

... und bei 7 Zeichen oder mehr: ohne Ausrufezeichen

Für das reine Messen der Zeichenlänge würden sich ggf. noch mb_strlen() eignen, welches hier performanter wäre, z.B. bei Verwendung von UTF8 als Encoding:

if (mb_strlen($Var, 'utf8') < 7)

04.12.2018 10:15 | geändert: 04.12.2018 10:19

5 Selo

Dankeschön Jörg,

Ist das so richtig zur Überprüfung der e-Mailadresse??
if (preg_match("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $mail))

04.12.2018 10:43

6 Jörg Kruse

Da fehlen vorne und hinten auch noch die Delimiter:

if (preg_match("/^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$/", $mail))

04.12.2018 11:35

7 Selo

Hallo Jörg,

vielen Dank. Ich glaube, ohne Dich und Dein Forum hätte ich wohl keine Internetseiten mehr.

Ich bedanke mich recht herzlich und wünsche Dir und allen Hilfesuchenden hier eine schöne Adventszeit.

Viele Grüße von Lothar

04.12.2018 11:43

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]