2017-05-28 3 views
0

Ich erstelle eine Website. Es hat diese Funktion:PHP Datei schreiben Funktion funktioniert nicht

public static function createPost($postName,$user,$content) { 
    echo "Posting..."; 
    $dir = fopen(storage_path('app/posts.xml'), "r+"); 
    $contents = fread($dir,filesize(storage_path('app/posts.xml'))); 
    echo $contents; 
    $contents = str_replace('</posts>', '', $dir); 
    fwrite($dir,$contents); 
    fclose($dir); 
    $file = fopen(storage_path('app/posts.xml'), "a") or die("<h1>500 Server Error.</h1>"); 
    fwrite($file,"<post>\n"); 
    fwrite($file,'<postname><div id="postname">'.$postName.'</div> 
</postname>\n'); 
    fwrite($file,"<div></div>"); 
    fwrite($file,"<user>By ".$user."</user>\n"); 
    fwrite($file,"<div></div>"); 
    fwrite($file,"<content>".$content."</content>\n"); 
    fwrite($file,"</post>\n"); 
    fwrite($file,"</posts>\n"); 
    fclose($file); 
    echo "<script>window.location.assign('/home.php');</script>"; 
} 

Aber, wenn ich es laufe, ersetzte es nicht mit '' (Linie 6). Stattdessen senden Sie es eine seltsame Zeichenfolge

Resource id # 188

Die Datei existiert wird. Warum passiert das?

Antwort

0

Sie versuchen, eine str_replace auf dieser Ressource zu tun (nicht auf den Text selbst):

$dir = fopen(storage_path('app/posts.xml'), "r+"); 

Nach der PHP-Handbuch bei http://php.net/manual/en/function.fopen.php der Rückgabewert befindet sich eine Dateizeiger Ressource auf Erfolg sein kann oder FALSCH im Fehlerfall.

Try $ dir mit $ Inhalt wie folgt zu ersetzen:

$contents = str_replace('</posts>', '', $contents);