2016-03-20 15 views
0

PHP IMAP uzantısı gibi ana bilgisayar bilgilerini (ana makine adı, bağlantı noktası, önek ...) almaya çalışıyorum, ancak anlayamıyorum. örnek dize:PHP IMAP uzantısı gibi ana makine bilgileri ayrıştırmak

$host = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX' 

yakın ben geldi PHPMailer yapar (kaynak kodundan alınan kod) idi:

$hostinfo = array(); 
if (!preg_match('/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*):?([0-9]*)$/', trim($hostentry), $hostinfo)) { 
    die(' Not a valid host entry'); 
} 
// $hostinfo[2]: optional ssl or tls prefix 
// $hostinfo[3]: the hostname 
// $hostinfo[4]: optional port number 
// The host string prefix can temporarily override the current setting for SMTPSecure 
// If it's not specified, the default value is used 

Ama oraya olamaz.

Herhangi bir yardım çok takdir edilecektir.

<?php 
    $sourcestring='{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX'; 
    preg_match_all('/{((?<proto>[^:]+?):\/\/)?(?<host>[^:\/]+?)(:(?<port>\d+?))?\/(?<path>[^}]+?)?}(?<folder>.+)/m',$sourcestring,$matches); 
    echo "<pre>".print_r($matches,true); 
?> 

Bu adlandırılmış gruplar olarak parçalara yakalar:

+0

Eğer (alan kodu ile) biraz daha örnek dizeleri var mı? – netblognet

+0

Bu bir hikayedir, sorunuz nedir? – tmthydvnprt

cevap

3

bu bir deneyin. Parçaları isimlerine göre ('proto', 'host', 'port', 'path' ve 'folder') alabilirsiniz.

(Sadece bir quickshot bu. Bu yüzden beni, hala bir şey uymuyorsa. Bilmesine izin)

+0

işe yarıyor! Teşekkürler! –

+0

Çalışıyorsa. Lütfen cevabımı doğru cevap olarak kabul et/işaretle. ;-) – netblognet

İlgili konular