php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.11.2004, 15:29  
Benutzer
 
Registriert seit: 15.09.2004
Beiträge: 57
pixelcut
Standard Problem mit copy() und fwrite()

Hallo,

folgenden Code habe ich in meiner Datei:

Code:
<?
copy("/home/www/web1/temp.php", "/home/www/web1/".$user.".html");

$name = $user;
$file = "/home/www/web1/html/".$user.".html";

$fp = fopen($file, "r+");
$data = fread($fp, filesize($file));
$schreib = str_replace("{name}", $name, $data);
fwrite($fp, $schreib);
fclose($fp);
?>

So, der File wird kopiert, jedoch steht in der neuen Datei
dann der DOPPELTE Inhalt von der temp.php.

Im ersten Teil wird das {name} nicht ersetzt (sieht also
von HTML bis /HTML vollkommen unangetastet aus) und
darunter wird es ersetzt (mit dem Value von name). Kann
mir da vielleicht jemand helfen? :-/

Vielen Dank![/code]
pixelcut ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.11.2004, 15:37  
Gast
 
Beiträge: n/a
Standard

Wer fopen(..., "r+") benutzt, der sollte sich eigenlich das gelesen haben:
Zitat:
Zitat von Handbuch
'r+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.
Du liest erst den vorhandenen Kram - der Zeiger steht dann am Ende. Und danach schreibst Du den Kram ins selbe File...
  Mit Zitat antworten
Alt 25.11.2004, 15:51  
Benutzer
 
Registriert seit: 15.09.2004
Beiträge: 57
pixelcut
Standard

Hmm, erstmal danke für die Antwort, ich habe es jetzt gerade
mit "r" probiert, da passiert jedoch nix, mit "w" und "w+" ist die
Datei dann komplett leer und "a" sowie "a+" geht auch nicht. Ich
habe mich leider bislang nicht mit dem schreiben von Dateien beschäftigt
aber irgendwie will das hier nicht so. Noch eine Idee?
pixelcut ist offline   Mit Zitat antworten
Alt 25.11.2004, 16:14  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von pixelcut
ich habe es jetzt gerade mit "r" probiert, da passiert jedoch nix,
Denk nach! r+ ist nur für solche Fälle geeignet, wenn der Inhalt komplett gelesen und danach was angehängt werden soll. Bei a+ wird der Zeiger gleich ans Ende gesetzt - um bspw. einen Gästebucheintrag dranzuhäkeln.

Du willst eine Quelldatei im Verzeichnis A lesen, verändern und das veränderte im Verzeichnis B als neue Datei speichern.

PHP-Code:

$quelle 
'/quelle/dateiname.ext';

$ziel '/ziel/dateiname.ext';

# Also mußt Du die Quelle lesen 

$text file($quelle);

# bearbeiten

$text str_replace('{name}''Fritz'$text); # $text kann auch ein Array sein

# aus $text wieder einen String mit \n machen

$text implode ("\n"$text);

# und das Ziel schreiben. 
if (! $fp = @fopen($ziel'w'))
  die (
'darf nicht schreiben');
fwrite($fp$textstrlen($text));

@
fflush($fp); # sicherheitshalber...

fclose($fp); # File schließen 
  Mit Zitat antworten
Alt 26.11.2004, 10:56  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Oder, wenn du mit fopen('...'. 'r+') arbeien willst:
PHP-Code:
copy("/home/www/web1/temp.php""/home/www/web1/".$user.".html");

$name $user;
$file "/home/www/web1/html/".$user.".html";

$fp fopen($file"r+");
$data fread($fpfilesize($file));
$schreib str_replace("{name}"$name$data);

rewind(fp);        // Setzt den Dateizeiger auf den Anfang zurück
// ODER
fseek(fp0SEEK_SET);    // Dasselbe

fwrite($fp$schreib);
fclose($fp); 
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 26.11.2004, 15:58  
Benutzer
 
Registriert seit: 15.09.2004
Beiträge: 57
pixelcut
Standard

Das hat geklappt, ich danke euch vielmals!
pixelcut ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
[curl] Größe unterschiedlich zum Original (copy() Problem) betrazivis PHP-Fortgeschrittene 5 23.10.2006 16:53
Warning: fwrite() ??? Razoback PHP Tipps 2006 1 25.07.2006 21:37
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
Problem mit copy() dimitri PHP Tipps 2006 1 15.03.2006 00:30
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem mit copy() PHP Tipps 2005-2 1 03.09.2005 20:23
kleines problem mit fwrite Tic Rederon PHP Tipps 2005-2 6 23.08.2005 08:24
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
problem mit copy() kid01 PHP Tipps 2004-2 4 17.11.2004 14:50
Problem mit dateiupload (copy) PHP-Fortgeschrittene 19 26.10.2004 11:51
[Erledigt] copy - Funktion bereitet Problem PHP-Fortgeschrittene 5 04.09.2004 22:54
Problem mit copy() rocco PHP Tipps 2004 3 25.08.2004 09:58
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php copy danach fopen, php fwrite leer, php copy, fwrite zeiger adresse, fwrite leer, php fwrite problem datei leer, php fopen copy file, php fwrite, fwrite zeiger anfangn, php fwrite datei leer, http://www.php.de/php-fortgeschrittene/12933-problem-mit-copy-und-fwrite.html, fwrite geeignet, fwrite zeiger ans ende, php fwrite not working, fwrite bei fopen r funktioniert nicht

Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.