kostenloser Webspace werbefrei: lima-city


strstr parameter bzw. needle

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    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")
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. kill-a-teddy schrieb:
    ... Das ist was ich meine:
    strstr($_POST["Titel"],"http://, \\, Test, Pups, Furz")
    oder doch das?
    $str = 'a, b, c, d, e';
    $ary = array('a', 'c');
    foreach($ary as $i) {
      echo strstr($str, $i), '<br />';
    }
  4. 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
  5. cptgame schrieb:
    ... vielleicht ist ja auch ein preg_match mit Such-Pattern besser
    hm! sicher nicht. preg_match &co. sollte man überall wo es nur geht meiden. performance!!
    (@cptgame du hast in foreach klammer auf vergessen ;)

    Beitrag zuletzt geändert: 26.1.2012 9:33:44 von czibere
  6. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    czibere schrieb:
    kill-a-teddy schrieb:
    ... Das ist was ich meine:
    strstr($_POST["Titel"],"http://, \\, Test, Pups, Furz")
    oder doch das?
    $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?
  7. 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
  8. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    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 :)
  9. kill-a-teddy schrieb:
    Wenn ich das richtig verstehe wäre str meine Eingabe, ary dann mein Filter? und das echo natürlich die Ausgabe?
    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.

    cptgame schrieb:
    frisst das preg_match &co echt soooooo viel mehr Performance?
    ja.

    kill-a-teddy schrieb:
    foreach ($suchenach as $item) { 
    if ( strstr($_POST["Titel"],$item) !== FALSE ){
    	echo 'Fehler';
    	}
    $i++;
    }
    was machst du da eigentlich mit $i++ ??
  10. 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
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!