プロが教える店舗&オフィスのセキュリティ対策術

現在、テスト用サーバーで作成、動作確認を行ったプログラムをレンタルサーバーに移行しているのですが
その過程で、分からない事が発生したので質問させていただきます。
PHPでDomDocumentでXMLを作成し、$dom->save("aaa.xml")と保存したいのですが
上記内容を実行すると、ファイルが保存されません。
パーミッションの設定も問題なく、上記内容をチェックしてもエラーも返らないで書き込んだバイト数を返してきます。
プログラム上は、XMLの作成、保存はうまく言っているようなのですが・・・
試しに、拡張子をxmlでは無く、$dom->save("aaa.php")と変更するとちゃんと保存されます。
という事は、やはり保存はうまく言ってるはずだと思うのですが・・・
FTPからは、拡張子がxmlでもアップロードできます。
PHPからは拡張子をphpにすると大丈夫だったので試しにtxtにもしてみましたが、txtは保存出来ませんでした。
これは、サーバー側の設定でしょうか?
もしそうだとすると、.htaccessで設定可能でしょうか?(.htaccessでの設定をどこまで許可してるかにもよると思いますが・・)
可能な場合は、設定名というか項目名は何になるのでしょうか?
管理会社では特になにか制限はしていないとの事ですが、何が考えられますでしょうか?
以上、どなたか分かる方がいらっしゃったら、ご回答お願いいたします。

A 回答 (1件)

パーミッションの設定かもと思ったのですが、.phpの拡張子なら保存出来るとの事ですので、違うようですね。



一度、普通に「fwrite()関数」などを使って、xmlやtxtなどの拡張子が保存出来るか試してみたらどうでしょう。

この回答への補足

fwriteで適当な文字列を保存して試したところ
拡張子xmlでも問題なく保存できました・・・
$dom->saveXML()でブラウザには正常に表示することは出来るのでDomDocumentの内容も問題ないと思うのですが・・・
これは、普通に文字列でXMLを構成して、fwriteで保存するしかないですかね?

補足日時:2011/09/14 18:17
    • good
    • 0
この回答へのお礼

$dom->save("aaa.xml")で保存出来ない理由は不明ですが
一度テキストにしてから以下の方法で保存したらうまくいきました。

$text = $dom->saveXML();
$fp = fopen('aaa.xml','w');
flock($fp, LOCK_EX);
fwrite($fp,$text);
fclose($fp);

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

お礼日時:2011/09/14 18:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!