Daten einlesen und mit explode in Array

10x10

Mitglied
Hallo,

ich will eine PHP-Datei in eine andere einlesen und deren Daten verarbeiten. Funktioniert auch eigentlich gut, aber wenn ich beim Array die Stelle "0" ausgebe, dann funktionierts komischerweise nicht mehr.

Kann mir bitte jemand weiterhelfen!

Hier ist das Script das ich einlese (getDataForFlash.php):
PHP:
<?PHP
echo 'VERKEHRSHAUS_LIDO=000;BHF_P3=223;ALLMEND=000;EISFELD=000;BHF_P1_P2=102;ALTSTADT=210;AM_GUETSCH=051;SCHWEIZERHOF=000;KESSELTURM=001;KANTONALBANK=001;HIRZENMATT=000;CITY_PARKING=212;NATIONALHOF=113;LOEWENCENTER=055;CASINO_PALACE=081;'
?>


Hier mein Script mit dem ich die Daten einlese und verarbeite (Wenn ich mit $text_array[1] beginne, dann funktionierts, wenn ich wie im Beispiel mit $text_array[0] beginne, dann leider nicht) :
PHP:
<?
$txtFilename = "getDataForFlash.php";

if (file_exists($txtFilename)){

	$handle = fopen ($txtFilename, "r"); 

	$content = fread ($handle, filesize ($txtFilename));

	fclose ($handle);

	$text_array = explode (";", $content);

	$rueckgabe = "&".$text_array[0];

	$rueckgabe .= "&".$text_array[1];

	$rueckgabe .= "&".$text_array[2];
	
	$rueckgabe .= "&".$text_array[3];
	
	$rueckgabe .= "&".$text_array[4];
	
	$rueckgabe .= "&".$text_array[5];
	
	$rueckgabe .= "&".$text_array[6];
	
	$rueckgabe .= "&".$text_array[7];
	
	$rueckgabe .= "&".$text_array[8];
	
	$rueckgabe .= "&".$text_array[9];
	
	$rueckgabe .= "&".$text_array[10];
	
	$rueckgabe .= "&".$text_array[11];
	
	$rueckgabe .= "&".$text_array[12];
	
	$rueckgabe .= "&".$text_array[13];
	
	$rueckgabe .= "&".$text_array[14];

	$rueckgabe .= "&statusData=true&";

}else{

	$rueckgabe = "&statusData=false&";

}

echo $rueckgabe;

?>

Beste Grüße
Max
 
Hallo,

danke für deine schnelle Antwort und deinen Tip!

Weißt du warum es nicht so funktioniert, wie ich es probiert habe?

Beste Grüße
Max
 
Warum vereinfachst du dein Skript nicht?
PHP:
<?php 
$txtFilename = "getDataForFlash.php"; 

if (file_exists($txtFilename)){ 

    $content = file_get_contents($txtFilename); 

    $text_array = explode(";", $content); 
    $rueckgabe  = implode('&', $text_array);

    $rueckgabe .= "&statusData=true&"; 
} else { 

    $rueckgabe = "&statusData=false&"; 
} 

echo $rueckgabe; 
?>
 
Danke. So funktioniert`s jetzt super.

Ich habe noch ein Problem. Wenn die "getDataForFlash.php", die in die "data.php" geladen wird, auf einem anderem Server wie die "data.php" liegt, dann funktioniert das Ganze leider momentan nicht.

Müßte es nicht auch funktionieren, wenn ich einfach in der "data.php" die URL zur "getDataForFlash.php" angebe:

PHP:
<?php
$txtFilename = "http://www.test.com/flash/getDataForFlash.php";
 
if (file_exists($txtFilename)){
 
    $content = file_get_contents($txtFilename);
 
    $text_array = explode(";", $content);
    $rueckgabe  = implode('&', $text_array);
 
    $rueckgabe .= "&statusData=true&";
} else {
 
    $rueckgabe = "&statusData=false&";
}
 
echo $rueckgabe;
?>

Muß man den Zugriff auf dem Server, auf dem die "getDataForFlash.php" liegt, mit einer "crossdomain.xml" erlauben, oder sollte es auch ohne funktionieren?
 
Zuletzt bearbeitet:
Die Einstellung musst du in irgendeiner *.ini festlegen. Ich kann dir aber leider nicht sagen, welche das nun ist, da ich es bisher nicht ändern musste.
 
Auf eine *.ini-Datei habe ich keinen Zugriff. Es ist kein eigener Server, sondern der des Providers des Kunden.

Kann man das nicht mit einer "crossdomain.xml" lösen?
 
crossdomain.xml ist mir neu. In Bezug auf PHP ist mir das noch nie über den Weg gelaufen. Was in PHP dafür verantwortlich ist, ob man Dateien mit fopen() oder ähnlichen Funktionen (file_get_contents() gehört dazu) remote öffnen darf, ist die Einstellung allow_fopen_url in der php.ini.

Wenn du diese Einstellung nicht ändern kannst, kannst du immer noch die Datei mittels einer HTTP-Client-Klasse vom Remote-Server auf deinen eigenen Server runter laden und anschließend lokal öffnen/bearbeiten/$whatever.
 
Zurück