PHP初心者です。

年月日を記録してあるxmlを、phpから書き換えたいのですが、
動作しなくて困っています。。

現在の年月日は 2011.4.7 で
書き換え後の年月日は 2100.9.9 にしたいです。

「index.html」と「memory.xml」が同じフォルダ内にあります。


●memory.xmlの内容は以下のとおりです--------------------

<?xml version="1.0"?>
<memory>
  <year>2011</year>
  <month>4</month>
  <day>7</day>
</memory>


●htmlに以下のphpコードを書きました--------------------

<?php
  $memoryFile = 'memory.xml';

  if ( $xml = simplexml_load_file ( $memoryFile ) ) {

    function changeMemory ( $year, $month, $day ) {
      $xml -> year = $year; //年の書き換え
      $xml -> month = $month; //月の書き換え
      $xml -> day = $day; //日の書き換え

      $xml -> asXML ( $memoryFile ); //ファイルに書き出す
    }

    changeMemory ( 2100 , 9 , 9 );
  }
?>


どうも、以下の1文が作動してくれない気がします。。
$xml -> asXML($memoryFile); //ファイルに書き出す

どなたか原因がわかる方いらっしゃいましたら、
なにとぞご教授よろしくお願いいたします。。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

#1です、間違えました・・;


あと、書きかえるのであれば memory.xml に変更権限が必要です。

<?php
$memoryFile = 'memory.xml';
if ($xml = simplexml_load_file($memoryFile)) {
$xml = changeMemory($xml, 2100, 9, 9);
$xml->saveXML($memoryFile);
}

function changeMemory($xml, $year, $month, $day) {
$xml->year = $year;
$xml->month = $month;
$xml->day = $day;
return $xml;
}
    • good
    • 0
この回答へのお礼

できました!ありがとうございます、本当に助かりました!

お礼日時:2011/04/08 13:13

<?php



$memoryFile = 'memory.xml';
if ($xml = simplexml_load_file($memoryFile)) {
$xml = changeMemory($xml, 2100, 9, 9);
$xml->saveXML($memoryFile);
}

function changeMemory($xml, $year, $month, $day) {
$xml->year = $year;
$xml->month = $month;
$xml->day = $day;
return $xml->asXML();//saveXML
}
    • good
    • 0

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


人気Q&Aランキング