2016-04-13 20 views
1

Der Titel ist selbsterklärend. In PHP erstelle ich eine PHP-Datei, füge PHP und HTML-Code hinzu und schließe sie dann. Das Problem ist, dass PHP-Dateien den gesamten gefundenen PHP-Code übernehmen und ihn in Leerheit umwandeln. Hier ist das letzte, was ich ausprobiert habe.Wie könnte ich PHP-Code in eine von PHP erstellte Datei schreiben?

$phpfile=fopen('backupfile.php',"r"); 
 
$phptext=fgets($phpfile); 
 
    if(stristr($link, 'http://') === FALSE) { 
 
    fwrite($file2,$phptext."<meta http-equiv='refresh' content='0; URL=http://".$link." '/>"); 
 

 

 
    }else{ 
 
    fwrite($file2,$phptext."<meta http-equiv='refresh' content='0; URL=".$link." '/>"); 
 

 
    }

phpfile beinhaltet folgende Leistungen:

<?php $file=fopen("/num","r"); $bar=fgets($file); $bar=$bar+1; $file=fopen("/num","w"); fwrite($file,$bar); ?> 

Wie gesagt, es einfach nicht, dass in der Datei hinzufügen.

Ich versuchte htmlentities, aber das machte den PHP-Code für die Seite sichtbar und nicht in der Datei festverdrahtet.

Danke für jede Hilfe.

+0

Fügt es Standard-ASCII-Text hinzu - wie in - Sie wissen, dass der Schreibprozess selbst funktioniert, unabhängig davon, was die Konzentration ist? – Martin

+0

Haben Sie '$ phptext probiert. " ' – Joum

+0

@Joum kann ich nicht sehen irgendein Unterschied zwischen dem und dem, was ich oben geschrieben habe. –

Antwort

2

Rewrite Ihr Code verwendet nur einfache Anführungszeichen. Durch doppelte Anführungszeichen wird der eingebettete PHP interpretiert.

+0

Danke! Das hat sehr geholfen. –

1

Es geht nicht wirklich darum, Code in einer Datei zu schreiben, Sie können diese Idee mit einer Datenbank überbrücken.

Sie könnten ein Standard-Verzeichnis einrichten, dh: Hilfe-Dokumente.

Innerhalb dieses Verzeichnisses haben Sie eine Datei: Sie können einfach die Datenbank nach Seiten durchsuchen, einen Permalink auf jede Seite mit einem get-Wert integrieren und dann Inhalt von diesem Wert anzeigen (vielleicht eine Seiten-ID).

Natürlich müssen Sie Standards und Sicherheit implementieren - dh, wenn jemand Seiten erstellen kann - stellen Sie sicher, dass nur bestimmte HTML hinzugefügt werden können oder BBCode.

Ich hoffe, dass dies Ihre Idee erweitert; So funktionieren die meisten Foren, Posts, Kommentare usw.

0

Schritt 1: -Code Klarstellung:

$link = "some like address"; 
    if(mb_strpos($link, 'http://') === FALSE || mb_strpos($link, 'http://') > 0) { 
    $link = "http://".$link; 
    } 
    $phptext = PHP_EOL."<meta http-equiv='refresh' content='0; URL=".$link." '/>"; 
    file_put_contents('backupfile.php', $phptext, FILE_APPEND); 

Ok, so was habe ich hier:

  • Überprüfung mit Multibyte-String überprüft, ob HTTP: // erscheint in der Zeichenfolge, bei Überprüfung Der Start ist irrelivant, weil, wenn es nicht am Anfang ist, es trotzdem eine ungültige HTTP-Anfrage ist und Sie dies im angegebenen Code nicht überprüfen.

  • Sobald diese Option aktiviert ist, wird der Wert $link aktualisiert.

  • Verwenden Sie dann file_put_content, um anzuhängen, was in der Zeichenfolge in der vorhandenen Datei enthalten ist. Wenn die Datei nicht existiert, wird sie erstellt.


Edit:

Es ist nicht klar aus Ihrer Frage, aber wenn Sie $link im String gespeichert werden soll dann den Link schreiben, wie mit einfachen Anführungszeichen folgt:

$phptext = PHP_EOL.'<meta http-equiv="refresh" content="0; URL=$link"/>';