2016-04-27 5 views
0

Ich versuche, die E-Mail von einer durch Komma getrennten Zeichenfolge zu löschen. Ich habe ein Skript, das mir E-Mails bringt. Eine Möglichkeit, dies schnell zu tun:PHP Entfernen Sie E-Mail-Adressen aus dem Komma getrennte Zeichenfolge

$cadena = "[email protected],0001,00005,0010,[email protected],003"; 

$cadena = explode(",", $cadena);   

foreach($cadena as $res){ 
    if(filter_var($res, FILTER_VALIDATE_EMAIL)){ 
     $result[] = $res; 
    } 
} 

Ergebnis:

array([email protected],[email protected]); 

Aber ich brauche:

string "0001,00005,0010,003" 
+1

... 'filter_var ($ res, FILTER_VALIDATE_EMAIL)' – AbraCadaver

+0

Invertzucker conditiion - 'if (! Filter_var ($ res, FILTER_VALIDATE_EMAIL)) {' – splash58

Antwort

4

Sie fügen zu Ihrem Ergebnis Array, wenn es als E-Mail DOES validieren, so ändern Sie es, um hinzuzufügen, wenn es NICHT ! validiert:

$cadena = explode(",", $cadena);   

foreach($cadena as $res){ 
    if(!filter_var($res, FILTER_VALIDATE_EMAIL)){ 
     $result[] = $res; 
    } 
} 

Dann einfach implode() es:

$result = implode(',', $result); 
2

Wenn Sie auf all den anderen Sachen in der Zeichenfolge zählen zu sein, wie es in Ihrem Beispiel ist, anstatt zu versuchen, E-Mails zu finden und zu entfernen, können Sie es Filter mit is_numeric.

Wenn die Werte, die Sie behalten möchten, in Ihrem Beispiel zufällig numerisch sind, ist es egal. ! Uhhh

+0

Der war gut, p1 ... – AbraCadaver