xml geht, php nicht

tholie

Grünschnabel
Hallo,

folgende php Datei erzeugt eine xml bilderliste:

PHP:
<?php
	// START CONFIG
		$imgdir = "Bilder/";
	// END CONFIG
	
	echo('<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>');
	echo('<Galery>');
	
	$fd = opendir($imgdir);
	while($pic = readdir($fd)) {
		if(preg_match('/\.(jpg|gif|png)$/i', $pic)) {
			$size = getimagesize($imgdir . $pic);
			echo ('<pic src="'. $pic . '" width="'. $size[0] .'" height="'. $size[1] .'"></pic>') ."\n";
		}
	}
	echo('</Galery>');
?>

Im AS habe ich bei mir local das mit obigem script erzeugte xml als xml file eingebunden. Das funktioniert soweit auch wunderbar.
Live auf dem Server soll das dann aber mit diesem Script funktionieren. Also statt der XML liste dann das PHP im AS eingebunden. Hier passiert jedoch ....nix.
ICh habe dann mal testweise das XML file live auf dem server eingebunden. hier werden die benötigten Daten geladen. So funktionierts also. Was mache ich falsch? Ich habe nix geändert ausser statt dem XML File das PHP File eingebunden.

Gruss tholie
 
Zuletzt bearbeitet:
Hi,

poste bitte mal die Ausgabe des PHP-Scripts.

Hast Du die "ignoreWhite"-Eigenschaft des XML-Objekts auf true gestellt?

Gruß
.
 
Hier mal das generierte xml:

PHP:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Galery>
<pic src="001-001-s.jpg" width="203" height="305"></pic>
<pic src="001-002-s.jpg" width="203" height="305"></pic>
<pic src="001-003-s.jpg" width="203" height="305"></pic>
<pic src="001-004-s.jpg" width="458" height="305"></pic>
<pic src="002-001-s.jpg" width="247" height="305"></pic>
<pic src="002-002-s.jpg" width="216" height="305"></pic>
<pic src="002-003-s.jpg" width="200" height="305"></pic>
<pic src="003-001-s.jpg" width="203" height="305"></pic>
<pic src="003-002-s.jpg" width="203" height="305"></pic>
<pic src="003-003-s.jpg" width="203" height="305"></pic>
<pic src="003-004-s.jpg" width="203" height="305"></pic>
<pic src="004-001-s.jpg" width="253" height="305"></pic>
<pic src="004-002-s.jpg" width="247" height="305"></pic>
<pic src="004-003-s.jpg" width="245" height="305"></pic>
<pic src="005-001-s.jpg" width="203" height="305"></pic>
<pic src="005-002-s.jpg" width="203" height="305"></pic>
<pic src="005-003-s.jpg" width="203" height="305"></pic>
<pic src="006-001-s.jpg" width="203" height="305"></pic>
<pic src="006-002-s.jpg" width="203" height="305"></pic>
<pic src="006-003-s.jpg" width="203" height="305"></pic>
<pic src="006-004-s.jpg" width="203" height="305"></pic>
<pic src="006-005-s.jpg" width="446" height="305"></pic>
<pic src="006-006-s.jpg" width="203" height="305"></pic>
<pic src="007-001-s.jpg" width="203" height="305"></pic>
<pic src="007-002-s.jpg" width="203" height="305"></pic>
<pic src="008-001-s.jpg" width="458" height="305"></pic>
<pic src="008-002-s.jpg" width="203" height="305"></pic>
<pic src="009-001-s.jpg" width="254" height="305"></pic>
<pic src="009-002-s.jpg" width="213" height="305"></pic>
<pic src="010-001-s.jpg" width="203" height="305"></pic>
<pic src="011-001-s.jpg" width="241" height="305"></pic>
<pic src="011-002-s.jpg" width="215" height="305"></pic>
<pic src="011-003-s.jpg" width="242" height="305"></pic>
<pic src="011-004-s.jpg" width="444" height="305"></pic>
<pic src="012-001-s.jpg" width="203" height="305"></pic>
<pic src="012-002-s.jpg" width="203" height="305"></pic>
<pic src="012-003-s.jpg" width="203" height="305"></pic>
<pic src="012-004-s.jpg" width="203" height="305"></pic>
<pic src="013-001-s.jpg" width="216" height="305"></pic>
<pic src="013-002-s.jpg" width="404" height="305"></pic>
<pic src="013-003-s.jpg" width="227" height="305"></pic>
<pic src="013-004-s.jpg" width="458" height="305"></pic>
<pic src="013-005-s.jpg" width="203" height="305"></pic>
</Galery>

