1

我有 textfile.txt:

aaa
bbb
...
zzz

我想从 textfile.txt 中删除一些基于文本的文本

ex: we have aaa files ==> we have files

我的代码仍然不起作用:

<?php
$fp = @fopen("textFile.txt", 'r'); 
$array = explode("\n", fread($fp, filesize("textFile.txt")));

if (isset($_POST['btcari'])){    
    print_r(str_ireplace($array,"", $_POST['tateks']));
}
?>

谢谢你的感激

4

4 回答 4

0

首先读取文件并更改其中的文本。然后将新内容写入文件。

$fp = @fopen("textFile.txt", 'r'); 
$array = explode("\n", fread($fp, filesize("textFile.txt")));
fclose($fp);

foreach($array as $text) {

$textall .= str_replace("aaa", "", $text);

}


$fh = fopen("textFile.txt", "w") or die("Could not open log file.");
fwrite($fh, $textall) or die("Could not write file!");
fclose($fh);
于 2013-03-22T09:57:53.253 回答
0

您可以使用 preg_replace

    $replace = "/".$_POST['tateks']."/";
    $array = preg_replace($replace , '' , $array);
    print_r($array);
于 2013-03-22T10:00:07.467 回答
0

您似乎使用了错误的 post 参数进行替换。我尝试了代码,如果您使用 $_POST[btcari'] 而不是 $_POST['tateks'],它可以正常工作。

<?php
$fp = @fopen("textFile.txt", 'r'); 
$array = explode("\n", fread($fp, filesize("textFile.txt")));

if (isset($_POST['btcari'])){    
    print_r(str_ireplace($array,"", $_POST['btcari']));
}
?>

现在,如果我发送一个名为“btcari”的帖子参数,它会正确输出替换的文本。

于 2013-03-22T10:01:14.243 回答
0

尝试这个:

$array = file("textFile.txt");

function _trim( &$value, $key ) {
    $value = trim( $value );
}

// remove the newlines and extra spacing
array_walk( $array, '_trim' );

$replaceArray = array_fill( 0, count($array), '' );

if( isset( $_POST[ 'btcari' ] ) ) {
    echo str_replace( $array, $replaceArray, $_POST[ 'tateks' ] );
}

希望能帮助到你。

于 2013-03-22T10:03:29.050 回答