2012-06-12 70 views
-1

我试图从文件读取此:正则表达式在PHP失败

BEGIN_SEREFERRALS 2 google 13 15 search 2 2 END_SEREFERRALS 

我用这个函数:

 function getTextBetweenSEO($file) 
{ 
    $pattern = "/BEGIN_SEREFERRALS\s(.*)\sEND_SEREFERRALS/i"; 
    preg_match_all($pattern, $file, $matches); 
    print_r($matches); 
    exit(); 
    return $matches[1]; 

} 

我所印的是:

Array ([0] => Array () [1] => Array ()) 

为什么正则表达式失败

+2

必须是别的东西,因为你有什么[只是作品(http://codepad.viper-7.com/eRUi2n) – PeeHaa

+0

这是对我很好! – undone

回答

0

y你可以试试这个正则表达式:

$ pattern =“^ BEGIN_SEREFERRALS(。*)END_SEREFERRALS ^”;

Array 
(
    [0] => Array 
     (
      [0] => BEGIN_SEREFERRALS 2 google 13 15 search 2 2 END_SEREFERRALS 
     ) 

    [1] => Array 
     (
      [0] => 2 google 13 15 search 2 2 
     ) 
) 

FIX有关blob文本数据模式:

$图案= “/BEGIN_SEREFERRALS(.*)END_SEREFERRALS/”;

getTextBetweenSEO("jsdfhksdjhskjfdsjfhsdkjfhBEGIN_SEREFERRALS 2 google 13 15 search 2 2 END_SEREFERRALSjklajdakldjaslkdjakldjalkdjalksdj") 

Array 
(
    [0] => Array 
     (
      [0] => BEGIN_SEREFERRALS 2 google 13 15 search 2 2 END_SEREFERRALS 
     ) 

    [1] => Array 
     (
      [0] => 2 google 13 15 search 2 2 
     ) 
) 
+0

没有工作:(.............为什么我需要thouse ^^ ??!?字符串开始...是在文本..所以我不认为^是相关 –

+0

当然你可以删除^^格局是在全局文本数据。这一行很好:$ pattern =“/BEGIN_SEREFERRALS(.*)END_SEREFERRALS/”; – 0xBAADF00D

+0

我已编辑我的答案。 – 0xBAADF00D