Strani spazi vuoti creati da fwrite()

JenPli

Nuovo Utente
27 Dic 2012
4
0
0
Buonasera a tutti... volevo scrivere tramite php un file *.XML funziona tutto solo che la scrittura del file avviene stranamente dalla terza riga e quindi ne consegue che non viene riconosciuto come file XML

Codice:
<?php session_start();
$nomeUtente = $_SESSION['nomeUtente'];
$convalidato = $_SESSION['inserito'];
?>
<?php
	if($convalidato != true)
	die("</head><body><h1 style='color:red'>Non hai il permesso di accedere a questa sezione</h1></body></html>");
?>
    
<?php
	if (!( $database = mysql_connect( "localhost","root", "" )))
	die("<h1 style='color:red'>Impossibile accedere al database1</h1>");

	if (!mysql_select_db("my_koup72", $database))
	die("<h1 style='color:red'>Impossibile accedere al database</h1>");

?>

<?php


// apri il file in scrittura
$esportato = fopen("logviaggi.xml","w");

$head ="<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE viaggi SYSTEM 'http://koup72.altervista.org/viaggi.dtd'>\n\n<viaggi>\n\n";

$foot ="</viaggi>";

// scrivi l'head

fwrite($esportato, $head);


//$testo = "\n";
$testo = "<nomeutente>$nomeUtente</nomeutente>\n\n";
fwrite($esportato, $testo);


$query="SELECT * from OfferteInserite WHERE NomeUtente = '$nomeUtente' ORDER BY idOfferta DESC;";

if (!($result = mysql_query($query, $database)))
{
	print("<h1>Impossibile interrogare il database</h1>" );
	die(mysql_error());
}



$riga=mysql_fetch_assoc($result);


while($riga)
{
$offId = $riga['idOfferta'];
//$offNomeUtente = $riga['NomeUtente'];
$offLuogoPartenza = $riga['LuogoPartenza'];
$offDataPartenza = $riga['DataPartenza'];
$offOrarioPartenza = $riga['OrarioPartenza'];
$offLuogoArrivo = $riga['LuogoArrivo'];
$offDataArrivo = $riga['DataArrivo'];
$offOrarioArrivo = $riga['OrarioArrivo'];
$offFlessibilita = $riga['Flessibilita'];
$offFermate = $riga['Fermate'];
$offPersone = $riga['Persone'];
$offBagagli = $riga['Bagagli'];
$offFumatore = $riga['Fumatore'];
$offNecessitaSoste = $riga['NecessitaSoste'];
$offSosteEventuali = $riga['SosteEventuali'];

$testo = "<offerta>\n";

$testo .= "<idofferta>$offId</idofferta>\n"; 
$testo .= "<offpartenza>$offLuogoPartenza</offpartenza>\n"; 
$testo .= "<offdatapar>$offDataPartenza</offdatapar>\n"; 
$testo .= "<offorariopar>$offOrarioPartenza</offorariopar>\n";
$testo .= "<offluogoarrivo>$offLuogoArrivo</offluogoarrivo>\n";
$testo .= "<offdataarrivo>$offDataArrivo</offdataarrivo>\n";
$testo .= "<offorarioarrivo>$offOrarioArrivo</offorarioarrivo>\n";
$testo .= "<offflessibilita>$offFlessibilita</offflessibilita>\n";
$testo .= "<offfermate>$offFermate</offfermate>\n";
$testo .= "<offpersone>$offPersone</offpersone>\n";
$testo .= "<offbagagli>$offBagagli</offbagagli>\n";
$testo .= "<offfumatore>$offFumatore</offfumatore>\n";
$testo .= "<offnecessitasoste>$offNecessitaSoste</offnecessitasoste>\n";
$testo .= "<offsoste>$offSosteEventuali</offsoste>\n";

$testo .= "</offerta>\n";

fwrite($esportato, $testo."\n");

$riga=mysql_fetch_assoc($result);

}//fine while

//ricerche..

