Element an ein Array anfügen...
Joshua
- php
Hallo!
Ich stehe gerade vor einem (kleinen) Problem in PHP. Ich habe einen String, der mir von einem Formular geliefert wird und in die Variable $benutzer geschrieben wird. Jeder String erhält nun außerdem eine eindeutige Nummer mittels uniqid() zugewiesen. Ursprünglich machte ich weiter, in dem ich die beiden Strings verkettete. Da ich jedoch in späterer Folge die eindeutige ID zu jeder Benutzereingabe benötige ist das ganze doch relativ schwer über substr() etc. realisierbar.
Deshalb ist mit heute die Idee gekommen, dass ich einfach ein Array dazu verwenden werde, in dem die Daten wie folgt abgespeichert werden sollen:
$eingaben = array(
"uniqid1" => "Benutzereingabe1",
"uniqid2" => "Benutzereingabe2",
"uniqid3" => "Benutzereingabe3"
)
Bevor jedoch die erste Benutzereingabe gemacht wurde, ist das Array leer.
Das Problem, das ich jetzt habe ist, dass ich nicht weiß, wie ich die Einzelnen Daten jetzt in dieses Array schreiben kann... Mein Bisheriger Versuch sieht so aus:
$benutzereingabe = $_POST['fo_benutzer'];
array_push($eingaben, $benutzereingabe);
Leider funktioniert nicht mal dieser Code (es wird nichts in das array geschrieben), geschweige denn weiß ich (noch) nicht, wie ich dann die einzelnen Eingaben im Array noch mit der zugehörigen ID versehen kann...
(Kann das Problem des Nichtschreibens daran liegen, dass ich das Array in eine Externe Datei ausgelagert habe und mittels require() eingebunden habe? - Wohl kaum, oder?)
Naja, ich würde mich jedenfalls sehr über eure Antworten freuen.
Gruss
Joshua
Hallo nochmals!
Ich habe soeben gesehen, dass das Element dem Array schon angefügt wird, jedoch nur "temporär", also nicht wirklich in das Array _geschrieben_, welches ich ausgelagert habe.
Gruß
Joshua
hi,
Ich habe soeben gesehen, dass das Element dem Array schon angefügt wird, jedoch nur "temporär", also nicht wirklich in das Array _geschrieben_, welches ich ausgelagert habe.
Natürlich, was hast du denn erwartet?
Dass sich Dateien von ganz alleine schreiben ...?
- Wie kann ich das realisieren, dass das Element in das Array in der externen Datei geschrieben wird, dass es dort dauerhaft bleibt?
In dem du es in diese Datei neu reinschreibst.
http://www.php.net/manual/de/ref.filesystem.php
http://php-faq.de/ch/ch-open_exec.html
gruß,
wahsaga
Hallo Joshua,
http://www.php.net/manual/de/ref.filesystem.php
http://php-faq.de/ch/ch-open_exec.html
erwähnenswert ist auch noch parse_ini_file(). Damit kann man aus einer Datei sehr einfach Inhalte in ein Datenfeld einlesen. Der Inhalt muß nur der Syntax von php.ini folgen.
Gruß aus Berlin!
eddi
Hallo!
In dem du es in diese Datei neu reinschreibst.
Mittlerweile bin ich so weit:
if(preg_match('/^[^\s]+@([^\s]+\.)+[^\s]{2,6}$/', $fo_email))
{
$id = uniqid(); # Stellt die "Prüfungsvariable" für die Gültigkeit der Eingabe dar
$checkmail_array["$id"] = $fo_email;
$fp_tmp = fopen('checkmail_tmp.php','a+')
or die("Die Temporäre Datei 'checkmail_tmp.php' konnte nicht erstellt werden!");
flock($fp_tmp, 2);
fputs($fp_tmp, "<?php\r\n\$checkmail_array = array(\r\n");
for($i=0; $i<count($checkmail_array); $i++)
{
fputs($fp_tmp, $checkmail_array."\r\n");
}
fputs($fp_tmp, "\r\n);\r\n?>");
flock($fp_tmp, 3);
fclose($fp_tmp);
unlink('../data/mailarray.php');
rename('checkmail_tmp.php', '../data/mailarray.php');
}
In der mailarray.php erhalte ich jedoch folgende Ausgabe:
<?php
$checkmail_array = array(
Array
);
?>
Wo habe ich in meinem Code einen Denkfehler, damit in der Datei später folgendes steht:
<?php
$checkmail_array = array(
"uniqid" => "email1",
"uniqid" => "email2", #In weiterer Folge dann halt länger
);
?>
Danke schonmal im Voraus für eure Hilfe!
Gruss
Joshua
Hallo!
Habe das Problem schon selbst gelöst! for()... war doch ganz einfach zu foreach() umzubauen... *gg*
foreach($checkmail_array as $key => $value)
{
$element = '"'.$key.'" => "'.$value.'",\r\n';
fputs($fp_tmp, $element);
}
Gruss,
Joshua