2014-11-18 2 views
0

작동하도록 코드를 가져올 수 없습니다. 경고 :으로, preg_match_all()는 매개 변수 2 라인 23. 이메일 주소 목록을 검색 할 찾고에 /script.php에 주어진 문자열 배열이 될 것으로 기대 :헤더에서 전자 메일을 추출하십시오.

<?php 
$mbox = imap_open("{******.com:143/notls}", "******@******.com", "******"); 

echo "<h1>Email Addresses</h1>\n"; 
$headers = imap_headers($mbox); 

if ($headers == false) { 
echo "Call failed<br />\n"; 
} else { 
foreach ($headers as $val) { 
preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $headers, $matches); 
echo $maches[2] . "<br />\n"; 
} 
} 

imap_close($mbox); 
?> 

답변

0
preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $headers, $matches); 

이어야

preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $val, $matches); 

배열을 반복하고 있지만 전체 배열을 각 루프의 preg_match_all 함수에 넣으십시오.

echo $maches[2] . "<br />\n"; 

한 단계 더 가까이

echo $matches[2] . "<br />\n"; 
+0

해야하지만, 그것은 나에게 가치를 제공하지 않습니다 인쇄가 모두 배열입니다 :

또한, 당신은 오타가 있습니다. – CrayEightz