2012-12-22 79 views
0

我有一個名爲1.txt的文件,我試圖在網站上顯示它的一部分。PHP正則表達式問題 - preg_match不返回任何結果

我想顯示兩個關鍵字之間的特定部分。

文件可以在這裏看到:http://pastebin.com/GwVKhs8h

我想顯示這些詞之間的文字:「(非特權)的.pst」和「-----原始郵件-----」所以它會返回:

如果您仍然需要Curve Shift,請讓我知道。

我使用下面的代碼:

<?php 
$myFile = "1.txt"; 
$fh = fopen($myFile, 'r'); 
$theData = fread($fh, filesize($myFile)); 
fclose($fh); 

if (preg_match("/\(Non-Privileged\)\.pst((\n|.)*)-----Original Message-----/", $theData, $matches1)) 
{ 
    echo $matches1[1]."<br />"; 
} 
?> 

,我嘗試一些東西,但它只是不工作。

+1

你應該把你的代碼放在你的問題中。 – jeroen

+0

對不起,我發現每次嘗試東西時都會將代碼粘貼到pastebin中更容易:) – dmae

+0

修復了preg_match函數中存在的小問題,可以在這裏看到工作代碼,以防萬一有人想知道:http:///pastebin.com/bTqHpNZi – dmae

回答

0

使用爆炸

$myFile = "1.txt"; 
    $fh = fopen($myFile, 'r'); 
    $theData = fread($fh, filesize($myFile)); 
    fclose($fh); 

    $pairs = explode("(Non-Privileged).pst", $theData); 
    $pairs = explode("-----Original Message-----", $pairs[1]); 
    $text = $pairs[0]; 

    print $text;