Ich versuche, eine Datei zu erstellen und im Stammverzeichnis meiner Site zu speichern, aber ich weiß nicht, wo die Datei erstellt wird, da ich keine sehen kann. Und wenn möglich, muss die Datei jedes Mal überschrieben werden.
Hier ist mein Code:
$content = "some text here";
$fp = fopen("myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
Wie kann ich festlegen, dass es im Stammverzeichnis gespeichert wird?
$fp = fopen("/myText.txt","wb");
Antworten:
Die Datei wird im selben Verzeichnis wie Ihr Skript erstellt. Versuchen Sie dies stattdessen.
$content = "some text here"; $fp = fopen($_SERVER['DOCUMENT_ROOT'] . "/myText.txt","wb"); fwrite($fp,$content); fclose($fp);
quelle
Wenn Sie PHP unter Apache ausführen, können Sie die aufgerufene Umgebungsvariable verwenden
DOCUMENT_ROOT
. Dies bedeutet, dass der Pfad dynamisch ist und zwischen Servern verschoben werden kann, ohne mit dem Code herumzuspielen.<?php $fileLocation = getenv("DOCUMENT_ROOT") . "/myfile.txt"; $file = fopen($fileLocation,"w"); $content = "Your text here"; fwrite($file,$content); fclose($file); ?>
quelle
fopen()
öffnet eine Ressource im selben Verzeichnis wie die Datei, die den Befehl ausführt. Mit anderen Worten, wenn Sie nur die Datei ~ / test.php ausführen, erstellt Ihr Skript ~ / myText.txt.Dies kann etwas verwirrend sein, wenn Sie eine URL-Umschreibung verwenden (z. B. in einem MVC-Framework), da die neue Datei wahrscheinlich in dem Verzeichnis erstellt wird, in dem sich die Datei root index.php befindet.
Außerdem müssen Sie die richtigen Berechtigungen festgelegt haben und möchten diese möglicherweise testen, bevor Sie in die Datei schreiben. Folgendes würde Ihnen beim Debuggen helfen:
$fp = fopen("myText.txt","wb"); if( $fp == false ){ //do debugging or logging here }else{ fwrite($fp,$content); fclose($fp); }
quelle