2012-01-26 68 views
1

在php中是否有與PERL的TIE相當的功能?我想查看一個字符串(單個單詞)是否在每行都是單個字符/字符串的文件中。如果是,我想刪除條目。這在Perl中很容易實現,但不確定如何在PHP中執行此操作。PHP的等效Perl的TIE

+0

如果包含單個單詞,或者從每個條目/行中刪除單個單詞,是否要刪除整個條目/行? – Josh

+0

整行,但只是因爲我將只有一個單詞/條目每行。 – WildBill

回答

4

根據您閱讀文件的方式將決定如何刪除條目。

使用fgets

$filtered = ""; 
$handle = fopen("/file.txt", "r"); 

if ($handle) { 
    // Read file line-by-line 
    while (($buffer = fgets($handle)) !== false) { 
     if (strpos($buffer, "replaceMe") === false) 
      $filtered .= $buffer; 
    } 
} 

fclose($handle); 

使用file_get_contents

filterArray($value){ 
    return (strpos($value) === false); 
} 

// Read file into a string 
$string = file_get_contents('input.txt'); 
$array = explode("\n", $string); 
$filtered = array_filter($array, "filterArray"); 

使用file

function filterArray($value){ 
    return (strpos($value) === false); 
} 

// Read file into array (each line as an element) 
$array = file('input.txt', FILE_IGNORE_NEW_LINES); 
$filtered = array_filter($array, "filterArray"); 

注意:每種方法都假定您想要刪除整個條目(如果它包含單個單詞)。

+0

在第一種方法中,我不一致 - 我將這些單詞追加到一個字符串中。要附加到數組,請聲明'$ filtered = array()'並使用'$ filtered []'而不是'$ filtered。='追加。 – Josh