preg_match mit einer Variablen funktioniert nicht
Mike©
- php
0 seth0 Mike©0 Johannes Zeller1 Axel
Moin @ ALL,
ich stehe gerade auf dem Schlauch :-(
Die Variable $Second enthält den Wert "Name"
Wenn ich nun im Programm folgendes schreibe:
if ( preg_match('/$Second/i', $kids_array[$x] ) )
dann wird nichts gefunden. Schreibe ich aber hardcoded:
if ( preg_match('/Name/i', $kids_array[$x] ) )
dann wird etwas gefunden.
Was ist an if ( preg_match('/$Second/i', $kids_array[$x] ) )
falsch?
regds
Mike©
gudn tach!
Die Variable $Second enthält den Wert "Name"
Wenn ich nun im Programm folgendes schreibe:if ( preg_match('/$Second/i', $kids_array[$x] ) )
dann wird nichts gefunden.
das php-manual wird dir weiterhelfen. schau dir die unterschiede "single quoted" und "double quoted" mal genauer an.
prost
seth
Moin seth,
php-manual wird dir weiterhelfen. schau dir die unterschiede "single quoted" und "double quoted" mal genauer an.
ich sehe den Wald vor lauter Bäumen nicht mehr.
Auch das: if ( preg_match("/$Second/i", $kids_array[$x] ) )
liefert kein Ergebnis :-(
regds
Mike©
Hallo Mike,
ich sehe den Wald vor lauter Bäumen nicht mehr.
Auch das: if ( preg_match("/$Second/i", $kids_array[$x] ) )
Bist du dir sicher, dass in $Second auch genau das steht, was du haben willst?
Schöne Grüße,
Johannes
Moin Johannes,
Bist du dir sicher, dass in $Second auch genau das steht, was du haben willst?
ich werde das näher prüfen. ggfls. mit trim()
regds
Mike©
Moin Johannes und Seth,
Bist du dir sicher, dass in $Second auch genau das steht, was du haben willst?
2 Dinge waren zielführend.
zum Ersten:
anstatt
if ( preg_match('/$Second/i', $kids_array[$x]) )
das hier
if ( preg_match("/$Second/i", $kids_array[$x]) )
zum Zweiten:
stand in der Variable nicht: "Name"
sondern " Name "
Hier hat dann das trim() geholfen.
Ich danke Euch. Problem gelöst :-)
regds
Mike©
Hallo Mike,
nur so nebenbei als Tip (vielleicht läufts damit auch) ein Zitat aus dem PHP Manual.
Tipp: Verwenden Sie nicht preg_match(), wenn Sie nur überprüfen wollen, ob eine Zeichenkette in einer anderen Zeichenkette enthalten ist. Verwenden Sie dafür stattdessen die Funktionen strpos() oder strstr(), die das schneller erledigen.
Oder eben stripos() wenn die Groß- und Kleinschreibung ignoriert werden soll.
Also:
if ( stripos($Second, $kids_array[$x] ) )
Schöne Grüße
Axel
echo $begrüßung;
if ( stripos($Second, $kids_array[$x] ) )
Das ist nur die Hälfte der Wahrheit. Wenn der gesuchte String am Anfang des Suchstrings vorkommt, gibt die Funktion die Position 0 zurück, welches durch PHPs impliziten Typecast zu false wird und die if-Bedingung nicht mehr erfüllt.
if (stripos($Second, $kids_array[$x]) === true)
Und das steht auch in groß und eingerahmt auf der Handbuchseite ...
echo "$verabschiedung $name";
Hallo :)
echo $begrüßung;
Notice: Undefined variable: begrüßung in http://forum.de.selfhtml.org/?t=126567&m=816437 on line 1
Das ist nur die Hälfte der Wahrheit.
if (stripos($Second, $kids_array[$x]) === true)
Zitat:
"Gibt die numerische Position des ersten Vorkommens
von needle innerhalb des Strings haystack zurück."
Das ist also auch nur die Hälfte Wahrheit ;)
Deutlicher:
if(intval(15)===TRUE)
Also richtig und bezogen aufs Beispiel:
if(stripos($kids_array[$x],$Second)!==FALSE)
echo "$verabschiedung $name";
Notice: Undefined variable: verabschiedung in http://forum.de.selfhtml.org/?t=126567&m=816437 on line 13
Notice: Undefined variable: name in http://forum.de.selfhtml.org/?t=126567&m=816437 on line 13
Gruß aus Berlin!
eddi
echo $begrüßung;
Das ist nur die Hälfte der Wahrheit.
if (stripos($Second, $kids_array[$x]) === true)
Das ist also auch nur die Hälfte Wahrheit ;)
Gut, dann waren wir bei 3/4, oder so ...
if(stripos($kids_array[$x],$Second)!==FALSE)
Ja, deine Lösung ist die richtige. Mein Fehler. Gut dass noch jemand anderes aufpasst. :-)
echo "$verabschiedung $name";