2016-05-12 2 views
1

私はPHPには新しく、HTMLフォームについて学びたいが、この改行に若干の問題がある。私は、フォームに入れた場合は、「" n"を使用しているにもかかわらず、改行を作成しないfwrite

HTML

<form action="maketable.php" method="post" name="input[]"> 
     <fieldset> 
      <legend>Table Info</legend> 
      Enter Table Name: 
      <br> 
      <input type="text" name="input[]"> 
      <br> 
      Enter Value A: 
      <br> 
      <input type="text" name="input[]"> 
      <br> 
      Enter Value B: 
      <br> 
      <input type="text" name="input[]"> 
      <br> 
      <input type="submit"> 
     </fieldset> 
    </form> 

PHP

$file = fopen("Tables.txt", "w+"); 
if(isset($_POST["input"])) { 
    $input = $_POST["input"]; 
    $table = $input[0]; 
    $A = $input[1]; 
    $B = $input[2]; 

    fwrite($file, $table . "\n"); 
    fwrite($file, $A . "\n"); 
    fwrite($file, $B); 
} else { 
    fwrite($file, "table not set"); 
} 
fclose($file); 

:以下のコードをHTMLを通じて、テーブル名に取ることになって、その後、テキストファイルに入力を書きますテーブル "、" A "、" B "。テキストファイルは

tableAB

私はそれらの間に改行を持っているために、これらの変数を取得したいと思いを示しているが、. "\n" が動作していないようです。私は間違って何をしていますか?

+5

がどのようにこれをチェックしていますか?あなたはメモ帳のようなWindowsエディタでファイルを読んでいますか?それとも、Webブラウザで表示するのでしょうか? –

+0

私はこれをメモ帳でチェックしていました。ちょうどブラウザでそれを見て、あなたの権利、それは動作します。速い共鳴をお寄せいただきありがとうございます –

+3

クロスプラフォームを書きたい場合は、代わりに 'PHP_EOL'を使用してください。 '\ n'を使うと、Windowsはそれを改行文字として認識しません。 Windowsの改行は '\ r \ n'です。マークのコメントはここではかなり重要です。 –

答えて

0

最後に '\ r \ n'を使用します(Windowsの場合)。 '\ n'はLinuxに最適です。あなたがこれを交換する場合

$line_break = '\r\n'; 

そしてより高速なパフォーマンス:これに

fwrite($file, $table . "\n"); 
fwrite($file, $A . "\n"); 
fwrite($file, $B); 

$line_break = '\r\n'; 
fwrite($file, $table . $line_break . $A . $line_break . $B . $line_break); 

以上の高速化:

$line_break = '\r\n'; 

$write_ok = file_put_contents("Tables.txt", $table . $line_break . $A . $line_break . $B . $line_break); 
if ($write_ok < 4) { // error 

} 
関連する問題