strstr parameter bzw. needle
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktion
array
ausgabe
code
eingabe
element
ergebnis
fehler
filter
furz
http
meiden
parameter
performance
suche
teddy
test
url
vergessen
wort
-
Wie kann ich mehrere Parameter für strstr angeben bzw. mehrere Wörter???
So wäre es normal:
strstr($_POST["Titel"],"http://")
Das ist was ich meine:
strstr($_POST["Titel"],"http://, \\, Test, Pups, Furz")
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
in einer schleife ?
$suchenach = array('http:://', 'Test', 'Pups', 'Furz'); $ergebnis = array(); $i=0; foreach $suchenach as $item) { $ergebnis[$i] = strstr($_POST["Titel"],$item); } print_r($ergebnis);
EDIT ... oh, da war czibere schneller, naja, jetzt hab ich es schon geschrieben
oder was ganau hast Du vor ? .... suche nach "bad words" ?
vielleicht ist ja auch ein preg_match mit Such-Pattern besser
Beitrag zuletzt geändert: 26.1.2012 9:28:28 von cptgame -
cptgame schrieb:
hm! sicher nicht. preg_match &co. sollte man überall wo es nur geht meiden. performance!!
... vielleicht ist ja auch ein preg_match mit Such-Pattern besser
(@cptgame du hast in foreach klammer auf vergessen ;)
Beitrag zuletzt geändert: 26.1.2012 9:33:44 von czibere -
czibere schrieb:
kill-a-teddy schrieb:
oder doch das?
... Das ist was ich meine:strstr($_POST["Titel"],"http://, \\, Test, Pups, Furz")
$str = 'a, b, c, d, e'; $ary = array('a', 'c'); foreach($ary as $i) { echo strstr($str, $i), '<br />'; }
Wenn ich das richtig verstehe wäre str meine Eingabe, ary dann mein Filter? und das echo natürlich die Ausgabe? -
czibere schrieb:
hm! sicher nicht. preg_match &co. sollte man überall wo es nur geht meiden. performance!!
(@cptgame du hast in foreach klammer auf vergessen ;)
frisst das preg_match &co echt soooooo viel mehr Performance?
hier mein Code mit Korrektur der vergessenen Klammer
-----> ich habe auch das i++ vergessen ... sonst ist ja $i immer 0 (null) !!!!
$suchenach = array('http:://', 'Test', 'Pups', 'Furz'); $ergebnis = array(); $i=0; foreach ($suchenach as $item) { $ergebnis[$i] = strstr($_POST["Titel"],$item); $i++; } print_r($ergebnis);
wenn es zum testen ist, ob Wort enthalten ist, geht das dann auch mit strpos() ?
also kann strpos() auch "teilstring" oder immer nur genau ein Zeichen finden ?
dann braucht es ja noch eine Prüfung, ob Wort enthalten ist,
wenn ja dann aktion (meldung / abbruch / zurück)
irednwie so
$i=0; foreach ($suchenach as $item) { if ( strstr($_POST["Titel"],$item) !== FALSE ) { // ----- hier Aktion wenn Wort gefunden ----- } $i++; }
jetzt weiss ich aber nicht ob if ( strstr($_POST["Titel"],$item) !== FALSE ) richtig ist
oder ob es mit if ( !empty(...) ) geht
-
cptgame schrieb:
jetzt weiss ich aber nicht ob if ( strstr($_POST["Titel"],$item) !== FALSE ) richtig ist
oder ob es mit if ( !empty(...) ) geht
Richtig war:
foreach ($suchenach as $item) { if ( strstr($_POST["Titel"],$item) !== FALSE ){ echo 'Fehler'; } $i++; }
Danke :) -
kill-a-teddy schrieb:
richtig ist, dass ich in str nach arrayelementen suche (daher auch ein element von mir als $i ['index'] gennant). also exakt wie bei strstr: (string $haystack , mixed $needle), wobei mixed bei mir ist nicht nur str oder num sondern auch ary.
Wenn ich das richtig verstehe wäre str meine Eingabe, ary dann mein Filter? und das echo natürlich die Ausgabe?
cptgame schrieb:
ja.
frisst das preg_match &co echt soooooo viel mehr Performance?
kill-a-teddy schrieb:
was machst du da eigentlich mit $i++ ??
foreach ($suchenach as $item) { if ( strstr($_POST["Titel"],$item) !== FALSE ){ echo 'Fehler'; } $i++; }
-
Zur Not einfach eine neue Funktion (bzw. 2):
function strstr_array( $haystack, $needle ) { if ( !is_array( $haystack ) ) { return false; } foreach ( $haystack as $element ) { if ( strstr( $element, $needle ) ) { return $element; } } } function stristr_array( $haystack, $needle ) { if ( !is_array( $haystack ) ) { return false; } foreach ( $haystack as $element ) { if ( stristr( $element, $needle ) ) { return $element; } } } //... stristr_array($_POST["Titel"], array('http:://', 'Test', 'Pups', 'Furz')); //...
Das macht die Sache einfacher =)
EDIT:
Kleinen Fehler korrigiert :)
Beitrag zuletzt geändert: 26.1.2012 10:40:39 von fabo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage