※ ChatGPTを利用し、要約された質問です(原文:xmlファイル(UTF-8)への書き出し時の改行)
xmlファイルへの書き出し時の改行
このQ&Aのポイント
PHPからXMLファイルへの書き出し時に改行が認識されず文字として認識されてしまう問題についてのアドバイスをお願いします。
XMLファイルの書き出しに関するスクリプトが改行を認識せず、改行文字が文字列として追加される問題があります。
改行が正しく認識されず、改行文字が文字列として追加されてしまう問題についての解決策を教えてください。
こんばんわ。
息詰ってしまったので質問をさせていただきます。
無理矢理な書き方をしているのがいけないのか
PHPからXMLファイルへ書き出しをすると改行として認識されず文字として認識されてしまいます。
どのたかご存じの方がいましたらアドバイスをお願いします!
■index.php(UTF-8、LF)
//書き出しに関してのスクリプトです。
$xmlfile="xml/samplexml.xml(xmlファイルまでのパスとxmlファイル名)";
//xmlに書き出しデータ作成
$xmldata = "<xmldata><データ>データだよ</データ><果物>いちご</果物><野菜>キュウリ</野菜></xmldata>";
$fp = @fopen($xmlfile , "a") or err_msg("XMLが開けません。");
flock($fp , LOCK_EX);
fputs($fp , $xmldata . "\n");
flock($fp , LOCK_UN);
fclose($fp);
■samplexml.xml(UTF-8、LF)
<?xml version="1.0" encoding="UTF-8"?>
<xmldata><データ>データだよ0</データ><果物>ばなな</果物><野菜>キャベツ</野菜></xmldata>
※ここに改行をさせてデータを追加したい。。
上のスクリプトの結果は改行されずに「\n」も文字として改行されずに追加されてしまう。(「\n\r」「\r」でもテストをしてみたのですが結果は同じでした。)
補足
NickAomoriさま アドバイスありがとうございます。 今しがた、自己解決しました。 解決方法は、 テキストエディター「mi」を使用しているので 「モードPHPの設定」「文字コード」の一番上「Unicode保存...」にチェックを入れたらきちんとバックスラッシュを認識しました。 NickAomoriさま本当にありがとうございました。