Neue Datei mit PHP-Variablen erstellen

09/08/2020 01:25 Legithos#1
Hallo zusammen,

ist es möglich (und wenn ja, wie ?) via PHP-Funktion eine neue .php-Datei zu erstellen und diese anschließend mit PHP-Code (u.a. Variablen) und HTML-Code zu füllen ?

Vereinfachtes Beispiel:


Ich würde also gerne PHP-Variablen auch als Variable in eine von mir via Code erstellte Datei schreiben.

Der Code, welcher in hello_world.php steh, soll also folgender sein:


Ist das so überhaupt möglich ? Gibt es Alternativen zu meiner Denkweise / meinem Vorgehen ?

Danke !
09/08/2020 03:22 Mikesch01#2
Hi. Deine Vorgehensweise ist für dein Vorhaben genau die richtige. Du erstellst mittels PHP eine neue Datei und füllst diese mit deinem Code. Diese ist nun wie eine normale PHP Datei auf dem Pfad verfügbar, den du angegeben hast. Somit kannst du die PHP Datei nun wie üblich benutzen.
09/08/2020 13:44 False#3
Wie schon von Mikesch01 geschrieben ist das natürlich möglich, die Frage ist wofür brauchst du das ?
09/08/2020 14:15 Devsome#4
Machen manche cms nicht auch so neue Seiten die der Benutzer will?
09/08/2020 17:59 Legithos#5
Quote:
Originally Posted by False View Post
Wie schon von Mikesch01 geschrieben ist das natürlich möglich, die Frage ist wofür brauchst du das ?
Ich würde gerne via Knopfdruck eine PHP-Datei erstellen, welche mit Hilfe von 'require' andere Datein lädt, zb meine language.json und meine Header.php. Zudem soll die neue PHP-Datei input-Felder enthalten und auch die Variablen meiner Sprachdatei (die language.json) an den richtigen Stellen mit z.B. $translation["submit"] laden.

Es funktioniert soweit alles, nur bekomm ich einen Fehler (ich glaube bezüglich Whitespace) in meiner $txt-Variable beim erstellen der neuen Datei. Ich reiche den Fehler nach, sobald ich daheim bin.

EDIT:

Bei

Code:
$txt = "<?php session_start(); include_once $_SERVER['DOCUMENT_ROOT'] . '/test/test/test.php';?>";
Bekomme ich den Fehler

Code:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /usr/www/users/test/test.php on line 8021
EDIT 2:

Habe es selbst geschafft. Die Variablen (hier $_SERVER['DOCUMENT_ROOT']) gehören in geschweifte Klammern alla: {$_SERVER['DOCUMENT_ROOT']}

EDIT: 3

Aber wie mache ich es bei z.B.$stmt_check_game->fetch() ?
09/08/2020 19:27 False#6
Was du vor hast war mir bewusst, nur wieso willst du automatisch php Dateien erzeugen ?
Was für ein Zweck erfüllen die Dateien das du extra dafür neue Dateien erstellen musst ?
09/08/2020 20:39 Legithos#7
Das ist leider aufgrund der Komplexität meines Projektes nicht so leicht zu erklären. Fakt ist, es ist so, ich will das auch so und das war auch nicht meine Frage.

Ich hab leider keine Ahnung (jetzt kommen wir wieder zu meiner Frage), wie ich Variablen beim Erstellen einer neuen Datei zu Text mache, anstatt den Wert in der Variable zu bekommen.

Code:
$variable = "Hallo Welt!";
$txt = "<h1>" . $variable . "</h1>";
Dann steht in meiner PHP-Datei "Hallo Welt!".

Wie muss ich mein $txt gestalten, wenn ich will, dass in meiner PHP-Datei "<h1>" . $variable . "</h1>" steht und er die $variable beim Erstellen der Datei als Text statt Variable sieht ?
09/08/2020 21:05 Mad0ck#8
Quote:
Originally Posted by Legithos View Post
Das ist leider aufgrund der Komplexität meines Projektes nicht so leicht zu erklären. Fakt ist, es ist so, ich will das auch so und das war auch nicht meine Frage.

Ich hab leider keine Ahnung (jetzt kommen wir wieder zu meiner Frage), wie ich Variablen beim Erstellen einer neuen Datei zu Text mache, anstatt den Wert in der Variable zu bekommen.

Code:
$variable = "Hallo Welt!";
$txt = "<h1>" . $variable . "</h1>";
Dann steht in meiner PHP-Datei "Hallo Welt!".

Wie muss ich mein $txt gestalten, wenn ich will, dass in meiner PHP-Datei "<h1>" . $variable . "</h1>" steht und er die $variable beim Erstellen der Datei als Text statt Variable sieht ?


$txt = ' "<h1>" . $variable . "</h1>" ' ;

< = <
> = >
Probiers mal damit.

oder:

$txt = htmlspecialchars(' "<h1>" . $variable . "</h1>" ' );

[Only registered and activated users can see links. Click Here To Register...]
_
[Only registered and activated users can see links. Click Here To Register...]
Referenz: [Only registered and activated users can see links. Click Here To Register...]
Lg
09/08/2020 21:09 Legithos#9
Quote:
Originally Posted by Mad0ck View Post
$txt = ' "<h1>" . $variable . "</h1>" ' ;

< = <
> = >
Probiers mal damit.

oder:

$txt = htmlspecialchars(' "<h1>" . $variable . "</h1>" ' );

