【问题标题】:How to delete array in text file PHP如何删除文本文件PHP中的数组
【发布时间】:2015-11-26 03:34:12
【问题描述】:

我有一个文本文件。我想删除一些带有搜索查询的行。 数组是一行一行的。我想让它像http://keywordshitter.com/

逻辑是,

搜索 --> 在数组中 --> 输出是没有“搜索查询”的数组

我尝试过的代码:

$fileset = file_get_contents("file.txt");
$line = explode("\n", $fileset);
$content = array_search("query",$line);
print_r($content);

我的文件.txt

one
two
three
apple
map

我用过array_search,但没用。

【问题讨论】:

  • 向我们展示你尝试过的帽子
  • 我已经更新了我的代码。这只是搜索代码。但输出为空
  • 您能否发布file.txt 的示例位以便我们重现问题?
  • file.txtquery 吗?如果是这样,那么这可行,如果不是,那是您的问题。 eval.in/476069
  • 这只是一个例子,是的,它在我的文本文件中有查询。

标签: php arrays search


【解决方案1】:

你可以像这样搜索

$fileset=file("file.txt");   // file function reads entire file into an array
$len=count($fileset);
for($i=0;$i<$len;$i++)
  {
       if($fileset[$i]=="query")
          {
               $fileset[$i]="";
               break;                 //then we will stop searching
          }
   }
$fileset_improve=implode($fileset);    //this will again implode your file
$handle=fopen("file.txt","w");        //opening your file in write mode
fwrite($handle,$fileset_improve);     //writing file with improved lines
fclose($handle);                    //closing the opened file

记住这些行将使您的搜索行blank....

如果您愿意,您可以安排整个数组,即 shifting following indexed data to previous index 以减少行数,但这会增加您的编程复杂性。

希望这对你有用。

谢谢

【讨论】:

  • 我会试试的。希望它是我想要的。
  • 嗨,阿巴斯,我试过了。但我有问题。当我运行脚本时,脚本只是删除了数组查询的最后一个。你的解决方案是什么?
  • 是的,我也不明白。我觉得我的数组列表不好。我觉得数组的最后一个(空格)。因此,当我搜索“查询”时,不会选择数组。但如果我搜索“查询”(带空格),则选择了数组。我很困惑。
  • 好的所以你想说在你的文件中query是这样存储的query ???我们可以做一件事...使用if(trim($fileset[$i])=="$query")
  • 是的,就像那样。但我不确定,我已经尝试过。但没有任何结果。我也想删除类似的数组。
【解决方案2】:

在您的爆炸函数上使用PHP_EOL 而不是“\n”。 PHP_EOL 将处理服务器平台的正确换行符。

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多