SimpleXML->asXML()がうまく動作しません - PHPプロ!Q&A掲示板
以下のソースで、xmlファイルを操作したいのですが、
- --- source ---
- function overwriteXml($file_name)
- {
- $xml = simplexml_load_string(file_get_contents(XML_FILEPATH));
- $file = UPLOAD_PATH. $file_name;
- $xml->contents['file'] = $file; //cotentsのfileを編集
- // 出力
- file_put_contents(XML_FILEPATH, $xml->asXML());
- }
- --- xml ---
- xml version="1.0" encoding="UTF-8"
- <headline>
- <!-- 1 -->
- <contents title="dummy" file="http://localhost/head_line/1_test.flv" thums="dummy.jpg" type="dummy" url="dummy/" target="_self">
- <text>dummy</text>
- <cm file="dummy.jpg" type="movie"/>
- </contents>
- </headline>
$file_nameに、データベースから取得した値を渡して
定数 UPLOAD_PATHと結合して、contentsのfileを編集する
というのが一連の流れになります。
これを実行すると、contensのfileには、
<contents title="dummy" file="http://localhost/head_line/" thums="dummy.jpg" type="dummy" url="dummy/" target="_self">
のようにUPLOAD_PATHのパスのみが出力されてしまいます。
ちなみに、
$xml->contents['file'] = $file;
の後に echoしてみると、定数とファイル名が結合された値が表示
されます。
また、
$file = UPLOAD_PATH. $file_name;
を、
$file = UPLOAD_PATH. "2_test.flv"; //DBに格納されている値と一緒
としたり、
overwriteXml("1_test.flv");
とすると、echoのみならず xmlも正しく出力できます。
なぜか、DBから取得した値を用いるとうまく出力されません。
これ以上どうすれば良いかわからなくなり質問した次第です。
環境:
PHP Version 5.2.2
PostgreSQL 8.2
cakePHP
ご教示のほどよろしくお願いいたします。
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。




ページのトップへ


SQLインジェクション対策は時と場合で使う関数が変わります。その時にあったものを使いましょう。