为了账号安全,请及时绑定邮箱和手机立即绑定

如何替换文本文件中字符串的前半部分

如何替换文本文件中字符串的前半部分

PHP
侃侃无极 2021-08-27 09:36:07
我有一个包含数据并由逗号分隔符分隔的文本文件。这个文本文件的一个例子就像User,data,date日期的值是在输入数据时设置的。如果我想删除这行数据,是否可以做一个str_replacejustUser,data然后让它被替换为空。我不太熟悉str_replace在替换某些行时的工作原理,除了它是否是确切值。我在问什么的例子。文本文件: Austin,12,1:23:08pm代码:$content = file_get_contents('');str_replace("Austin,12","",$content);file_put_contents('');因此,我没有获取该行中的所有数据,而是排除了它的最后一行。如果需要更多解释,我会编辑帖子。谢谢!
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

使用fgetcsv()和假设这样的输入文件


tst.dat(一个 csv 文件)


Austin,12,1:23:08pm

Smith,13,2:23:08pm

Jones,14,3:23:08pm

和这样的代码


<?php

if (($input = fopen("tst.dat", "r")) !== FALSE) {

    if (($output = fopen("new.dat", "w")) !== FALSE) {

        while (($line = fgetcsv($input, 1000, ",")) !== FALSE) {

            //echo $line[0] . ', ' . $line[1] . ', ' . $line[2] . PHP_EOL;

            fwrite($output, $line[2] . PHP_EOL);

        }

        fclose($output);

    }

    fclose($input);

}

你会得到一个new.dat像这样调用的输出文件


1:23:08pm

2:23:08pm

3:23:08pm

并且只影响文件中的特定行


<?php

if (($input = fopen("tst.dat", "r")) !== FALSE) {

    if (($output = fopen("new.dat", "w")) !== FALSE) {

        while (($line = fgetcsv($input, 1000, ",")) !== FALSE) {

            if ($line[0] == 'Austin'){

                // write only the last bit

                fwrite($output, $line[2] . PHP_EOL);

            } else {

                // by default write the complete line

                fputcsv($output, $line);

            }

        }

        fclose($output);

    }

    fclose($input);

}


查看完整回答
反对 回复 2021-08-27
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

假设您创建了一个名为“file”的文本文件,然后在它上面有一个文本“Austin,12,1:23:08pm”。以下代码应该适合您。


//read the text file

$textfile_data='';

$textfile_name='file.txt';

$fh = fopen("$textfile_name",'r');

while ($line = fgets($fh)) {

  //append the text file content into textfile_data variable

  $textfile_data.= $line;

}

fclose($fh);


//now textfile_data variable has the text file text

$text_to_replace='Austin,12';

//replace the text you want

$new_textfile_data=str_replace("$text_to_replace",'',$textfile_data);



//write the text file

$fp = fopen("$textfile_name", 'w');

if(fwrite($fp, "$new_textfile_data")){

    echo 'Replaced successfully';

}

fclose($fp);


查看完整回答
反对 回复 2021-08-27
  • 2 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信