Avatar billede compac Seniormester
15. september 2010 - 20:19 Der er 4 kommentarer og
1 løsning

Skriv til en xml-fil

Jeg har et array, som jeg ønsker skrevet ud i en xml-fil.
$files[] = array(
                  "filename"=>$file,
                  "intLatitude"=>$intLatitude,
                  "intLongitude"=>$intLongitude);

Filen dannes i php-kode:


header("Content-type: text/xml");                 
for($i = 0; $i < sizeof($files); ++$i)      {
echo '<wpt ';                 
echo 'lat="' . $files[$i]['intLatitude'] .'" ';
echo 'lng="' . $files[$i]['intLongitude'] .'" ';
echo '>';
echo '<extensions>';
echo '<html>';
echo '<![CDATA[<a href="http://localhost/gpssql/gpxviewer.php" target="_blank">';
echo '<img src="'.parseToXML($files[$i]['filename']) .'"';
echo '/></a>]]>';
echo '</html>';
echo '</extensions>';
echo '</wpt>'; 
 
}           
?>

Hvordan får jeg oprettet en xml-fil, uden den skal have bekræftelse på at den må skrives?
Avatar billede arne_v Ekspert
15. september 2010 - 21:50 #1
Hvis du mener hvordan du fra server side (PHP) kan overskrive en fil client side uden at brugeren skal bekraeftige en overskrivning, saa er svaret nok at det kan du ikke - det ville vaere en slem sikkerheds bug hvis det kunne lade sig goere.

Bedste bud ville nok vaere en signed download applet som faar permanent ret saaledes at der ikke promptes hver gang.
Avatar billede compac Seniormester
17. september 2010 - 14:00 #2
Jeg har prøvet med følgende:

 
        $files[] = array(
                  "filename"=>$file,
                  "intLatitude"=>$intLatitude,
                  "intLongitude"=>$intLongitude);
                 
          }

header("Content-type: text/xml");               
for($i = 0; $i < sizeof($files); ++$i)      {
echo $myXML = '<wpt ';                 
echo $myXML .= 'lat="' . $files[$i]['intLatitude'] .'" ';
echo $myXML .= 'lng="' . $files[$i]['intLongitude'] .'" ';
echo $myXML .= '>';
echo $myXML .= '<extensions>';
echo $myXML .= '<html>';
echo $myXML .= '<![CDATA[<a href="http://localhost/gpssql/gpxviewer.php" target="_blank">';
echo $myXML .= '<img src="'.parseToXML($files[$i]['filename']) .'"';
echo $myXML .= '/></a>]]>';
echo $myXML .= '</html>';
echo $myXML .= '</extensions>';
echo $myXML .= '</wpt>'; 
 
}     
$file =fopen("myFile.xml","w");
fwrite($file,$myXML);
fclose($file);   

Den skriver oplysningerne i myFile.xml med den struktur jeg ønsker.

Dog er der 2 problemer.

1. Første linie: header("Content-type: text/xml"); mangler i myFile.xml.

2. Billederne bliver vist på skærmen når filen er skrevet. Hvordan slipper jeg for det?
Avatar billede arne_v Ekspert
27. september 2010 - 03:35 #3
re 1)

Fordi du outputter den og ikke skriver den til filen.

re 2)

Den viser vel kun billeder hvis du beder om det ????
Avatar billede arne_v Ekspert
20. november 2010 - 01:29 #4
Kommet videre?
Avatar billede compac Seniormester
20. november 2010 - 14:26 #5
Ja,
hvis jeg deler denne sætning op i 2

echo '<img src="'.parseToXML($files[$i]['filename']) .'"';
echo '/></a>]]>';

deles til:


$billede =parseToXML($files[$i]['filename']);
$xml .= '<![CDATA[<a href="#" onClick="window.close()"><img src="'.$map."/".$billede.'"></a>]]>';

- så funker det.
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