Forum
Tipps
News
Menu-Icon

Php Strings oder Arrays?

Hallo Leute mal ne Frage.

Wie stelle ich es an, dass ich jede Zeile einer Datei als String einlesen lasse, und aus dem String einen bestimmten Wert als Formularfeld wiedergeben lasse?

Zuerst lese ich die Datei ein:
$datei = file_get_contents('meinedatei.txt');

In der Datei steht jetz etwas wie:

zeile1 = "12"
zeile2 = "14"

Jetzt möchte ich ein Formular haben wie:

<form>
<input type="text" name="zeile1" value="$zeile1">
<input type="text" name="zeile2" value="$zeile2">
</form>

Im aufgerufenen Formular sollen nun also zwei Textfelder stehen in denen die Zahlen 12 und 14 stehen. Ich habe mit explode experimentiert, komme aber einfach nicht an mein Ziel =(

Danke für jede Hilfe :)


Antworten zu Php Strings oder Arrays?:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich probiers mal:
Am sinnigsten liest du die Datei dazu Zeilenweise in ein array:

$lines = file( 'meinedatei.txt' );
Und dann am besten eine Funktion, die aus einer der zeilen den gewünschten Wert rausfummelt:
function getValue( $line ) {
    $pos = strpos( $line, '=' );
    $line = substr( $line, $pos + 1 );
    trim( $line );
    trim( $line, '\"' );
    return $line;
}
Die kannst du dann aufrufen z.B. für Zeile 1 und 2
getValue( $lines[0] );
getValue( $lines[1] );

So, vielleicht hilft dir das irgendwie weiter. 

Funktioniert leider nicht ganz es gibt leider keine Rückgabe. Ich schau mal ob ich den Fehler finde.

Ach klar mein Fehler hatte vergessen die Datei über file() zu laden hatte noch file_get_contents() ;)
Allerdings trimmt der die Anführungszeichen nicht weg. Ich schau nochmal drüber.

Alles klar jetzt gehts :)
Für spätere Nachleser so habe ich es gelöst:

function getValue( $line ) {
    $pos = strpos( $line, '=' );
    $line = substr( $line, $pos + 1 );
    $line = str_replace('"', '', $line);
   trim( $line );
    return $line;
}

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

trim() macht auch keine Anführungszeichen weg, sondern entfernt Whitespaces.

Alternativ zu dieser atemberaubenden String-Bastelei könntest du dir auch eine andere Dateistruktur überlegen. Beispielsweise ist es wenig sinnvoll, die Zeilennummern mit reinzuschreiben, da die Zeilen ja sowieso sortiert in einem Array kommen (ich geh mal davon aus, dass die Datei auch sequenziell erstellt wird, und nicht kunterbunt). Wenn du mehrere Werte unterbringen willst, kannst du diese mittels Trennzeichen in die Zeile schreiben und mittels explode() zerhacken.

greez 8)
JoSsiF

trim() war mir bisher auch nur bekannt um unnötige Leerzeichen zu entfernen aber der Quellcode oben sah aus, als ob trim auch benutzt werden kann um ein bestimmtes Zeichen zu entfernen. ;)

Jedenfalls nich ich kann das Ganze leider nicht beliebig anordnen und muss daher mit Strings arbeiten sonst funktioniert das alles nicht.

Gruß
Marcel

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Das trim() mit Zusatzzeichen gibt es ab 4.1.0. Hab leider keinen Plan von PHP, habs einfach so gemacht wie hier beschrieben: http://de.php.net/trim
Weiß z.B. auch nicht, ob man das " wirklich escapen muss oder wie man das angibt, vielleicht funktionierte das deshalb auch nicht... aber ist ja auch egal, hauptsache funzt jetzt  ;)

Viele Wege führen nach Rom oder wie war das :D
Wie gesagt sollte mal jemand sowas brauchen habe ich meine Lösung mal gleich oben mit reingeschrieben. Oft hat man das ja bei Foren dass man nen Problem hat eine Lösung sucht, dann stößt man auf einen der genau das selbe Problem hat und dann heißt es nur "Problem gelöst danke für eure Hilfe" und dann denkt man sich immer "warum hat er nicht wenigstens die Lösung mit reingeschrieben?" :D das hatte ich schon sehr oft ::)


« Batchprogramm soll Verzeichniss erkennenEclipse C++, Projekt erstellung »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Auslagerungsdatei
Die Auslagerungsdatei, auch bekannt als virtueller Speicher, ist ein wichtiges Element im Windows-Betriebssystem. Sie dient als Erweiterung des physischen Arbeitsspeicher...

Dateiendungen
Die Dateiendung, auch Dateinamenerweiterung, Dateierweiterung oder einfach "Endung" genannt, besteht aus meistens drei oder vier Buchstaben und wird mit einem Punkt an de...

Dateisystem
Das Dateisystem eines Computers definiert, wie Daten auf einem Speichermedium organisiert werden. Es bestimmt dabei, wie die Informationen auf dem Medium gespeichert, gel...