Avatar billede okidoky Nybegynder
22. juni 2009 - 19:32 Der er 3 kommentarer

skriv til xml fra php, simpel

Hejsa

Error writing to file, det er hvad jeg fra denne kode:

include("include/conn.php");
$sql = mysql_query("SELECT * FROM tblImg where b_mapID=".$_REQUEST["m_id"]) or die("Mysql fejl");

$songs_final = mysql_fetch_array($sql);

$write_string = "<?xml version='1.0' encoding='UTF-8' ?><gallery cellDimension='800' columns='4' zoomOutPerc='15' zoomInPerc='100' frameWidth='20' frameColor='0xFFFFFF' captionColor='0xFFFFFF' enableRightClickOpen='true' >";

foreach($songs_final as $song){

    $write_string .= "<image>";
    $write_string .= "<url>images/gallery/".$song['b_navn']."</url>";
    $write_string .= "</image>";

}
$write_string .= "</gallery>";
$fp = fopen("gallery.xml", "w+");
fwrite($fp, $write_string) or die("Error writing to file");
fclose($fp);
Avatar billede arne_v Ekspert
22. juni 2009 - 20:04 #1
Hvor forsoeger fopen at aabne en fil naar der ikke er angivet dir i filnavnet?

Og er det et sted som PHP har lov til at skrive?
Avatar billede okidoky Nybegynder
22. juni 2009 - 20:15 #2
Ja jeg har givet den permission til at skrive...

Hvad mener du med at der ikke er angivet dir i filnavnet?
Avatar billede okidoky Nybegynder
22. juni 2009 - 21:57 #3
Alstå jeg fandt denne kode, ser ud til at være bedre end den jeg har. men kan stadig ikke skrive til filen:

<?php
$header = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n\n";
$nodeStart = "<gallery cellDimension='800' columns='4' zoomOutPerc='15' zoomInPerc='100' frameWidth='20' frameColor='0xFFFFFF' captionColor='0xFFFFFF' enableRightClickOpen='true' >\n";
$nodeEnd = "</gallery>\n";


    function write_beg($filename, $header, $nodeStart, $data, $nodeEnd)
    {
    //Imports old data
    //Imports old data
    $handle = fopen($filename, "r");
    $old_content = fread($handle, filesize ($filename));
   
    $f[] = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";
    $f[] = "<gallery cellDimension='800' columns='4' zoomOutPerc='15' zoomInPerc='100' frameWidth='20' frameColor='0xFFFFFF' captionColor='0xFFFFFF' enableRightClickOpen='true' >";
    $f[] = "</gallery>";
   
    foreach($f as $key => $value)
    {
      $old_content = trim(str_replace($value, "", $old_content));
    }
   
    fclose($handle);

    //Sets up new data
    $final_content = $header.$nodeStart.$data.$nodeEnd.$old_content;

    //Writes new data
    $handle2 = fopen($filename, "w");
    $finalwrite = fwrite($handle2, $final_content);
    fclose($handle2);
    }



include("include/conn.php");
$sql = mysql_query("SELECT * FROM tblImg where b_mapID=".$_REQUEST["m_id"]) or die("Mysql fejl");
while($title = mysql_fetch_array($sql)){

$filename = "gallery.xml"; // File which holds all data
$data = "<image>\n<url>images/gallery/".$title["b_navn"]."</url>\n</image>\n";

}
write_beg($filename, $header, $nodeStart, $data, $nodeEnd);

?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester