Fehler beim Schreiben eines Strings mit Variablen

  • Hey,

    ich sitze hier an einem kleinen Problem und komme einfach nicht weiter. Habe gegoogelt und zig verschiedenen Methoden ausprobiert, aber irgendwie will es nicht.

    Hier der Code :

    PHP
    $sect_name = $_POST['sect_name'];
    $linkn = $_POST['link'];
    $section = '$section';
    $sect = "<?PHP $section['$sect_name']='$linkn'; ?>";
    
    
    $artikel = '../artikel.txt'; 
    $art_content = file_get_contents($artikel); 
    $input = $sect."\n".$art_content; 
    file_put_contents($artikel, $input);

    Dabei habe ich ein Formular mit einigen Feldern denen ich die entsprechenden Namen (sect_name, link) zugewiesen habe. Deren Inhalt soll ausgelesen und in den Variablen $sect_name und $linkn gespeichert werden. Anschließend will ich einen String erzeugen ($sect), der einigen Text, inklusive den Inhalt der Variablen $sect_name und $linkn enthält. Dieser Inhalt muss in einfachen Anführungszeichen stehen, wie im Code oben zu sehen.

    Danach wird der ganze String und nachfolgend der Inhalt der Datei artikel.txt in diese Datei geschrieben. Doch jetzt das Problem : Sobald ich das Ganze ausführen möchte, erhalte ich für die Zeile mit $sect folgende Fehlermeldung :

    Zitat

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

    Ehrlich gesagt weiß ich allerdings nicht, warum da ein Syntax Error vorhanden sein soll. Ich habe doch die Regeln zur Verwendung von Varaiblen innerhalb von Anführungszeichen eingehalten. Soweit ich verstanden habe, werden Variablen innerhalb "" doch auch interpretiert. Oder stört sich PHP vielleicht an den einfachen Anführungszeichen ' ' ?

    Wäre wirklich dankbar, wenn mir jemand helfen könnte. Und bitte keine Links zu der Doku, zu schattenbaum etc. Das habe ich bereits versucht und trotz fast zwei Stunden Lesen konnte ich den Fehler nicht finden. Bin sowieso ein ziemlicher PHP Noob. Also würde ich über jede Hilfe freuen. Thx &

    MfG Alienx

  • $sect = '<?PHP $section['$sect_name']='$linkn'; ?>';

    Verstehe ich das richtig, dass dieser String ungeparst als Wert zugewiesen werden soll?

  • öhm,...

    Zitat


    Anschließend will ich einen String erzeugen ($sect), der einigen Text, inklusive den Inhalt der Variablen $sect_name und $linkn enthält. Dieser Inhalt muss in einfachen Anführungszeichen stehen, wie im Code oben zu sehen.

    einigen Text ??? Was für ein Text?
    und wieso muss das in einfachen Anführungszeichen stehen?
    Irgendwie ist der Code auch total Banane, oder bin ich noch betrunken von gestern? :D

    Der frühe Vogel fängt den Wurm,
    aber die zweite Maus bekommt den Käse.

  • $sect = '<?PHP $section['$sect_name']='$linkn'; ?>';

    Verstehe ich das richtig, dass dieser String ungeparst als Wert zugewiesen werden soll?

    Jop eig. schon. Denke mal das stellt ein Problem dar. Kannst du mir bitte sagen, wieso?

    öhm,...
    Irgendwie ist der Code auch total Banane, oder bin ich noch betrunken von gestern? :D

    Das is egal, Hauptsache es funktioniert. So lang ist der Code auch nicht, also wegen der Übersichtlichkeit sollte es keine Probs geben.

    öhm,...
    einigen Text ??? Was für ein Text?

    <?PHP $section['$sect_name']='$linkn'; ?>

    Na eben genau diesen. Den Codeschnipsel, nur mit den Werten der Variablen, anstelle ihrer Namen.

    EDIT:

    So, habs jetzt so, wie es sein soll. Hatte zwar vorhin schon versucht die Strings und Variablen einfach zu verketten, was allerdings nicht geklappt hat. Bis ich dann drauf gekommen bin, dass ich die einfachen Anführungszeichen auch innerhalb den normalen schreiben kann, also habe ich das ganze nach diesem Prinzip gelöst :

    "text'".$variable."'test";

    Den entscheidenden Denkanstoß hat mir pApAnoAh gegeben. Daher an dieser Stelle herzlichen Dank. Auch thx @Bandit, wobei ich nicht ganz verstanden habe, warum ich den String parsen sollte. Soll ja interpretierbarer Code sein am Ende. ^^

    MfG Alienx