2017-02-16 5 views
-1

Für einen Teil meiner Website muss ich PHP-Code in eine Datei mit PHP schreiben können. Zum Beispiel:Wie schreibe ich PHP-Code auf eine erstellte PHP-Datei

$myfile = fopen("event.php", "w"); 
$txt = " 
<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "events"; 

$conn = new mysqli($servername, $username, $password, $dbname); 

if(isset($_POST['create_event'])){ 

    $sql = "INSERT INTO event (event_name, date_created) 
      VALUES (
      '".$_POST['event_name']."', 
      '".date('Y-m-d')."' 
      )"; 
    $result = mysqli_query($conn,$sql); 

} ?> "; 
fwrite($myfile, $txt); 
fclose($myfile); 
?> 

Wie kann ich eine PHP-Datei in die Datei einfügen, die ich erstellt habe. Statt jedoch die Datei zu erstellen, wird ein Fehler ausgegeben:

Parse error: syntax error, unexpected 'localhost' (T_STRING) in C:\xampp\htdocs\reap2017\event\create.php on line 8 
+0

Sie haben vergessen, Ihren Fehler – virhonestum

+0

hinzuzufügen Entschuldigung, ich füge jetzt jetzt Sir hinzu. –

+0

Ich denke, Sie müssen Ihre "Zeichen zu entkommen. Beispiel können Sie \" Oder sonst wird es versuchen, die Variable localhost zu finden. –

Antwort

0

Eine Zeichenfolge wird durch zwei Anführungszeichen angegeben. Sobald es ein zweites Zitat gibt, wird der Compiler denken, dass Ihre Zeichenfolge dort endet. Sie möchten jedoch eine Zeichenfolge in einer Zeichenfolge für Ihre Servervariablen haben.

Es gibt zwei Möglichkeiten, dies zu tun:
1. Mit einzelnen ' und Doppel " Anführungszeichen 2. Escaping the Anführungszeichen mit einem Backslash \"

Des Weiteren benötigen Sie keine Variablennamen wickeln in Ihrem Zeichenfolge in geschweiften Klammern { } zu verhindern, dass PHP Ihre Variablen interpolieren. Grundsätzlich erkennt PHP sogar Variablen in Strings und die geschweiften Klammern sagen ihm, dass sie den Literaltext anstelle des Variablenwerts verwenden sollen.

+0

das "funktioniert gut, aber ich bekomme jetzt einen Fehler ... die Datei bereits erstellt, aber Hinweis: Undefinierte Variable: Servername .. auf der erstellten Datei sieht es so aus

+0

@JanKlenschAsentista Warum nicht Inhalt von $ txt mit einfachen Anführungszeichen definieren und einfache Anführungszeichen in $ txt mit \ 'entziehen? Denken Sie, es ist einfacher und weniger funktioniert so: Sie müssen nicht $ Zeichen in einfachen Anführungszeichen entkommen – JapanGuy

+0

@Jan Klensch Asentista siehe meine bearbeitet antwort. – virhonestum

Verwandte Themen