Php 删除/替换文本文件中的数据
我想在文本数据和变量数据之间设置条件,然后删除该行 例子 我有一个包含用户名的txt数据,比如(一二一三一)行中的每个用户, 我想删除除“一个”用户名以外的所有数据 我的代码; 该函数用于删除行Php 删除/替换文本文件中的数据,php,Php,我想在文本数据和变量数据之间设置条件,然后删除该行 例子 我有一个包含用户名的txt数据,比如(一二一三一)行中的每个用户, 我想删除除“一个”用户名以外的所有数据 我的代码; 该函数用于删除行 我的问题是,如果使用data+$getLinenumber,我只想删除除包含一个单词的行之外的所有行。请注意,您不应该在if语句中定义函数 另外,除非我有误解,否则你甚至不需要行号 function remove_line( $data, $remove ){ $lines = expl
我的问题是,如果使用
data+$getLine
number,我只想删除除包含一个单词的行之外的所有行。请注意,您不应该在if语句中定义函数
另外,除非我有误解,否则你甚至不需要行号
function remove_line( $data, $remove ){
$lines = explode( PHP_EOL, $data ); // Convert to Array
$new_lines = ''; // Start a new variable we'll add to in a loop
foreach( $lines as $line ){
$line = trim( $line ); // Trim Whitespace
if( $line != $remove ){
// Line isn't a line we want removed, so save it plus an EOL
$new_lines .= $line.PHP_EOL;
}
}
return $new_lines;
}
现在,如果您像这样加载一个文件:$file=file\u get\u contents('my file.txt')代码>包含以下内容:
One
Two
One
Three
One
一旦您通过remove\u line
函数运行它,您将得到如下结果:
$file = file_get_contents( 'my-file.txt' );
$new_file = remove_line( $file, 'One' );
var_dump( $new_file ); // Returns: string(10) "Two Three "
只需使用正则表达式即可:
$file = preg_grep('#one#', file('file.txt'));
这将使$file
成为仅包含包含字符串“one”的行的数组。要将数组转换回字符串,只需对其进行内爆
如果您只想回显包含“一”的行,还可以使用:
这将逐行遍历文件,并回显其中包含字符串1的任何行。好处是它不使用两个数组作为中间结构
$file = preg_grep('#one#', file('file.txt'));
$file = new RegexIterator(new SplFileObject("file.txt"), '#one#');
foreach ($file as $content) {
echo $content, PHP_EOL;
}