PHP相当于Perl的TIE

时间:2012-01-26 03:42:10

标签: php

在PHP中是否有相当于PERL的TIE?我想看一个字符串(单个单词)是否在一个文件中,每行是一个单词/字符串。如果是,我想删除该条目。这在Perl中很容易做到,但不确定我将如何在PHP中执行此操作。

1 个答案:

答案 0 :(得分: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");

注意:如果整个条目包含一个单词,则每种方法都假定您要删除整个条目