wie gesagt wenn das in einem xml file steht und ich dieses xml file in AS einbinde dann klappt das. nur als php file wills nicht funktionieren

die ignore white eigenschaft steht auf true

gruss tholie
 
Zuletzt bearbeitet:
Hey,

das sieht aber alles ganz schön aus. Ich nehme an, dass da was bei der Übergabe im AS nicht funktioniert.

Wenn ich dich richtig verstanden habe, soll die PHP die XML nur virtuell erstellen und so an Flash weitergeben.

War da nicht was mit dem
PHP:
echo "&output=<?xml version=...";
damit Flash versteht, dass es für AS bestimmt ist? Aber vielleicht liege ich ja auch falsch und das wurde mittlerweile geändert.

Eine andere "um-die-Ecke" Lösung wäre:
Du lässt die Ausgabe von PHP in eine XML schreiben und includest diese in derselben PHP am Ende. Die PHP stellt also nach Aufruf immer nur den Inhalt deiner XML dar, nachdem sie ihn frisch geschrieben hat. Diese PHP lässt du dann von AS einfach auslesen.
Aber das ist wirklich im die Ecke.


VG
benchmark
 
Hi,

an der Ausgabe kann ich nichts problematisches entdecken (die Angabe von Version und Encoding ist übrigens optional).

Poste bitte die beiden Dateien (.fla und .php) oder probier mal folgendes:

Lass Dir nach dem Laden des XML-Objekts den Status (this.status) ausgeben, und dann den Inhalt des XML-Objekts als String (this.toString()). Poste die Ergebnisse hier.

Gruß
.
 
So hab jetzt mal die *.fla und die *.php hier drangehangen.

danke für eure mühen
gruß tholie
 

Anhänge

  • Archiv.zip
    9,2 KB · Aufrufe: 13
Eine andere "um-die-Ecke" Lösung wäre:
Du lässt die Ausgabe von PHP in eine XML schreiben und includest diese in derselben PHP am Ende. Die PHP stellt also nach Aufruf immer nur den Inhalt deiner XML dar, nachdem sie ihn frisch geschrieben hat. Diese PHP lässt du dann von AS einfach auslesen.

so ähnlich habe ich auch schon gedacht.
Ich wollte schon die orginal html datei in der das flash eingebunden ist als php datei machen und dort die fileliste vorab generieren lassen sodas die xml datei existiert.

Beide Möglichkeiten, Deine und meine, brauchen dann aber die xml-datei Beschreibbar für den Webserver. Und sowas finde ich immer sehr unsauber. Käme für mich nur als absoluter Notnagel in Betracht. Und in diesem Fall schon mal gleich gar nicht, weil sooft ändern sich die Bilder bei diesem Kunden nicht und ich hab ja immer noch die Möglichkeit die XML-Liste "per Hand" zu generieren.

Aber das nur mal so nebenbei :)
An der Lösung meines Problems bin ich nachwievor interessiert.

Gruß
tholie
 
Hi,

wenn ich Deine PHP-Datei verwende, und für Testinhalte (Dateinamen, Bidlergrößen) sorge, kann die Scriptausgabe problemlos eingeladen und geparst werden. Bist Du sicher, dass Dein Script nicht vielleicht eine Fehlermeldung oder Warnung (a la "Verzeichnis nicht gefunden") ausgibt?

Was geben
Code:
trace(this.status);
und
Code:
trace(this.toString());
innerhalb der onLoad-Methode des XML-Objekst zurück?

Befindet sich das Script (oder der Bilderordner) vielleicht in einem Verzeichnis, auf das Du von Flash aus keinen Zugriff hast?

Gruß

