php datei erstellen über php-script

curi

Mitglied
wie der titel schon sagt.

nur ich will halt ein formular hab textarea wo ich den code eintrage was nachher in der datei stehen soll. und name per input nur die datei an die des geschickt wird und die .php datei erstellt weis ich nicht wie des geht

ich hoffe ihr versteht mich greetz curi
 
ganz normal wie eine Textdatei behandeln nur das diese dann *.php heisst.

fputs lautet da eine Variante um Daten in eine Datei zu schreiben
 
Folgendes sollte funktionieren:

PHP:
<?php
$dateiname = 'script'; //ggf. dann hier die Daten aus dem Formular beziehen
$code = "<?php echo 'Hallo Welt!'; ?>";
$datei = fopen($dateiname.'.php', 'w');
fwrite($datei, $code);
fclose($datei);
?>

Hier wird dann also die Datei script.php angelegt, welche wiederum nach einem Aufruf 'Hallo Welt!' ausgeben sollte.

Ergänzende Lektüre für Dateioperationen: http://www.php.net/filesystem/
Oder auch mal bei schattenbaum.de nachschauen oder oder oder...

PS: Bitte achte das nächste mal auf eine korrekte Groß- / Kleinschreibung und Zeichensetzung (siehe auch die Netiquette).
 
ich habe das gerade mal probiert und so zusammengeschrieben würde das auch gehen?

<?
$dateiname = touch("$dateiname.php");


$datei = "$dateiname"; // Datei in die wir schreiben wollen
$fp = fopen($datei,"w"); //Datei wird zum schreiben geöffnet

fwrite($fp,"$inhalt"); // Daten werden jetzt mit fwrite in die php Datei geschrieben.
fclose($fp);
?>

?
 
Ok, hierzu mal ein paar Anmerkungen:

1.
[...]würde das auch gehen?
Warum probierst dus nicht aus? :rolleyes:
Na gut, es sollte eigentlich schon funktionieren, aber...

2.
Warum die Datei erst mit touch() anlegen und danach wieder zum Schreiben öffnen, wenn der alleinige Zugriff durch [phpf]fopen[/phpf] mit dem Modus 'w' die Datei, falls noch nicht vorhanden, anlegt? touch() wäre hier also redundant.

3.
PHP:
fwrite($fp,"$inhalt");
Obwohl das Ganze natürlich syntaktisch richtig ist, so machst du hier allerdings einen logischen Fehler, sofern du wirklich $inhalt (die Variablenbezeichnung, nicht deren Wert!) in die Datei schreiben willst. PHP würde den String zwischen " und " parsen und versuchen $inhalt durch den Wert der gleichnamigen Variable zu ersetzen. Da aber keine Variable $inhalt existiert, wird leider auch nichts in die Datei geschrieben.
Wenn du wirklich den Wert von $inhalt speichern willst, dann ignoriere obiges (aber mach dann bitte auch die Anführungszeichen um die Variable weg).
 
ok hatte es schon ausprobiert aber ging nicht ganz jetzt habe ioch meins nochmal editiert es sieht jetzt so aus

<?
$datei = "$name";
$fp = fopen($datei,"w");

fwrite($fp,$inhalt);
fclose($fp);
?>

das problem:

Warning: fwrite(): supplied argument is not a valid stream resource in /home/export/www/vhosts/funnetwork/hosting/curi/datei erstellen/datei_erstellen.php on line 5

Warning: fclose(): supplied argument is not a valid stream resource in /home/export/www/vhosts/funnetwork/hosting/curi/datei erstellen/datei_erstellen.php on line 6
 
Zuletzt bearbeitet:
Könnte sein, dass die Dateierstellung an fehlenden Rechten scheitert. Versuche mal, dem Ordner, in dem du das Script erstellst einen CHMOD von 777 zu geben.
 
hatte ich gemacht und der ordner hat chmod 777

edit: alles hat nur chmod 777 und immernoch der gleiche fehler
 
Zuletzt bearbeitet:
PHP:
$datei = "$name";
$fp = fopen($datei,"w");

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

Du willst eine Datei mit dem Namen $name erstellen?
Oder dem Inhalt von $name?
Ich glaube nicht das ein Sonderzeichen wie $name erlaubt ist.
Wenn du allerdings den Inhalt der Variabel $name willlst :

PHP:
$datei = $name;
$fp = fopen($datei,"w");

fwrite($fp,$inhalt);
fclose($fp);
 
Zurück