2011-08-24 53 views
1

我有50個txt文件,這些都是基本的電子郵件的複製,每一個txt文件格式如下:PHP腳本從同一目錄中的多個文本文件中打印字符串旁邊的特定值?

To: [email protected] 
Subject: blabla 
From: [email protected] 
Message: This is a test message 

目的是寫一個PHP腳本,它通過每個文件(全部位於內抓取同一個目錄),並打印出from字段中每個'唯一'電子郵件地址的列表。這個概念非常簡單。

任何人都可以在正確的方向指向我嗎?到目前爲止,我設法讓我的PHP腳本讀取所有文件的內容的目錄和輸出中的結果:所以現在

<?php 
$directory = "emails/"; 
$dir = opendir($directory); 
while (($file = readdir($dir)) !== false) { 
    $filename = $directory . $file; 
    $type = filetype($filename); 
    if ($type == 'file') { 
    $contents = file_get_contents($filename); 
    $items = explode('/n', $contents); 
    echo '<table width="500" border="1" cellpadding="4">'; 
    foreach ($items as $item) { 
     echo "<tr><td>$item</td></tr>\n"; 
    } 
    echo '</table>'; 
    } 
} 
closedir($dir); 
?> 

,我需要能夠檢索下一個分配的值每個文件的'From:'字符串,然後在列表中顯示該值的輸出。

任何人都可以在正確的方向推我嗎?任何代碼解釋都是有益的,因爲我理解這個概念和我需要做的事情,但是在語法上我很掙扎!

+0

可能的重複[讀取多個文本文件的內容並打印出特定的行,在PHP中](http://stackoverflow.com/questions/7178540/read-contents-of-multiple-text-files-and-print -out-specific-line-in-php) – thetaiko

+0

道歉,它基於這個問題,但需要一個不同的解決方案,我重新編輯了這個問題,並對新的需求進行了修改。 – Steve

回答

0

$ to = stristr($ item,'To:');
$ from = stristr($ item,'From:');
$ subject = stristr($ item,'Subject:'); $ message = stristr($ item,'Message:');

if($ to!== FALSE)echo $ to;
elseif($ from!== FALSE)echo $ from;
elseif($ subject!== FALSE)echo $ subject;
elseif($ message!== FALSE)echo $ message;

這將得到您正在查找的值。把它放在foreach循環中。

相關問題