【问题标题】:How to remove particular data from file using php如何使用php从文件中删除特定数据
【发布时间】:2012-09-14 04:06:02
【问题描述】:

在文件中显示数据---

Kortrijk]]||75,592||74,790||73,777VWVVLG
Hasselt]]||65,503||68,085||70,584VLIVLG
Sint-Niklaas]]||68,277||68,290||70,016VOVVLG
Ostend]]||69,039||67,279||69,115VWVVLG
|22Tournai]]||67,291||67,379||67,844WHTWAL
|23Genk]]||61,532||62,842||64,095VLIVLG
|24Seraing]]||62,832||60,557||61,237WLGWAL

这是我在wiki.txt 文件中的数据集,我需要删除“]]||”之后的所有内容来自所有行。

//代码实现后需要数据

Kortrijk
Hasselt
Sint-Niklaas
Ostend
|22Tournai
|23Genk
|24Seraing

这是我遇到的代码,但不知道如何在我的代码中使用它,我关注了preg_replace、正则表达式等,但一切都超出了我的想象......请帮助我,请让我知道任何我可以关注这些工作的教程链接(specially regular expression for a novice)。

$file="wiki.txt";
file_put_contents($file,str_replace('find','replace',file_get_contents($file)));

【问题讨论】:

标签: php regex file logic


【解决方案1】:

尝试:

$arr = file("wiki.txt"); //will give you contents as array
$newContent = "";
foreach($arr as $key => $val) {
    $newContent .=substr_replace($val, '', strpos($val, ']'))."\n";
}
//add changed content back to file
file_put_contents("wiki.txt", $newContent);

//result is:
Kortrijk
Hasselt
Sint-Niklaas
Ostend
|22Tournai
|23Genk
|24Seraing

【讨论】:

  • 毫无疑问代码可以工作.....但是这段代码不会改变文件中的数据..因为我在那个文件中有大约 1000 个数据集......所以它也很麻烦应用该 ctrl+c/ctrl+v 的过程
  • 该代码仅用于显示我们如何获得所需内容,请参阅答案中添加的代码,这将替换文件中的旧内容并根据需要添加新内容...希望对您有所帮助.. !
  • ...谢谢很多兄弟 :) 只是一个建议请...我怎样才能提高我的代码编写能力?
  • 改进代码的最佳方法之一是阅读大量其他人的代码。加入像 DrupalSymfony 这样的大型 PHP 驱动社区,看看其他人写了什么,尝试做出贡献并采纳你的建议。
  • 嗯,它的实践和实践可以提高技能、阅读文档、其他人的代码等来更新自己。我想这就是需要的。你可以查看这个网站的信息:: wikihow.com/Improve-your-Skills-as-a-Programmer
【解决方案2】:
preg_replace('/]]\|\|.*$/m', '', $fnames);

匹配 ']]||'从字面上看,然后是所有字符 (.*) 直到行 '$' 的结尾,并将它们替换为 ''。

另外:看看这个tutorial on RegExp

【讨论】:

    【解决方案3】:

    您可能想要打开文件,读取内容,然后将您想要的部分写入新文件,而不是“更改”文件。如果一切按计划进行,请将旧文件替换为新文件。这样更安全。

    <?php
    
    $lines = file("input.txt");
    
    $output = "";
    
    foreach ($lines as $line) {
      $output .= substr($line, 0, strpos($line, "]")) . "\n";
    }
    
    file_put_contents("output.txt", $output);
    

    有很多方法可以解决这个问题。

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多