explode -- Array nach Inhalt prüfen

Sebigf

Erfahrenes Mitglied
Hallo zusammen !

Ich habe einen Text, den ich mit explode() anhand von "<!-- CUT -->" teile. Nun kann es aber auch sein, dass man folgendes eingibt:

Code:
<!-- CUT --> hehe <!-- CUT --> huhu <!-- CUT --> <!-- CUT --> <!-- CUT --> <!-- CUT -->

Nun ist es also so, dass ich mit count() alle 6 Werte heraus bekomme. Nur wie kann ich mit count() nur "volle" Werte aufnehmen ?

Danke
 
Hallo,
ist zwar keine schöne Lösung, sollte aber funktionieren.
PHP:
<?php
    $string = '<!-- CUT --> hehe <!-- CUT --> huhu <!-- CUT --> <!-- CUT --> <!-- CUT --> <!-- CUT -->';
    $array = explode('<!-- CUT -->', $string);

    $i = 0;
    foreach ($array as $arr){
        if (!empty($arr) && $arr <> ' '){
            $i++;
        }
    }
    echo $i;
?>

mfg
forsterm
 
Du kannst das Ganze auch mit der array_filter()-Funktion filtern:
PHP:
$string = '<!-- CUT --> hehe <!-- CUT --> huhu <!-- CUT --> <!-- CUT --> <!-- CUT --> <!-- CUT -->';
$array = array_filter(explode('<!-- CUT -->', $string), create_function('$value', 'return trim($value)!="";'));
print_r($array);
 
ich würde da [phpf]preg_split[/phpf] den Vorzug geben:
PHP:
$array = preg_split('|\s*<!-- CUT -->\s*|',$string,-1,PREG_SPLIT_NO_EMPTY);
..fertistch :)
 
Zurück