Roger: datei auslesen

hi!

kann ich variablen aus einer textdatei erstellen?
inhalt test.txt:

name=roger
email=rehnelt@gmx.net

also wenn ich die datei eingelesen habe
$datei = fopen($url, "r");

gibt's da nicht eine funktion, wo ich sagen kann $name=roger?
also bei echo $name würde dann roger erscheinen?

r.

  1. Huhu

    gibt's da nicht eine funktion, wo ich sagen kann $name=roger?

    ja eval

    http://www.php.net/manual/en/function.eval.php

    Viele Grüße

    lulu

    1. ich glaub nicht dass das die richtige funktion ist, da sie doch bestehende variablen nur "ersetzt".

      ...

      ?

      trotzdem danke für die antwort.

  2. hi!

    kann ich variablen aus einer textdatei erstellen?
    inhalt test.txt:

    name=roger
    email=rehnelt@gmx.net

    also wenn ich die datei eingelesen habe
    $datei = fopen($url, "r");

    gibt's da nicht eine funktion, wo ich sagen kann $name=roger?
    also bei echo $name würde dann roger erscheinen?

    Wenn nur die beiden Werte in der Datei stehen:

    mache eine .csv-Datei mit Inhalt
    roger;email;

    Routine:
    for ($i=0;$i<count($collect);$i++)
    {
    $test=explode(";",$collect[$i]);
    list($name,$email)=$test;
    }

    oder statt list:
    $name=$test[0];
    etc.

    jetzt hast Du Deine Variablen.

    Gruesse
    Wilhelm

    1. roger;rehnelt@gmx.net

    2. mache eine .csv-Datei mit Inhalt
      roger;email;

      yo, so hab ich's dann auch gemacht...
      ich dachte nur, es gäbe eine elegantere lösung.
      danke für die antwort wilhelm!

      Wilhelm

      rok°!

  3. Hallo Roger!

    kann ich variablen aus einer textdatei erstellen?
    inhalt test.txt:
    name=roger
    email=rehnelt@gmx.net
    also wenn ich die datei eingelesen habe
    $datei = fopen($url, "r");

    gibt's da nicht eine funktion, wo ich sagen kann $name=roger?
    also bei echo $name würde dann roger erscheinen?

    Zwei Möglichekeiten, die erste hat Wilhelm ja schon genannt (Datei einlesen und 'per hand' Aufdröseln, IMHO die sauberste Variante.)

    Die zweite ist nahe an dem was lulu gesagt hat:

    inhalt test.txt:

    $name=roger;
         $email=rehnelt@gmx.net;

    beachte die korrekte PHP Syntax der Datei!

    und im script dann
    <?
     include("test.txt"); /* test.txt einlesen und als PHP ausführen */
      echo "$name hat die email: $email";
    ?>

    Das ist dann praktisch, wenn du test.txt mit sowieso mit einem Script erzeugst, bei hand-edierten Daten aber evtl. fehleranfällig.

    Letzlich geht das auch mit eval und Datei einlesen (mit genau
    dem von dir genannten Format):

    inhalt test.txt:

    name=roger
         email=rehnelt@gmx.net

    mit dem Code:
    <?
      $datei = fopen($url, "r") or die("nix $url");
      $in=fread($datei,2222);

    preg_replace("~(\w+)=(.*)~e","$\1="\2";","$in");
      // aus name=roger wird $name="roger"; gemacht und das
      // ergebnis als PHP Code ausgführt (dafür ist das e Flag)
      echo "$name hat die Email $email";
    ?>

    Letzteres find ich etwas gewagt ...

    Gruss,
     Carsten

    1. Hi,

      kleiner Nachtrag dazu:

      inhalt test.txt:

      $name=roger;
           $email=rehnelt@gmx.net;

      beachte die korrekte PHP Syntax der Datei!

      Ich schätz mal, das sollte

      $name="roger";
              $email="rehnelt@gmx.net";

      heissen - dann sollte es so klappen ;-)

      lg
      Martin

      1. Hallo Martin!

        Ich schätz mal, das sollte

        $name="roger";
                $email="rehnelt@gmx.net";

        heissen - dann sollte es so klappen ;-)

        jo, sollte es. Wenn man schon mal denkt, den einfachen Teil brauchste ja nicht testen...

        Gruss,
         Carsten