[PHP] Array

Ronja

Räubertochter
ID: 51429
L
4 Mai 2006
1.010
33
Hi Leutz,

kann mir bitte jemand sagen, warum das nicht funktioniert bzw. was ich anders machen muss, damit das Array per File richtig eingelesen wird???

ueben.txt: 'home' => 'home','music' => 'musik'

PHP:
$pfad1 = "ueben.txt";
$arr1 = file_get_contents($pfad1);
$array1 = array($arr1);
$key1 = array_search(pathinfo_filename($global_site_input), $array1);
print_r($key1);

Ergebnis: keine Ausgabe

Wenn ich das Array direkt in der Datei schreibe:
PHP:
$array1 = array('home' => 'home', 'musik' => 'music');
$key1 = array_search(pathinfo_filename($global_site_input), $array1);
print_r($key1);

Ergebnis: Ausgabe

Wie lese ich dieses Array richtig per File ein???

Danke für Eure Hilfe
Ronja
 
PHP:
$array1 = array($arr1);
erzeugt ein Array mit nur einem Element.

Serialisieren, sonst geht das ned: serialize(), unserialize()
 
Merci ... ABER:

PHP:
$array1 = array(serialize($arr1));

erzeugt leider auch nur ein leeres Ergebnis.

auch:
PHP:
$key1 = array_search(pathinfo_filename($global_site_input), serialize($array1));

funzt net.

LG Ronja
 
Zuletzt bearbeitet:
Manual lesen ;)

Du musst dein Array erst serialisieren:
PHP:
$s = serialize(array('foo' => 'bar', 42 => 4711));
Den String $s kannst du dann in einer Datei, Datenbank, etc. abspeichern.

Woanders lies ihn wieder ein und hol dir das ursprüngliche Array mit
PHP:
$array = unserialize($s);
wieder zurück.
 
Glaub mir, ich quäl mich seit Stunden durch's Manual 8O

Mein Problem ist folgendes, wie soll ich das Array vorher serialisieren, wenn ich es in der externen Datei gespeichert habe? Es geht ja darum, dieses aus meiner index.php raus zu bekommen, damit es leichter zu bearbeiten ist. Wenn ich das Array in der index drin lasse, funzt es ja einwandfrei!
Ich weiß, da fehlt mir total Euer Programmiererverständnis, aber ich will da unbedingt eine Lösung für finden :D

Kannst Du mein Problem nachvollziehen?

Danke, Ronja
 
Warum dann überhaupt so eine umständliche Syntax?
Code:
home home
musik music
PHP:
$array1 = array();
$fh = fopen('ueben.txt', 'r');
while($line = fgets($fh)) {
  list($key, $value) = explode(' ', $line, 1);
  $array1[$key] = $value;
}
$key1 = array_search(pathinfo_filename($global_site_input), $array1);
print_r($key1);
(Ungetesteter Code aus dem Kopf, kann daher Fehler enthalten)

Wäre zumindest etwas übersichtlicher - über Sinn und Unsinn reden wir lieber nicht!
 
Hi,

es geht um Menüzuordnungen in einer mehrsprachigen Seite. Bissl kompliziert das zu erklären :)

Dein Code funktioniert leider nicht, Notice: Undefined offset: 1.

Trotzdem ein herzliches Danke!!!
 
Dein Code funktioniert leider nicht, Notice: Undefined offset: 1.

Hast du auch die ueben.txt so angepasst, wie es in meinem Post oben steht?

BTW: Sodenn mein Code denn funktioniert, könntest du dir auch das array_search()-Gedöns sparen, da du dann schon beim Auslesen der Datei prüfen könntest, ob die aktuelle Zeile zur aufgerufenen Datei gehört!