• ベストアンサー

fwriteで改行出来ない

$fno = fopen($newsFilePath."/test.txt", 'w'); fwrite($fno, 'test\r\n'); fwrite($fno, 'test\r\n'); fclose($fno); とすると、きちんとファイルは生成されるのですが、 中身が「test\r\ntest2\r\n」になってしまいます。 「\r\n」の位置で改行して2行で出力させるには、 どうすればいいでしょうか? 前はたしか\r\nでうまくいっていたんですが、、、 何がいけないんでしょう? どなたかお分かりの方教えてください。 よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

fwrite($fno, 'test\r\n'); を fwrite($fno, "test\r\n"); にする

guest98
質問者

お礼

ありがとうございました。 解決しました。

その他の回答 (1)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

ダブルクォーテーション?

guest98
質問者

お礼

ありがとうございました。 解決しました。

関連するQ&A

  • fwrite の文法が間違っていますか?

    どうしてもエラーになってしまいます どこが間違っているかお教え頂けませんでしょうか 宜しくお願い致します $fp_i = fopen($indexphp, "w"); fwrite($fp_i, "<html>\n<head>\n"); fwrite($fp_i, "<title>title</title>\n"); fwrite($fp_i, "<meta http-equiv=\"content-type\" content=\"text/html; charset=Shift_JIS\">\n"); fwrite($fp_i, "</head>\n"); fwrite($fp_i, "<body>\n"); fwrite($fp_i, "<?php\n"); fwrite($fp_i, "$txt = 'test'\n"); fwrite($fp_i, "print'($txt)';\n"); fwrite($fp_i, "?>\n"); fwrite($fp_i, "</body>\n"); fwrite($fp_i, "</html>");

    • ベストアンサー
    • PHP
  • ファイル書き込みでの改行

    <?php $file = fopen('test.txt','a'); fwrite($file,'test\r\n'); ?> test\r\ntest\r\n 実行するとこのような結果になるのですが、 test test のように書き込むことは可能でしょうか? 環境は XAMPP 1.6.4 です。

    • ベストアンサー
    • PHP
  • fwriteについて

    #include<stdio.h> int main(void) { FILE* fp; double f[5]={ 3.1, 2.9, 4.2, 3.7, 4.0}; double data; fp=fopen("test.txt","wb"); if(fp==NULL) { printf("text.txtが開けません。"); return 0; } fwrite(f,sizeof(double),5,fp); fclose(fp); }と入力したのでが、test.txtファイルを見ると 文字化けがでて、数値がわかりません。 数値もテキストファイルに出力する方法があったらご教授よろしくお願いします。できたらなぜこのようなことが起きたのか教えてくださるとうれしいです。

  • PHP初心者です、教えていただけすか。

    /public_html /test のtest.txtの文字列をtest.phpで表示させたいのですが、 下記の文では表示されません、どこがおかしいのか教えてください。 <?php $fp = fopen ('test.txt', 'w'); $date = "test\n"; var_dump (fwrite($fp, $date)); fclose ($fp); ?>

    • ベストアンサー
    • PHP
  • fwrite文について

    char型で宣言した配列の方はうまくいきましたが、構造体を用いたfwrite文がうまく出力されません。 どうしてでしょうか? #include <stdio.h> #include <string.h> #include <stdlib.h> struct ll{ char name[20]; int ten[3]; }list[3] = { {"aaa", 11}, {"bbb",22}, {"ccc",33} }; FILE *fpbin, *fpcsv; /*FILE構造体(グローバル変数)*/ void main(void) { char i[] = {'a','b'}; fpbin = fopen("data.txt","w"); //fwrite(&i,sizeof(char),2,fpbin); fwrite(&list[0].name,sizeof(struct ll),2,fpbin); fclose(fpbin); }

  • ファイル出力で改行を入れたい!

    data.txtにファイル出力を行うのですが、gets(c)で入力した一語一語に改行を入れてdata.txtに出力したいのですがどうすればよいでしょうか。 返答のほどよろしくお願いいたします。 include<stdio.h> #define SIZE 20 void main(void) { char c[SIZE], *p; FILE *fp; fp = fopen("data.txt","w+"); p = c; while(gets(c) != NULL){ fputs(p,fp); } fclose(fp); printf("data.txtへ出力しました\n"); }

  • fpoenからの改行コードの扱いについて

    ただいまMacOSX(10以降)でプログラミングをしています。このOSでは改行コードはLFつまり、"\n"が当てはめられているはずです。(でいいんでしょ??) ///// abc.txt(改行や空白もそのまま)////// abc def ghi ///////////////////////////////////// このテキストをfopenで開き、fgetsで1文字ずつスキャンしていて"\n"にぶちあたるとある変数をインクリメントし、最後にその行数を出すというプログラムを書いてます。 この場合改行"\n"は3回あるので最終的に3+1、つまりこのテキストは4行あるということを表示できるはずなのですが、なぜか改行が1回としか認識されず結果2行のテキストとして出力されてしまいます。 いろいろ試した結果、どうやら"\n"を判断できている場所はその次が空白の行の場合だけなのです。つまり、コンピュータ的には ///// abc.txt(改行や空白もそのまま)////// abc\n ←ここは次にdefという文字列がきているので\nが認識されていない def\n ←ここしか認識されていない   \n ←同様に次の文字列がくるので認識されていない ghi ///////////////////////////////////// としか認識されていないようなのです。 なぜ\nの続きが文字列であると なぜこのようなことになるのでしょうか? \nの扱い方が間違っているのでしょうか?解決方法がおかる方がいればよろしくおねがいします。

  • ファイルに書き込む時の負荷について

    PHPバージョン5.2.4を使っています。 次のような // ------------------------------------ $fp = fopen("data.txt", "w"); $buf = ""; for ($i = 1; $i <= 3; $i++) { $buf .= "aaa$i\n"; } fwrite($fp, $buf); fclose($fp); // ------------------------------------ という変数にいったん保存してから書き込む場合と // ------------------------------------ $fp = fopen("data.txt", "w"); for ($i = 1; $i <= 3; $i++) { $buf = "aaa$i\n"; fwrite($fp, $buf); } fclose($fp); // ------------------------------------ というその都度ファイルに書き込む場合とでは どちらが良い悪いというのはあるのでしょうか? たとえばこちらのやり方は負荷がかかるなど ループが多くなっていった場合に違いがでてくるのでしょうか?

    • ベストアンサー
    • PHP
  • qmail+phpでfwriteができません

    お世話になります qmailの.qmailを変更し空メールをトリガーにphpを起動させ さまざまな処理を行いたいと考えています! 次のようなテストをしたのですが、なぜかfwrite()が動いてくれません test1の「aaa.php」 - 成功 はじめににmb_send_mail()を書いて空メールを送ることに成功しました。 test2の「aaa.php」 - 失敗 次にfwrite()を書いてtest2.txtが作れるか試してみたのですが出来ませんでした。 なぜ、test2.txtが作れないのかわかる方にご教授願いたいです。 なにとぞよろしくお願いいたします ・test2の「aaa.php」を直接ブラウザで参照すると成功します。 ・test2.txt及び下層フォルダの属性を777にしてみましたが失敗します。 ・test2の「aaa.php」にchmod("test2.txt",0777)を加えましたが失敗します。 ・is_writable()でtest2.txtを調べるとfalseが帰ってきているようです(成功しているmb_send_mail()を使って検証) (.qmail)--- | /usr/bin/php /var/www/vhosts/Mydomain/httpdocs/aaa.php #mb_send_mail()は成功するのでここの設定は問題ないと思われます (test1の「aaa.php」 - 成功)--------- function Sendmail($title,$body,$to,$from_name,$from_email) { mb_language('Ja'); mb_internal_encoding('utf-8'); $mailfrom='From:'.mb_encode_mimeheader($from_name).'<'.$from_email.'>'; mb_send_mail($to,$title,$body,$mailfrom); } Sendmail('mailtest','test','test@Mydomain.com','test','test@Mydomain.com'); (test2の「aaa.php」 - 失敗)--------- $test = "test"; $filename = "test2.txt"; //chmod($filename, 0777); $handle = fopen($filename, 'w+'); fwrite($handle, $test); fclose($handle);

    • ベストアンサー
    • PHP
  • fputsで改行できない

    $construction='aaa'; $explanation='bbb'; define(DATA, './data'); $fp = fopen(DATA . '/' . $name, 'w') or die('ファイルを開けません'); flock($fp, LOCK_EX); fputs($fp, $construction . "\\r\\n" . $explanation) or die ('ファイルに書き込めません'); fclose($fp); 作成されたファイルを開いてみると aaa\r\nbbbと表示され、改行されません。 "\\r\\n"ではなく"\\n"のみにしても同様です。 二十引用符にしているのに、改行されません。 fputsに複数の変数を同時に入れ、それぞれの間に改行をいれるにはどうすればよいでしょうか? 文字コードはShift-JISです。 ご教示頂けると幸いです。 宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう