Nick: Variablen als VARIABLEN in eine externe Datei schreiben

Hallo. Das ist jetzt vielleich eine blöde Frage, aber ich bin noch ziemlich am Anfang mit PHP...

Folgendes:

Ich möchte, dass eine PHP-Datei (nennen wir sie speichern.php) eine Variable in eine andere Datei schreibt. Also nicht den Inhalt der Variablen sondern die Variable.(schwierig zu erklären)

Also ein Beispiel:

------------------------------------------------------------

(speichern.php)

fwrite($fp, "Dies ist ein Text, der nachher in der externen Datei steht");

------------------------------------------------------------

Wenn ich nun aber schreibe:

fwrite($fp, "Dies ist wieder ein text

$diewillichauslesen

$diewillichauslesen = 'Texttexttext'
");

--------------------------------------------------------------

Dann schreibt er mir in die externe Datei den Inhalt der Variablen $diewillichauslesen. Ist ja auch richtig so. Nun will ich aber, dass er mir genau die Zeichenfolge
"$diewillichauslesen ='Texttexttext'"
in die Datei schreibt !

Wie funktioniert das? Ich weiss, es ist bestimmt saueinfach und es ist nur scheisse erklärt, aber naja...

Geht das vielleich irgendwie mit Arays? Wenn ja, gebt mir bitte die genaue Zeichenfolge, da ich mich wie gesagt nicht so gut auskenne... Wer noch Fragen hat, odr eine Lösung weiss, kann sich ja bei mir melden:

ICQ:200128029
AIM:nickistcool@aol.com
MSN:nickistcool@msn.com
YAHOO:witzfisch@yahoo.com
email:webmaster@dominicforderer.de
Homepage:www.dominicforderer.de //IST SCHON URALT, NICHT LACHEN !!!!
Telefon:01803 684 391 795

Danke !

  1. Hallo,

    Nun will ich aber, dass er mir genau die Zeichenfolge
    "$diewillichauslesen ='Texttexttext'"
    in die Datei schreibt !

    Dann schreib das rein.
    Also zuerst ein Dollarzeichen.
    Dann den Variablennamen.
    Dann das Gleichzeichen.
    Dann ein Anfuehrungszeichen.
    Dann den Text.
    Dann ein Anfuehrungszeichen.

    Geht das vielleich irgendwie mit Arays?

    Nicht notwendig.

    Wenn ja, gebt mir bitte die genaue Zeichenfolge,

    Siehe oben.

    Wer noch Fragen hat, odr eine Lösung weiss, kann sich ja bei mir melden:

    [SNIP diverse E-Mail-Adressen u.s.w.]
    Hier fragen, hier Antworten lesen. So einfach ist das!

    Telefon:01803 684 391 795

    Glaubst Du echt, dass jemand eine 0180er Nummer anruft,
    d.h. viel Geld ausgibt, um _Dir_ zu _helfen_?
    btw. muss man in Deutschland nicht von Gesetzes wegen den Preis
    bekanntgeben, wenn man eine 0180er Nummer bewirbt?
    (In der Schweiz ist das jedenfalls so.)

    Hier noch etwas zum lesen, damit Du Dein "Problem" besser loesen kannst:

    PHP-Manual: Datei-Funktionen:
    http://www.php.net/manual/de/ref.filesystem.php

    PHP-Manual: String-Funktionen:
    http://www.php.net/manual/de/ref.strings.php

    PHP-Manual: Strings verknuepfen:
    http://www.php.net/manual/de/language.operators.string.php

    PHP-Manual: Strings, Einfache und doppelte Anfuehrungszeichen, HEREDOC-Syntax,
    http://www.php.net/manual/en/language.types.string.php
    Abschnitt davon:
    Variablen-Analyse (parsing) in Strings:
    http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing
    dclp-FAQ: Anführungzeichen oder Hochkomma?
    http://www.dclp-faq.de/q/q-stil-anfuehrungszeichen.html

    Wenn Du danach noch Fragen hast, stell sie bitte hier, im gleichen "Thread"
    (Diskussionsfaden). Danke.

    Gruesse,

    Thomas

    1. Danke, Thomas.

      Telefon:01803 684 391 795

      Glaubst Du echt, dass jemand eine 0180er Nummer anruft,

      Die kostet 9 Cent pro Minute, ist also nicht teuer.

      d.h. viel Geld ausgibt, um _Dir_ zu _helfen_?
      btw. muss man in Deutschland nicht von Gesetzes wegen den Preis
      bekanntgeben, wenn man eine 0180er Nummer bewirbt?

      Weiss ich nicht, bin ein 15-jähriger Schüler und kein Jurist ;-)

      Trotzdem danke.

      1. Ich glaube, Thomas hat mich nicht richtig verstanden... Weil so funktioniert es nicht (außer ich mach was falsch)

        Nochmal zum besseren Verständnis die gesamte Datei:

        ------------------------------------------------------------------------------------------------------------------------------------------

        <?php
        include ("../../../../../daten.php");
        include ("../../username.php");
        $filename = '../../steckbriefdaten.php';

        $birthday = $_POST["birthday"];
        $wohnort = $_POST["wohnort"];
        $name = $_POST["name"];
        $hate = $_POST["hate"];
        $love = $_POST["love"];
        $sternzeichen = $_POST["sternzeichen"];
        $hair = $_POST["hair"];
        $eyes = $_POST["eyes"];
        $gross = $_POST["gross"];
        $gewicht = $_POST["gewicht"];
        $haustiere = $_POST["haustiere"];
        $lieblingsfach = $_POST["lieblingsfach"];
        $homepage = $_POST["homepage"];

        $linkname1 = $_POST["linkname1"];
        $linkurl1 = $_POST["linkurl1"];

        $linkname2 = $_POST["linkname2"];
        $linkurl2 = $_POST["linkurl2"];

        $linkname3 = $_POST["linkname3"];
        $linkurl3 = $_POST["linkurl3"];

        $linkname4 = $_POST["linkname4"];
        $linkurl4 = $_POST["linkurl4"];

        $eigenbeschreibung = $_POST["eigenbeschreibung"];

        $file = file($filename);
        $fp = fopen($filename, "w");
        fwrite($fp, "

        <center><h2>Steckbrief von $user</h2><br><br><img src='../../data/memberpics/$user/passbild.jpg'><br><p></center>
        <table border='0' cellpadding='0' cellspacing='5' style='border-collapse: collapse' width='30%' id='userdaten'>
          <tr>
            <td width='51%'>Name:</td>
            <td width='49%'>$name</td>
          </tr>
          <tr>
            <td width='51%'>Benutzerstatus:</td>
            <td width='49%'>$Rang</td>
          </tr>
           <tr>
            <td width='51%'>Wohnort:</td>
            <td width='49%'>$wohnort</td>
          </tr>
           <tr>
            <td width='51%'>Geburtstag:</td>
            <td width='49%'>$birthday</td>
          </tr>
          <tr>
            <td width='51%'>Sternzeichen:</td>
            <td width='49%'>$sternzeichen</td>
          </tr>
          <tr>
            <td width='51%'>Mag:</td>
            <td width='49%'>$love</td>
          </tr>
          <tr>
            <td width='51%'>Hasst:</td>
            <td width='49%'>$hate</td>
          </tr>
           <tr>
            <td width='51%'>Haarfarbe:</td>
            <td width='49%'>$hair</td>
          </tr>
           <tr>
            <td width='51%'>Augenfarbe:</td>
            <td width='49%'>$eyes</td>
          </tr>
          <tr>
            <td width='51%'>Größe:</td>
            <td width='49%'>$gross</td>
          </tr>
          <tr>
            <td width='51%'>Gewicht</td>
            <td width='49%'>$gewicht</td>
          </tr>
           <tr>
            <td width='51%'>Haustiere:</td>
            <td width='49%'>$haustiere</td>
          </tr>
           <tr>
            <td width='51%'>Lieblingsfach</td>
            <td width='49%'>$lieblingsfach</td>
          </tr>
          <tr>
            <td width='51%'>Homepage</td>
            <td width='49%'><a href='http://$homepage'>Homepage besuchen</a></td>
          </tr>
        </table></p><br><br>
        <p align=right><p><b>Meine Lieblingslinks:</b></p><br><br><br>
             <table border='0' cellpadding='0' cellspacing='5' style='border-collapse: collapse' width='30%' id='lieblingslinks'>
            <tr>
            <td width='51%'>$linkname1</td>
            <td width='49%'><a href='$linkurl1'>Seite besuchen</a></td>
          </tr>
          <tr>
            <td width='51%'>$linkname2</td>
            <td width='49%'><a href='$linkurl2'>Seite besuchen</a></td>
          </tr>
          <tr>
            <td width='51%'>$linkname3</td>
            <td width='49%'><a href='$linkurl3'>Seite besuchen</a></td>
          </tr>
          <tr>
            <td width='51%'>$linkname4</td>
            <td width='49%'><a href='$linkurl4'>Seite besuchen</a></td>
          </tr>
           </table></p><br><br><!-----------Arrayangabe-----------------

        ");

        fwrite($fp, $file);
        fclose($fp);

        ?>
        <html>
        <head>
        <title>&Auml;nderungen erfolgreich gespeichert !</title>
        <link rel="stylesheet" type="text/css" href="../../../../../data/style.css">
        </head>
        <?PHP echo "<body bgcolor=$hintergrundfarbe>";
        ?>
        <center><h3>Deine &Auml;nderungen wurden gespeichert</h3><br><br>
        <h2>Du kannst dir deine aktualisierte Seite nun ansehen. Falls du sie vorher schon geöffnet hattest, beachte bitte, dass du sie ggf. neu laden musst, um den neuen Inhalt anzeigen zu können.</h2><br>
        <a href=config.php>Zurück zum Administrationshauptmenü</a>  |  <a href=passfotoupload>Foto  ändern/neu hochladen</a></center></font>

        </body>
        </html>
        <script language="javascript">
        <?php echo "window.defaultStatus='$windowstatus'";
        ?>
        </script>

        ------------------------------------------------------------------------------------------------------------------------------------------

        Und nun will ich aber im Eingabeformular, dass die bereits eingetragenen Daten als "value" im Eingabefeld stehen. Dazu brauch ich in der Datei nochmal die VAriablenbezeichnungen.

  2. Hello,

    (speichern.php)

    fwrite($fp, "Dies ist ein Text, der nachher in der externen Datei steht und dieser wird hinzugefügt: $extra");

    Durch das Ausmaskieren des Dollarzeichens durch einen Backslash wird es nicht vom Parser schon während der ersten Stringverarbeitung ersetzt, sondern tatsächlich in den String aufgenommen und damit in die Datei geschrieben.

    Wenn man den String aus der Datei wieder herausholt, steht da also $extra drin. Der Backslash wurde nicht mit übernommen.

    Wenn Du diesen String nun mit echo "string" ausgibst, dann wird die Variable $extra ersetzt, vorausgesetzt, sie ust vorhanden. Sonst gibt es je nach Einstellung der automatischen Fehlerbehandlung ggf. eine Warnung.

    Grüße

    Tom