P.S.: Die XML-Datei temporär auf dem Server zu erzeugen, macht bei wenigen Bildern keinen Sinn (es sei denn, Du wolltest die Ausgabe cachen), und ist auch sicher unnötig; ich habe täglich mit dem Parsen von PHP-Rückgaben zu tun, und das sollte ohne Probleme klappen.
.
 
Hm, ich kann trace doch gar nicht verwenden?! Zumindest nicht live auf dem Server hier sollte mir aber der Apache in den Error logs entsprechende Fehlermeldungen bringen wenn denn der Pfad oder die Dateirechte nicht in Ordnung sind. Jedenfalls tut er dies aber nicht. Was mich darauf schließen lies das zumindest dies in Ordnung ist.

Local auf dem MacBook verwende ich aus flash heraus ja die XML-Datei da imho das php script nicht interpretiert werden kann, weil es ja nicht innerhalb der localen Webserver Umgebung läuft. Oder mache ich da grundsätzlich was falsch?

Was ich jetzt lediglich mittels trace() testen könnte wäre die reine XML-Datei. Nur die funktioniert ja. Ich teste das aber mal grad eben.

Gruß
tholie
 
So ich habe jetzt im Flash innerhalb der onLoad Methode ein trace(this.Status); mit der Ausgabe 0. Als Source habe ich die xml-Datei verwendet.

Bei trac(this.toString()); erhalte ich als Ausgabe:

PHP:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><Galery><pic src="001-001-s.jpg" width="203" height="305" /><pic src="001-002-s.jpg" width="203" height="305" /><pic src="001-003-s.jpg" width="203" height="305" /><pic src="001-004-s.jpg" width="458" height="305" /><pic src="002-001-s.jpg" width="247" height="305" /><pic src="002-002-s.jpg" width="216" height="305" /><pic src="002-003-s.jpg" width="200" height="305" /><pic src="003-001-s.jpg" width="203" height="305" /><pic src="003-002-s.jpg" width="203" height="305" /><pic src="003-003-s.jpg" width="203" height="305" /><pic src="003-004-s.jpg" width="203" height="305" /><pic src="004-001-s.jpg" width="253" height="305" /><pic src="004-002-s.jpg" width="247" height="305" /><pic src="004-003-s.jpg" width="245" height="305" /><pic src="005-001-s.jpg" width="203" height="305" /><pic src="005-002-s.jpg" width="203" height="305" /><pic src="005-003-s.jpg" width="203" height="305" /><pic src="006-001-s.jpg" width="203" height="305" /><pic src="006-002-s.jpg" width="203" height="305" /><pic src="006-003-s.jpg" width="203" height="305" /><pic src="006-004-s.jpg" width="203" height="305" /><pic src="006-005-s.jpg" width="446" height="305" /><pic src="006-006-s.jpg" width="203" height="305" /><pic src="007-001-s.jpg" width="203" height="305" /><pic src="007-002-s.jpg" width="203" height="305" /><pic src="008-001-s.jpg" width="458" height="305" /><pic src="008-002-s.jpg" width="203" height="305" /><pic src="009-001-s.jpg" width="254" height="305" /><pic src="009-002-s.jpg" width="213" height="305" /><pic src="010-001-s.jpg" width="203" height="305" /><pic src="011-001-s.jpg" width="241" height="305" /><pic src="011-002-s.jpg" width="215" height="305" /><pic src="011-003-s.jpg" width="242" height="305" /><pic src="011-004-s.jpg" width="444" height="305" /><pic src="012-001-s.jpg" width="203" height="305" /><pic src="012-002-s.jpg" width="203" height="305" /><pic src="012-003-s.jpg" width="203" height="305" /><pic src="012-004-s.jpg" width="203" height="305" /><pic src="013-001-s.jpg" width="216" height="305" /><pic src="013-002-s.jpg" width="404" height="305" /><pic src="013-003-s.jpg" width="227" height="305" /><pic src="013-004-s.jpg" width="458" height="305" /><pic src="013-005-s.jpg" width="203" height="305" /></Galery>

Wenn ich als Source die php Datei angebe erhalte ich bei beiden erwartungsgemäß jeweils eine 0.

Gruss
tholie
 

Neue Beiträge

Zurück