$query="SELECT * from RicercheInserite WHERE NomeUtente = '$nomeUtente' ORDER BY idRicerca DESC;";

if (!($result = mysql_query($query, $database)))
{
	print("<h1>Impossibile interrogare il database</h1>" );
	die(mysql_error());
}


$riga=mysql_fetch_assoc($result);

while($riga) 
{
$ricId = $riga['idRicerca'];
//$ricNomeUtente = $riga['NomeUtente'];
$ricLuogoPartenza = $riga['LuogoPartenza'];
$ricDataPartenza = $riga['DataPartenza'];
$ricOrarioPartenza = $riga['OrarioPartenza'];
$ricLuogoArrivo = $riga['LuogoArrivo'];
$ricDataArrivo = $riga['DataArrivo'];
$ricOrarioArrivo = $riga['OrarioArrivo'];
$ricFlessibilita = $riga['Flessibilita'];
$ricPersone = $riga['Persone'];
$ricBagagli = $riga['Bagagli'];
$ricFumatore = $riga['Fumatore'];
$ricNecessitaSoste = $riga['NecessitaSoste'];
$ricCondividereSpese = $riga['CondividereSpese'];

$testo = "<ricerca>\n";

$testo .= "<idricerca>$ricId</idricerca>\n"; 
$testo .= "<ricpartenza>$ricLuogoPartenza</ricpartenza>\n"; 
$testo .= "<ricdatapar>$ricDataPartenza</ricdatapar>\n"; 
$testo .= "<ricorariopar>$ricOrarioPartenza</ricorariopar>\n";
$testo .= "<ricluogoarrivo>$ricLuogoArrivo</ricluogoarrivo>\n";
$testo .= "<ricdataarrivo>$ricDataArrivo</ricdataarrivo>\n";
$testo .= "<ricorarioarrivo>$ricOrarioArrivo</ricorarioarrivo>\n";
$testo .= "<ricflessibilita>$ricFlessibilita</ricflessibilita>\n";
$testo .= "<ricpersone>$ricPersone</ricpersone>\n";
$testo .= "<ricbagagli>$ricBagagli</ricbagagli>\n";
$testo .= "<ricfumatore>$ricFumatore</ricfumatore>\n";
$testo .= "<ricnecessitasoste>$ricNecessitaSoste</ricnecessitasoste>\n";
$testo .= "<ricspese>$ricCondividereSpese</ricspese>\n";

$testo .= "</ricerca>\n";

fwrite($esportato, $testo."\n");

$riga=mysql_fetch_assoc($result);

}//fine while

	fwrite($esportato, $foot."\n");
	fclose($esportato);
	
	header("Content-Type: text/xml; charset=utf-8");
	header("Content-Disposition: attachment; filename=logviaggi.xml"); 
	readfile("logviaggi.xml");
	
	mysql_close($database);
?>

In pratica il problema sono questi spazi vuoti che vengono creati...
non riesco a capire la provenienza..

Codice:
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE viaggi SYSTEM 'http://koup72.altervista.org/viaggi.dtd'>
Grazie in anticipo per l'aiuto!
 
Questi che stanno proprio all'inizio, alla prima riga prima della dichiarazione xml, nel secondo
Codice:
...

Ho questo errore infatti

[QUOTE]error on line 3 at column 6: XML declaration allowed only at the start of the document[/QUOTE]
 
Ultima modifica:
Prova ad utilizzare SimpleXML per comporre la struttura del file

Ma il file *.XML è corretto, il problema sono quegli spazi iniziali, se cancello la riga 1 e 2 è corretto

questo è il link al file xml http://koup72.altervista.org/file-xml.xml se vedete il codice sorgente cancellando la riga 1 e 2 funziona. Infatti il mio problema è capire come eliminare quelle due righe non capisco come si formino..
 
Ultima modifica:
Ho risolto, erano gli spazi che lasciavo tra un tag di chiusura php ?> e la riapertura :hammer:
 

Discussioni simili