2010-11-08 75 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 

    } 
}