XMLファイル(test02.xml)を読み込んで別のファイルに保存しようとする短いPHPプログラムがあります。DOMDocument-> save( 'filename')を使用してxmlファイルを保存する際に問題が発生しました
プログラムは次のとおりです。
<?php
//The next three lines are needed to open a file for writing on the server I use.
$stream_options = array('ftp' => array('overwrite' => TRUE));
$stream_context = stream_context_create($stream_options);
$fxml = fopen("ftp://userid:[email protected]/public_html/programs/test03.xml","w",0,$stream_context);
//The next three lines create a new DOMDocument, load the input file, "test02.xml"
//and attempt to save the loaded file in the output file "test03.xml"
$doc = new DOMDocument;
$doc->load("test02.xml");
$doc->save("test03.xml");
?>
ファイルtest03.xmlが適切に開き、それが存在しない場合は作成されます。ただし、出力はありません。ロードされたファイルtest02.xmlは、空ではなく整形式のXMLです。私は他のPHPプログラムを使って読み込んで読み込みました。
私は上記のプログラムを実行すると、私はメッセージを取得:
警告:のDOMDocument :: [domdocument.save](test03.xml)を保存する:ストリームをオープンに失敗しました:中/家庭拒否許可/ yurow/
phpbuilder.com/manual/en/function.dom-domdocument-:ライン上でwwwrootに/ yurowdesigns.com /プログラム/ xmlTest.phpは8
私はで '保存' コマンドの構文をチェックしてsave.php
正しいと思われます。これを引き起こしている何の考えですか?
@ user1107199 ftpで見ると/ home/yurowは "/"ルートレベルです。したがって、wwwrootディレクトリの隣にxmldataディレクトリを作成するだけです。言い換えれば、あなたのftpクライアントを見ると/ wwwrootと/ xmldataを見ることができます(そこに他のものがあります) –
/XMLFilesというフォルダを作成し、fopen()以下のステートメントを使用します。 $ fxml = fopen( "ftp:// userid:password!@ www.yurowdesigns.com/XMLFiles/test03.xml"、 "w"、0、$ stream_context); (10行目)$ doc-> save( "/ home/yurow/XMLFiles/test03.xml");警告:DOMDocument :: save(/home/yurow/XMLFiles/test03.xml)[domdocument.save]:ストリームのオープンに失敗しました:/ homeでの権限が拒否されました。 /yurow/wwwroot/yurowdesigns.com/programs/xmlTest.php 10行目。この赤ん坊がきつく締まっているようですね! – user1107199
@ user1107199 ftpでファイルを作成してローカルで読む理由がわかりません。これを行う理由があると仮定すると、スクリプトの先頭にumask呼び出しを追加することができます。例えばumask(0000)。そして、あなたとあなたのapacheユーザが読み書きできるように、XMLFilesディレクトリが設定されていることを確認してください。 –