Leerzeichen in String erkennen
Hallo allerseits,
ich stehe momentan auf dem Schlauch und scheitere an einem ganz einfachen Problem: Ich würde gerne kontrollieren, ob ein String ($greek) zwei Leerzeichen hintereinander enthält.
Folgendes funktioniert aber leider nicht.
function check_space($greek) {
if (preg_match("/[ ]/", $greek)) {
return true;
} else {
return false;
}
}
Was mach ich bei
"/[ ]/" falsch, dass es nicht funktioniert?
Danke im Vorraus,
Gruß,
Üsch
Antwort schreiben
Antwort 1 von Fassy91 vom 01.05.2020, 09:08 Options
mach die
[ ] weg. Das muss so aussehen :
if (preg_match('/ /', $subject)) {
# Successful match
} else {
# Match attempt failed
}
Antwort 2 von Supermax vom 01.05.2020, 10:13 Options
Noch besser ist eventuell
if (preg_match('/\s{2,}/', $subject)) { ...
\s erkennt nicht nur Leerzeichen, sondern auch alles andere, was als Leerzeichen dargestellt wird, z.B. Tabs. Mit {2,} wird festgelegt, daß 2 oder mehr Leerzeichen vorhanden sein müssen.
Antwort 3 von Uesch vom 01.05.2020, 14:40 Options
Vielen Dank erstmal, aber folgendes funktioniert leider nicht:
function check_space($hidden) {
if (preg_match('/\s{2,}/', $hidden)) {
return true;
} else {
return false;
}
}
if(check_space === true) {
echo "Irgendwas";
die();
}
Ist der Code nicht an sich richtig? Weil sonst würde das Problem wohl woanders liegen...
Antwort 4 von son_quatsch vom 02.05.2020, 12:08 Options
if(check_space() == true) {
...muss das heißen - ansonsten hält PHP es für eine Konstante, statt einer Funktion.
Antwort 5 von Uesch vom 02.05.2020, 23:50 Options
Stimmt, vielen Dank!
Antwort 6 von Fassy91 vom 03.05.2020, 08:10 Options
und vorallem gibt das false weil $hidden leer ist
Antwort 7 von Uesch vom 03.05.2020, 11:48 Options
Genau, daran lag das Problem: Erstens war $hidden leer und zweitens durfte es nicht nur check_space() heißen, sondern check_space($greek).