[Only registered and activated users can see links. Click Here To Register...]
Referenz: [Only registered and activated users can see links. Click Here To Register...]
Lg
Nett gemeint, geht mir aber nicht um die HTML-Tags, das würde ich auch mit htmlspecialchars() hinbekommen. Geht mir hier rein um die Variable.
09/08/2020 21:28 Mad0ck#10
Quote:
Originally Posted by Legithos View Post
Nett gemeint, geht mir aber nicht um die HTML-Tags, das würde ich auch mit htmlspecialchars() hinbekommen. Geht mir hier rein um die Variable.
tbh, kein Plan was du jetzt genau willst.

Mit:
PHP Code:
Dann steht in meiner PHP-Datei "Hallo Welt!".

Wie muss ich mein $txt gestaltenwenn ich willdass in meiner PHP-Datei "<h1>" $variable "</h1>" steht und er die $variable beim Erstellen der Datei als Text statt Variable sieht 
Verstehe ich, dass du "<h1>" . $variable . "</h1>" ausgeben willst.

Ich hab dir einfach mal alle 3 erstellt. Such dir aus was du brauchst xD
PHP Code:
# Problem "Hallo Welt!" in txt (/echo)
$variable "Hallo Welt!";
$txt "<h1>" $variable "</h1>";
echo(
$txt);

# Ausgabe $variable in txt (/echo)
$variable "Hallo Welt!";
$txt1 '. $variable .' ;
echo(
$txt1);



# Ausgabe"<h1>" . $variable . "</h1>"
$variable "Hallo Welt!";
$txt2 htmlspecialchars(' "<h1>" . $variable . "</h1>" ' );
echo 
nl2br ("\n");
echo(
$txt2); 
PHP Code:
AUSGABE:
Hallo Welt!
$variable .
"<h1>" $variable "</h1>" 
Benütze kein PHP mehr, aber "" prüft auf Variablen mag ich zu meinen, und '' gibt einfach die Zeichenkette aus.
Müsste ich in der Doku nachschauen ums dir genau zu sagen ^^
09/08/2020 22:06 Legithos#11
Quote:
Originally Posted by Mad0ck View Post
# Ausgabe $variable in txt (/echo)
$variable = "Hallo Welt!";
$txt1 = '. $variable .' ;
echo($txt1);


Benütze kein PHP mehr, aber "" prüft auf Variablen mag ich zu meinen, und '' gibt einfach die Zeichenkette aus.
Das hat mir auf alle Fälle schon mal geholfen. Jetzt weiß ich, dass ich Variablen als Text ausgebe, wenn ich diese in ' ' setze.

Wie wandle ich denn folgenden Code als Text um ?

PHP Code:
$online_check = new Check();
$online_check->check_isonline(); 
Es funktioniert leider weder

PHP Code:
'$online_check = new Check()';
'$online_check->check_isonline()'
noch

PHP Code:
'$online_check' = new Check();
'$online_check'->check_isonline(); 
Bei beiden Varianten bekomme ich den Fehler:

Code:
Fatal error: Uncaught Error: Object of class Check could not be converted to string in /usr/www/users/test/test.php:8021 Stack trace: #0 {main} thrown in /usr/www/users/test/test.php on line 8021
09/08/2020 22:31 Mad0ck#12
PHP Code:
$txt '$online_check = new Check()'
Ausgabe:
PHP Code:
$online_check = new Check() 
Sollte eig klappen.
Musst halt den String in ne Variable speichern.
Wenn du nur '$online_check = new Check()'; ausführst kommt nicht so viel bei rum I guess.
09/08/2020 22:49 Legithos#13
Wenn ich jetzt wieder zum ursprünglichen Thema komme, eine PHP-Datei mit der Variable $txt als Inhalt der PHP-Datei zu erstellen, dann wirds problematisch ..

Das wäre ja dann

PHP Code:
$txt "'$online_check = new Check()';"
was jedoch wieder nicht funktioniert.
09/08/2020 23:11 False#14
Quote:
Originally Posted by Legithos View Post
Das ist leider aufgrund der Komplexität meines Projektes nicht so leicht zu erklären. Fakt ist, es ist so, ich will das auch so und das war auch nicht meine Frage.
Das ist doch schwachsinn, es ist bestimmt beschreibbar...
Naja, wenn du höchstwahrscheinlich eine schlechte (& evtl. sogar nicht sichere - erst recht da du simple string Funktionien nicht verstehst.) Lösung willst dann mach das.
09/09/2020 05:41 Legithos#15
Quote:
Originally Posted by False View Post
Das ist doch schwachsinn, es ist bestimmt beschreibbar...
Naja, wenn du höchstwahrscheinlich eine schlechte (& evtl. sogar nicht sichere - erst recht da du simple string Funktionien nicht verstehst.) Lösung willst dann mach das.
Lieber False. Ich hab hier im Forum eine Frage gestellt, um bestenfalls auch eine brauchbare Antwort zu bekommen. Was ich nicht brauchen kann, sind Antworten wie deine. Ich habe nicht gefragt, ob ich jemandem mein Projekt erklären darf, sondern ob mir jemand bezüglich meiner Fragen oben helfen kann. Ich gehe auch nicht davon aus, dass mein Vorhaben für die Antwort der Frage relevant ist.

Wenn du nicht bereit bist mir zu helfen (weil ich ja nichtmals simple string Funktionien verstehe), dann zwingt dich keiner meine Frage zu kommentieren. Entschuldigung, dass ich mich nicht so gut mit PHP auskennen wie du.

Ich stelle hier meine Fragen, wenn ich durch Google nicht schlauer werde. Also machs wie der liebe Mad0ck und hilf mir, oder spar dir die Kommentare, die mir bisher leider nicht mal ansatzweise helfen konnten.