> Subject: Re: Modifying Existing Text File From PHP Is Not Working > From: lexsimon@xxxxxxxxx > Date: Sun, 27 Jun 2010 13:47:53 +0200 > To: ajwei@xxxxxxxxxxxxx > > You are closing your file too early. Close it outside the foreach. > An other point : you should not 'edit' an XML file by this way ; use an XML api like dom or simplexml > > Regards > > -- > Alexandre Simon > http://alex.zybar.net > Hi, I did try changing the fclose to after all the brackets in my php file. On another note, I checked the permission of my folder that I was attempting to write in, which all users have write, modify, read and execute permissions. I don't see any 500 or permission denied errors, and I use IIS, so I don't use apache. It didn't work though, the suggestion you provided on simpleXML looks promising, and yet I am writing not to the child, and plus I seem to be getting a 500 error. Another thing is, do I need to "save" the file after all this echoing is done using simpleXML? BTW, here is the code, which I am sure that I must have done something wrong here. Could anyone please help me out here? Thanks for your help. Is it possible that I could do it the way I did it before by any chance? <?php $name= "Test"; $phone= "123-456-7890"; $email = "mymail@xxxxxxxx"; $comments = "Test Only"; //If file exists. append, otherwise create $file = "messages.xml"; $xml = simplexml_load_file($file); $xml-> messages[0]->addChild("message", ""); $xml -> message[0]->addChild("name",$name); $xml -> message[0] ->addChild("phone",$phone); $xml -> message[0] -> addChild("email",$email); $xml-> message[0] -> addChild("comments",$comments); echo $xml->asXML(); ?> Alice > Le 27 juin 2010 à 13:20, Alice Wei <ajwei@xxxxxxxxxxxxx> a écrit : > > > > > Hi, > > > > I have the code as in the following: > > > > <?php > > > > $name= "Test"; > > $phone= "123-456-7890"; > > $email = "myemail@xxxxxxxxxx"; > > $comments = "Test Only"; > > > > $string = "<message>\n<name>" . $name . "</name>\n<phone>" . $phone . "</phone>\n<email>". > > $email . "</email>\n<comments>" . $comments . "</comments>\n</message>"; > > > > //If file exists. append, otherwise create > > $file = "messages.xml"; > > $fh = fopen($file,"a"); > > $lines = file($file); > > > > //Output a line of the file until the end is reached > > foreach($lines as $line) { > > > > if (trim($line) == "<messages>") { > > > > $line = "<messages>" . $string; // If string, change it. > > echo $line . "<br>"; > > fwrite($fh, $line); > > > > } > > else { > > > > // If not don't write anything > > echo $line . "<br>"; > > > > } > > fclose($file); // Close the file. > > } > > ?> > > > > For some reason, it is writing out the lines, but it is not f-writing to the file. Here is the file that is meant to be edited: > > > > <messages> > > <message> > > <name>Me</name> > > <phone>123-456-7890</phone> > > <email>test@xxxxxxxx</email> > > <comments>This is my message board!</comments> > > </message> > > </messages> > > > > Have I missed something here? How come the file cannot perform fwrite actions? > > > > Thanks for your help. > > > > _________________________________________________________________ > > The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail. > > http://www.windowslive.com/campaign/thenewbusy?tile=multiaccount&ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_4 _________________________________________________________________ The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail. http://www.windowslive.com/campaign/thenewbusy?tile=multiaccount&ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_4