2011-10-17 18 views
0

我使用ereg維護了一些代碼,並將遷移到preg_match(不要忘記分隔符),但它破壞了我的函數。從ereg遷移到preg_match:複製一個文件,直到一個模式重複自己X次

這是我原來的功能,這需要一個文件,並創建僅由#線後停止裁剪副本遇到6次:

function createStrippedFile($path1, $path2) 
{ 
    $lines = file($path1); 

    $handle = fopen($path2,"w"); 

    // 6 
    $index = 0; 

    foreach ($lines as $line) 
    { 
     $line = trim($line); 

     if ($index != 7) 
      fwrite($handle,$line."\r\n"); 

     if (ereg("^[#]+$",$line) !== FALSE) 
      ++$index; 
    } 

    fwrite($handle,"END OF DOC\r\n"); 
    fclose($handle); 
} 

在這段代碼我改變:

if (ereg("^[#]+$",$line) !== FALSE) 

通過

if (preg_match('/^[#]+$/',$line) !== FALSE) 

,但現在它不是裁剪了。在轉換過程中有什麼我錯過了嗎? PS:如果有人知道更好的方法來做我想做的事情,他也可以寫出來。

回答

2

看來問題是preg_match在沒有匹配的情況下返回0,並且0!== FALSE。我會嘗試刪除這個代碼「!== FALSE」並檢查它是否工作。

+0

如果我檢查了'(ereg($ pattern,$ string)=== FALSE)',我可以用'(!preg_match($ preg_pattern,string))'替換它。 – Eldros 2011-10-17 13:43:36

相關問題