2010-11-08 59 views
0

我想解析PHP中的基本文本文件,但不知道從哪裏開始。解析php中的文本文件並檢索信息

該文件中包含的信息,如:

http://pastebin.com/ahqtJzH6

你會發現,我需要捕獲的信息由新線分開。現在我只是將每一行都投入到$ applicant []數組中,但我需要在每行中刪除前面的文本。

我想我可能需要使用正則表達式或其他東西來挑選出我需要的數據。想法?

謝謝!

回答

1

不使用正則表達式,你可以這樣做:

$fp = fopen('textfile.txt', 'r'); 

$return = array(); 
while ($line = fgets($fp)) { 
    $parts = explode(':', $line); 
    $key = trim($parts[0]); 
    unset($parts[0]); 
    $value = str_replace("\n", '', implode(':', $parts)); 
    $return[$key] = trim($value); 
} 

print_r($return); 

將輸出類似:

Array (
    [Applicant SSN] => 123456789 
    [Applicant Name] => BOB, BOB 
    ... 
) 
+0

我認爲這是最好使用正則表達式,因爲該文件中包含大量的外來除了我發佈的信息外,其他信息格式都不一樣。 – 2010-11-09 00:15:04

+0

如果您只想捕獲冒號後面的文本,則不需要正則表達式。如果事情更復雜,你能否澄清你的問題? – 2010-11-09 01:17:25

0

您可以使用strpos來查找:字符,然後抓取所有內容。您可以使用trim來擺脫多餘的空白。

$lines = file('textfile.txt'); 

foreach ($lines as $line) { 
    $p = strpos($line, ':'); 
    if ($p!==false) { 
     $key = trim(substr($line, 0, $p)); 
     $value = trim(substr($line, $p+1)); 

     // do whatever with your key & value 

    } 
}