如何使用php从文件中删除特定数据

时间:2012-09-14 04:06:03

标签: php regex file logic

在档案中显示数据---

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,正则表达式等但都超出了我的头脑。帮助我plz和plz让我知道我可以遵循这些工作(specially regular expression for a novice)的任何教程链接。

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

3 个答案:

答案 0 :(得分:1)

preg_replace('/]]\|\|.*$/m', '', $fnames);

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

另外:查看此tutorial on RegExp

答案 1 :(得分: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

答案 2 :(得分:1)

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

<?php

$lines = file("input.txt");

$output = "";

foreach ($lines as $line) {
  $output .= substr($line, 0, strpos($line, "]")) . "\n";
}

file_put_contents("output.txt", $output);

解决这个问题的方法很多。