2012-12-22 64 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;