Frage

Ich bin stecken und in der Notwendigkeit einer Hand. Hoffe jemand kann helfen?

Wer noch keine Ahnung, warum ich "failed Schreiben" in diesem Code immer bin?

$write_file = "/usr/home/public_html/php/users_v2.sql";
$write_handle = fopen($write_file, "w") || die("Couln't open users_v2!");

if (is_writeable($write_file)) {
    if ($write_handle === FALSE) echo 'Failed handle?!';
    if (fwrite($write_handle, "Hi\n") === FALSE) echo "Failed write!\n";
}

fclose($write_handle);

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Durch die Verwendung von OR-Operator, wenn die Datei-Handle erstellen, werden Sie einen Booleschen Wert auf dem Betrieb abhängig zurück. So wird $ write_handle enthalten wahr oder falsch, anstelle der Dateiressource. Eine bessere Möglichkeit, eine Datei zum Schreiben zu öffnen und testen, ob es erfolgreich war dies wäre:

$write_handle = fopen($write_file, 'w');
if ($write_handle === false)
{
    die('Could not open file ' . $write_file);
}

Darüber hinaus können Sie verwenden, um die file_put_contents () Funktion, die die fopen Griffe (), fwrite () und fclose () für Sie. Ich dies nur empfehlen, wenn Sie nur einen Schreibvorgang auf die gleiche Datei ausgeführt wird, da es eine Menge Aufwand sein wird, und wenn Sie die FILE_APPEND Flagge übergeben, wird die Datei für jeden Schreib leeren.

Andere Tipps

Ich habe es gesehen verwendet überall, aber das Problem ist die || die ( "couln't offen users_v2!");

Zuerst habe ich hinzugefügt:

error_reporting(E_ALL);

zu sehen, welche PHP-Fehler meldet.

$write_handle = fopen($write_file, "w") || die("Couln't open users_v2!");
fclose($write_handle);

Gibt einen ungültigen Strom Griff Fehler und Datei-Handle von 1. Ohne sie die zurückgegebene Datei-Handle ist „Resource id # x“.

Ändern der Zeile:

$write_handle = fopen($write_file, "w"); // || die("Couln't open users_v2!");

und Ihr Code funktioniert gut. Gonna go veröffentlicht diese auf php.net jetzt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top