2011-12-17 1 views
0

文字列(DOM要素の値 - $entry = stripslashes($_GET["nameofmytextarea"]);)をmyfile.csvの2行目(ヘッダーを削除しないように)に追加したいとします。PHP 2行目に文字列を追加する

私はCSVを気にしません。すべては既にフォーマットされています。テキストファイルに追加するテキスト文字列として扱うだけです。

何も複雑ではありません。最初の行をスキップし、2行目の上に「追加」するだけです。ヘッダの下にありますが、他のすべてのCSV行の上にあります。

どれくらい難しいですか?

ため、この方法が機能する方法の
function prepend_to_csv ($file, $line) { 
    if (!$data = file($file)) { 
    return FALSE; 
    } 
    array_splice($data, 1, 0, $line.PHP_EOL); 
    return (bool) file_put_contents($file, $data); 
} 

if (prepend_to_csv('myfile.csv', "this,is,some,data")) { 
    echo 'Success'; 
} else { 
    echo 'Fail'; 
} 

、あなたが手動で新しいラインを自分にEOLを追加することを確認する必要があります

+0

それはほぼ2012年だし、あなたが 'magic_quotes_gpcので実行_still_ています'? – cmbuckley

答えて

3
$contents = explode("\n", file_get_contents('myfile.csv'), 2); 
file_put_contents('myfile.csv', $contents[0]."\n".$entry."\n".$contents[1]); 

これは、行がunix-lineendingsで区切られている場合に有効です。
ファイルは最初に次のようになります場合:

header 
content 
content2 

とコードは、それがその後、このようになります。$entry = 'test';で実行されます。

header 
test 
content 
content2 
+0

うん、これは動作します、私はあなたがそれを行うことができるか分かりませんでした。 n00bの男を助けてくれてありがとう! –

+0

いいえ問題:私たちがここにいる理由です。 – TimWolla

+0

'$ contents [1]'がセットされていることを確認するか、ファイルの末尾に空白行と 'E_NOTICE'があることを確認してください - これが' array_splice() 'アプローチ... – DaveRandom

関連する問題