strpos
Heinz
- php
hallo,
warum findet
if( strpos($string,',') !== false ) {
in einem (durch echo kontrollierten) String "bla, bla, bla" die Kommata nicht?
VG, Heinz
Findet er doch, allerdings ist !== ein typengleicher Vergleich, d.h. bei ungleichen Typen wie dem Ergebnis von strpos (Integer) und false (Boolean) wird auf jeden Fall false zurückgegeben. Prüfe statt auf false auf -1, dann klappt es.
Gruß, LX
Ich muss mich korrigieren: strpos funktioniert in php etwas anders als indexOf in JavaScript.
Offenbar ist der String doch nicht das, was man erwartet. Versuche es doch einmal mit var_dump statt mit echo (denn letzteres bewirkt eine String-Umwandlung, genau wie print).
Gruß, LX
Findet er doch, allerdings ist !== ein typengleicher Vergleich,
...den man tunlichst so anwenden sollte, wenn man keine bösen Überaschungen erleben will...sagt das psp-manual ;-)
VG, Heinz
Hello LX,
Findet er doch, allerdings ist !== ein typengleicher Vergleich, d.h. bei ungleichen Typen wie dem Ergebnis von strpos (Integer) und false (Boolean) wird auf jeden Fall false zurückgegeben. Prüfe statt auf false auf -1, dann klappt es.
Nö LX.
Der Identitäts-Vergleich ist bei PHP schon richtig angewandt so. Die Funktion strpos() liefert entweder ein numerisches Ergebnis (integer) für den ersten Treffer, wenn eine Position zu finden war, oder ein boolesches false, wenn kein Treffer vorhanden war.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
$string = 'bla, bla, bla';
if(strpos($string, ',') !== false)
echo 'comma found'
else
echo 'jackass'
Funzt doch? Liegts vielleicht an deinem "}", oder ist das nur ein Copy&Paste Fehler
Funzt doch? Liegts vielleicht an deinem "}", oder ist das nur ein Copy&Paste Fehler
Du hast recht, es funzt.
Aber im Gesamten funzt es nicht. Hier mal die ganze Funktion:
function test($Variable)
{
// wenn ein Komma in der Variable ist
if( strpos($Variable,',') !== false )
{
$vararray = explode(",", $Variable);
foreach($vararray as $Einzevar)
{
//sql-Abfrage
...
//und anschließend in Array $arrayname speichern
} // end foreach
print_r($arrayname); // gibt das Array genau so aus, wie erwartet, also funktioniert es bis hierhin
$arrayname = implode(", ", $arrayname);
return $arrayname;
} //end if strpos
else
{
// wenn kein komma
echo ("Kein Komma");
// tu was anderes mit der Variablen
return $arrayname;
} // end else
} // end function
Ich hätte erwartet, dass die Funktion:
Aber die Funktion arbeitet beide Teile ab, d.h. sie stopt nicht nach dem "if-Teil", wenn in der Variablen ein Komma gefunden wurde.
VG, Heinz
Ich denke mal du hast einfach nur nen paar Vars falsch gesetzt.
Ersetze mal
print_r($arrayname);
mit
print_r($vararray);
und
$arrayname = implode(", ", $arrayname);
mit
$arrayname = implode(", ", $vararray);
Dann funktioniert dein Code Snippet auch.