2017-03-20 1 views
0

ファイル内の文字列を検索する際に問題があり、検索した文字列の後ろに新しい行を挿入して、新しい追加行に書き込みます。現在、私は私が見つけた例や議論からのコードの下に使用しています: -PHPを使用して新しい行のテキストファイルに挿入して書きます

$target = '<18>'; 
$put = 'Enter'; 
$file = 'line.txt'; 

$filename = $file; 
$string_i_am_looking_for = $target; 
$lines = file($filename , FILE_IGNORE_NEW_LINES); 
$lines[$string_i_am_looking_for] = $put; 
file_put_contents($filename , implode("\n", $lines)); 

テキストファイル: - 最初のアクションで

<17> 
<18> 
<19> 
<20> 

、私は、テキストファイルに$プットを置くことができました。

<17> 
<18>Enter 
<19> 
<20> 

しかし、私は$ターゲット=「< 20>」に変更したときに、私は新しい$ターゲットの後に書くことができませんでした。最初の行の横に表示されます。そして、ページをリロードすると、最初の行に書いていきます。下記の結果は次のとおりです。 -

<17>EnterEnterEnterEnterEnter 
<18>Enter 
<19> 
<20> 

答えて

0

ワードEnterは、いかなる方法の新ラインではありません。 \r\nまたは\n(ファイルの改行文字に依存します)に置き換える必要があります。

$target = '<18>'; 
$put = "\r\n"; 
$file = 'line.txt'; 
+0

を試してみてください。それは単なる文字列であり、アクションではありません。 –

0

はい私はそれを知っているこの

$target = '<20>'; 
$put = 'Enter'; 
$file = 'line.txt'; 

$filename = $file; 
$string_i_am_looking_for = $target; 
$lines = file($filename , FILE_IGNORE_NEW_LINES); 
$key = array_search($string_i_am_looking_for,$lines); 
$toSearch = $target.$put; 
if(!in_array($toSearch,$lines)) { 
$lines[$key] = $target.$put; 
} 
file_put_contents($filename , implode("\n", $lines)); 
+0

私はそれを何度も読み込むと、最初の行が$ targetに置き換えられます。テキストファイル内の結果は次のようになります: - <20>は<18><19><20>を入力してください...それは答えを更新した<17><18><19><20> EnterEnterEnter –

+0

あるべき場所 – Vish744789

関連する問題