1

ファイルにデータを表示 ---

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)));
4

3 に答える 3

1

ファイルを「変更」するのではなく、おそらくファイルを開いて内容を読み取り、必要な部分を新しいファイルに書き込みます。すべてが計画通りに進む場合は、古いファイルを新しいファイルに置き換えます。その方がはるかに安全です。

<?php

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

$output = "";

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

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

これを解決する方法はたくさんあります。

于 2012-09-14T05:17:26.637 に答える
1
preg_replace('/]]\|\|.*$/m', '', $fnames);

Matches ']]||' literally, then all characters (.*) until the end of a line '$' and replaces them with ''.

Also: Check out this tutorial on RegExp

于 2012-09-14T04:15:01.390 に答える
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
于 2012-09-14T04:16:51.717 に答える