2017-08-23 11 views
0

私は既に1行に括弧を打って改行したテキストファイルを持っていて、すべての行の最後にカンマを追加しました。テキストファイルのn番目の行からカンマを削除して改行を追加します

私は行から36番目のカンマをすべて削除して改行を追加する必要があります。

これは私のコードです:

$lines = file("filename.txt", FILE_IGNORE_NEW_LINES); 
$comma_separated = implode(",", $lines); 

$lines2 = preg_replace('/(?:[^,]*,){36}/', '$0\r\n', $comma_separated); 

私は常に、コーディングに問題がありました。私の頭脳はそんなに行きません。私はベストを尽くしています。私は100%解決策を探して読んでいますが、私はそれを理解していません。

答えて

0

私はむしろこのようなことをしたいと思います。
最終的に失敗する正規表現の代わりに、暗黙のうちに36行ごとに文字列を追加します。
この文字列は簡単なstr_replace()で簡単に見つけられ、改行を削除して追加することができます。

$lines = file("filename.txt", FILE_IGNORE_NEW_LINES); 

For($i=0; $i<count($lines);){ 
    $lines[$i] .= "something"; 
    $i = $i+36; 
} 

$comma_separated = implode(",", $lines); 
// String replace something to line break. 
$result = str_replace("something,", "<br>", $comma_separated); 

編集してください申し訳ありませんが、文字列の置き換えはもちろんインボードの後に​​移動する必要があります。
混乱して申し訳ありません。

+0

ありがとう! これはしばらく後ろの痛みでした。あなたのコードを少し編集しなければならなかった。 0, ファイルの最後に「何か」が追加されていますが、問題はありません。 – Rautakannel

+0

@Rautakannel ok!これは(ほとんど)うまくいきました。あなたはそれを解決してうれしい! – Andreas

-1
$lines = file("filename.txt", FILE_IGNORE_NEW_LINES); 

For($i=0; $i<count($lines);){ 
    //your code 
    if($i%36==0){ 
     trim($line,','); 
    } 
} 
+0

私には終わりのないループのように見えます。 – Andreas

関連する問題