2016-04-20 4 views
1

Ich habe ein Skript, das E-Mails verarbeitet und sie in einen anderen Ordner verschiebt. Es funktioniert im Moment gut, aber ich möchte testen können, ob der Ordner, in den ich die E-Mails verschieben möchte, zuerst existiert, bevor ich imap_mail_move() ausführe. Gibt es einen schnellen Weg, dies zu tun?Überprüfen, ob der Ordner mit IMAP existiert

$hostname="{".$imap_details['imap_server']."}INBOX".$imap_details['imap_path']; 
$imap = imap_open($hostname, $imap_details['email'], $imap_details['imap_password']); 
$processed_folder="INBOX/Processed"; 
//*** I would like to check if the above folder exists here **** 
//And then do some processing here 
//And then move the email to the processed folder 
imap_mail_move($imap,$i,$processed_folder); 
+2

Haben Sie Zugriff auf den Status Befehl haben? Dies kann Ihnen sagen, ob ein Ordner existiert. Es kann jedoch zwischen der Zeit, die Sie überprüfen, und wenn Sie es tun, verschwinden. Sie müssen immer noch mit möglichen Fehlern umgehen. – Max

+0

@Max, danke, was ist der Statusbefehl und woher weiß ich, ob ich Zugriff darauf habe? – dlofrodloh

+0

Gibt es eine imap_status-Funktion? – Max

Antwort

0

array_search() gibt den Schlüssel des Elements in der Anordnung.

if (array_search ($ cstr. $ Ordner $ list) === "-1") {

die("no folder!"); 

}