\r\n\t\t\r\n\t \r\n\t\t\r\n\t\t \r\n\t \r\n\t\r\n\r\n```\r\n\r\n\r\n\r\n#環境\r\nロリポップレンタルサーバー\r\nChrome","answerCount":2,"upvoteCount":0,"datePublished":"2019-04-18T14:29:57.520Z","dateModified":"2019-04-18T14:33:44.423Z","acceptedAnswer":{"@type":"Answer","text":"テキストをgetのパラメータで渡しているので、urlエンコードして渡したほうがよいのではないでしょうか?\r\n\r\nencodeURI\r\n\r\n\r\n\r\n```ここに言語を入力\r\nlocation.href = \"?result=\"+encodeURI(result);\r\n\r\n\r\n```","dateModified":"2019-04-18T22:14:25.925Z","datePublished":"2019-04-18T22:13:02.064Z","upvoteCount":2,"url":"https://teratail.com/questions/185234#reply-275385"},"suggestedAnswer":[{"@type":"Answer","text":"もしこれで改行が見られたら、エディタがCRLFにしか対応していない可能性があります。\r\n```PHP\r\npreg_replace(\"/\\r\\n|\\r|\\n/\", \"\\r\\n\", $_GET['result'] )\r\n```\r\n\r\n【PHPで改行コードを統一する関数: CRLF, CR, LF が混在してる文字列を LF に変換するなど - Qiita】\r\n[https://qiita.com/suin/items/cbbbe8844fd734fa20e2](https://qiita.com/suin/items/cbbbe8844fd734fa20e2)","dateModified":"2019-04-18T15:31:51.360Z","datePublished":"2019-04-18T15:31:51.360Z","upvoteCount":0,"url":"https://teratail.com/questions/185234#reply-275365","comment":[]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"トップ","url":"https://teratail.com"},{"@type":"ListItem","position":2,"name":"PHPに関する質問","url":"https://teratail.com/tags/PHP"},{"@type":"ListItem","position":3,"name":"PHP","url":"https://teratail.com/tags/PHP"}]}}}
質問するログイン新規登録
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1243閲覧

phpからテキストファイルへ保存するときに改行を保存できない

hurumoon_1

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/04/18 14:29

編集2019/04/18 14:33

0

1

前提・実現したいこと

ロードボタンを押すとテキストファイルの内容を読み取ってテキストフィールドに反映される
セーブボタンを押すとテキストフィールドの内容を読み取ってテキストファイルに保存するページを作っています
しかし改行がセーブされていないようです
phpで書き込む際にbrタグをつけてみたりはしたのですがテキストファイルに<br />と書き込まれ、読み込む際は<br />もテキストフィールドに復元され「そうじゃないんや……」となっています
どうしたら改行を含めテキストファイルにセーブできますか?

該当のソースコード

index.php

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 6 <style type="text/css"> 7 body {background-color:#696969;} 8 </style> 9 10 <title>HTML</title> 11 </head> 12 <body> 13 <textarea name="text" rows="30" cols="100" id="disp" value=""></textarea> 14 <br /> 15 16 <script type="text/javascript"> 17 function save(idname){ 18 // value値を取得する 19 var result = document.getElementById(idname).value; 20 21 // Alertで表示する 22 alert('result'); 23 location.href = "?result="+result; 24 25 <?php 26 file_put_contents("text.txt", $_GET['result']); 27 ?> 28 29 } 30 </script> 31 <input type="button" value="save" onclick="save('disp');"> 32 33 <script type="text/javascript"> 34 function load(file){ 35 var rawFile = new XMLHttpRequest(); 36 rawFile.open("GET", "./text.txt", true); 37 rawFile.onreadystatechange = function () { 38 if(rawFile.readyState === 4) { 39 if(rawFile.status === 200 || rawFile.status == 0) { 40 var allText = rawFile.responseText; 41 var node = document.getElementById("disp"); 42 node.innerHTML = allText; 43 alert("load"); 44 } 45 } 46 } 47 rawFile.send(null); 48 } 49 if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { 50 var node = document.getElementById("disp"); 51 node.innerHTML = xmlHttp.responseText; 52 } 53 </script> 54 <input type="button" value="load" onClick="load()"> 55 56 </body> 57</html>

#環境
ロリポップレンタルサーバー
Chrome

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

テキストをgetのパラメータで渡しているので、urlエンコードして渡したほうがよいのではないでしょうか?

encodeURI

location.href = "?result="+encodeURI(result); <?php file_put_contents("text.txt", urldecode($_GET['result'])); ?>

投稿2019/04/18 22:13

編集2019/04/18 22:14
hash

総合スコア63

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hurumoon_1

2019/04/18 22:24

ありがとうございます! うまく改行が反映されました!
guest

0

もしこれで改行が見られたら、エディタがCRLFにしか対応していない可能性があります。

PHP

1preg_replace("/\r\n|\r|\n/", "\r\n", $_GET['result'] )

【PHPで改行コードを統一する関数: CRLF, CR, LF が混在してる文字列を LF に変換するなど - Qiita】
https://qiita.com/suin/items/cbbbe8844fd734fa20e2

投稿2019/04/18 15:31

kei344

総合スコア69643

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問