PHP e xml un esempio please?

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
Ciao a tutti... ho una nuova curiosità, collegare php a xml per poi quest'ultimo essere preso da Flash.

in pratica come facciamo tra php e html vorrei fare la stessa cosa con xml

tipo
$articolo=htmlspecialchars($_POST['articolo']);


nel file xml

<descrizione>
<articolo><?php echo $articolo; ?></articolo>
</descrizione>


in pratica come faccio ad inserire una variabile
in mezzo..ai tag articolo>....$variabile..... </articolo là dentro?
come quando si gioca a pallacanestro ih ih ih

Grazie.

PS: uso la versione php4
 
Basta che visualizzi il codice XML:
PHP:
<?php
$articolo = htmlspecialchars($_POST['articolo']);

echo <<<EOF
<?xml version="1.0"?>
<descrizione>
    <articolo>{$articolo}</articolo>
</descrizione>
EOF;
Poi puoi accedere al file PHP come fosse un normalissimo file XML.

P.S. La versione 4 di PHP non è più usata da nessuna applicazione ed è sconsigliatissima in quanto non supporta molte librerie, né fornisce un'interfaccia valida per programmare ad oggetti. Passa a PHP5.
 
Scrivere le varibili dentro un altro file xml.... più volte ... "a+"

@gighen
Grazie gighen per la risposta però il mio problema è al contrario.
Cioè inserire le varibili dentro xml più volte, quindi un file a parte
e non dentro php.

PHP:
<?php
if(isset($_POST['articolo'])){

$articolo = htmlspecialchars($_POST['articolo']);
$var = fopen("articoli.xml", "a+");

fwrite($var, "

<?xml version='1.0' ?>
<descrizione>
     <articolo>$articolo</articolo>
</descrizione>");

fclose($var);
}
?>

<form action="#" method="POST">
articolo: <input type="text" name="articolo"><br>
<input type="submit" name="pulsante">
</form>
<br>

<a href="articoli.xml">articoli.xml</a>

questo script và tutto in una pagina
posso inserire il primo dato ma il secondo mi da errore (ovviamente) :book:

@eliox
grazie per la risposta. Avevo già visto quell'esempio che hai linkato
ma funziona in php 5 a me piace usare la vecchia versione di php4
stessa cosa per flash in modo tale che i miei lavori siano compatibili
per tutti.


Adesso vi mostro un esempio che ho già realizzato per capire meglio il concetto:

italia.jpg


http://max400scuola.altervista.org/aaa/italia-regioni-ridimensionare2.html
cliccando su sicilia e poi sul menu inserisci-Prodotti compare un form su cui si scrive il prodotto da inserire ed esso compare.
Questo l'ho fatto in Flash---> php--->deposito php ---> Flash

e quest'altro invece in Flash---> php---> deposito xml ---> Flash
http://max400scuola.altervista.org/aaa/mess-xml.php
e funziona :mavieni:
nonostante lo schema l'albero xml è sbagliato perche manca il primo nodo
il file xml viene generato man mano che l'utente scrive il prodotto.

In pratica ho infilato le variabili php dentro i simboli minore e maggiore <$articolo>$articolo</$articolo>
però non mi sembra un sistema opportuno.

Vediamo se riusciamo a concludere questa partita... a voi le carte!!!
 
Ultima modifica:
Onorevoli...ci sono riuscito!!!

http://max400scuola.altervista.org/aaa/mess-xml2.php

in pratica ho creato un file txt il quale viene letto in una variabile e poi
inserito "dentro" i tag <prodotti> $xml </prodotti>

ogni volta che aggiungo un nuovo prodotto esso viene inserito prima nel txt
e poi il txt viene inserito dentro xml sovrascrivendolo.

PHP:
<?php
if(isset($_POST['descrizione'])){

$prodotto=htmlspecialchars($_POST['prodotto']);
$descrizione=htmlspecialchars($_POST['descrizione']);
//file txt per aggiungere i nuovi prodotti
$var1 = fopen("deposito_txt2.txt", "a+");
fwrite($var1, "<font color='#FF0000'>$prodotto</font> <br /><font color='#0000FF'> $descrizione</font><br/>");
fclose($var1);

//qui il file viene letto....
$var_lettura = fopen("deposito_txt2.txt", "r");
$contenuto = fread($var_lettura, filesize("deposito_txt2.txt"));
fclose($var_lettura);

//....ed in questa variabile $xml vine inserito il $contenuto del file txt
$xml="
<prodotti>
<articolo>$contenuto</articolo></prodotti>";

//infine andiamo a sovrascrivere aggiungendo le novità lette
$var_sovrascrivi = fopen("deposito_xml2.xml", "w+");
fwrite($var_sovrascrivi, "$xml");
fclose($var_sovrascrivi);

}
?>

<table><tr><td>
<form action="#" method="POST">
prodotto: <input type="text" name="prodotto"><br>
descrizione: <input type="text" name="descrizione"><br>
<input type="submit" name="pulsante">
</form>
</td></tr></table>


l'unico problema è questa riga che mi segnala errore
Codice:
<?xml version="1.0" encoding="UTF-8" ?>

questa dovrebbe andare nella variabile $xml ma mi segnala errore... :mavieni:
ho provato a cambiare le virgolette o a toglierle completamente ma non
ne vuol sapere... avete una spiegazione? :book:

Ps: provate l'esempio però per vedere i nuovi prodotti inseriti dovete aggiornare
i file txt e xml contenuti nell'iframe :mavieni:

italia-xml11.jpg


ZOOM
italia-xml.jpg


http://max400scuola.altervista.org/aaa/mess-xml2.php
 
Ultima modifica:
Grande lavoro Max!
Però non capisco perché non vuoi lavorare con PHP5, la retrocompatibilità è comunque garantita..
 
Ciao Eliox,

mi piace l'antiquariato, :mavieni:

tutte le cose più vecchie mi appassionano
e poi mi piace dimostrare che si può ottenere tutto anche con script scadenti
e versioni preistoriche anche in flash ormai si usa la versione flash cs5 io invece uso mx
e pensa un po che nell'altro forum design c'è uno che usa ancora flash 6.0 mx.

comunque ho pesato che questo lavoro si può fare meglio col database in modo che
puoi inserire e cancellare i singoli prodotti anzi se non mi ricordo male col programma administrator si può generare l'xml?

Ora il problema è i caratteri accentati quella riga mi da errore e non so il perchè :book:
 
Perché quello spazio prima della chiusura?
PHP:
<?xml version="1.0" encoding="utf-8" ?>
prova
PHP:
<?xml version="1.0" encoding="utf-8"?>
 

Discussioni simili