WinFuture-Forum.de: Php Datei Schreiben - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Php Datei Schreiben fputs, fwrite geht nicht


#1 _-=[J]=-_

  • Gruppe: Gäste

geschrieben 24. Februar 2009 - 18:28

Hab heut schon den halben Tag versucht das ding zum schreiben zu bekommen.
Die Echos gehen alle.
die fwrites nur die untersten beiden (ausserhalb der funktion).
hat jemand ne idee ?


<?php
$counter = 0;

$file = fopen("test.txt","w");

function read_dir($dir,$depth) {
	$path = opendir($dir);
	while (false !== ($file = readdir($path))) {
		if($file!="." && $file!="..") {
			if(is_file($dir."/".$file)){
				$files[]=$file;
			} else {
				$dirs[]=$dir."/".$file;
			}
		}
	}
	if($dirs) {
		natcasesort($dirs);
		//if($depth > 0){ 
			foreach($dirs as $fdir) {
				$name = substr($fdir, strlen($dir)+1);
				if($depth > 0){ 
				$nameNeu = substr($name,2);
				$nameNeu = str_replace("_", " ", $nameNeu);
				echo fwrite($file,"	<projekt title=\"".$nameNeu."\" path=\"".$name."\" ");//schreiben
				echo"	<projekt title=\"".$nameNeu."\" path=\"".$name."\" ";
				read_dir($fdir, $depth - 1 ); 
				fwrite($file,"/>\n");//schreiben
				echo "/>\n";
			}  
		}
	}
	
	if($files) {
		natcasesort($files);
		foreach ($files as $file) {
			if (strrchr($file, '.') == '.txt' && $file!="." && $file!=".." && $file!=".DS_Store"){
				$counter++;
				}
		}
		if($file!=".DS_Store" && $file!=".." && $file!="."){
			fwrite($file,"anzahl=\"".$counter."\""); //schreiben
			echo "anzahl=\"".$counter."\"";
			}
		   $counter = 0;
	}
	
	closedir($path);
}
$path="/Applications/MAMP/htdocs/bpcProjekte";

fwrite($file,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<gallery>\n");//schreiben geht
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<gallery>\n";
read_dir($path,3);

fwrite($file,"</gallery>");//schreiben geht
echo "</gallery>";
fclose($file);
?>

0

Anzeige



#2 Mitglied ist offline   h-a-n-n-e-s 

  • Gruppe: aktive Mitglieder
  • Beiträge: 824
  • Beigetreten: 11. August 06
  • Reputation: 1

geschrieben 24. Februar 2009 - 21:31

Kommen Fehlermeldungen? Wenn ja, bitte reinkopieren.
Eingefügtes Bild
0

#3 _-=[J]=-_

  • Gruppe: Gäste

geschrieben 24. Februar 2009 - 21:35

ja, ich hab mich schon gewundert das keine fehlermeldungen kommen.
ich hab nun ini_set("display_errors", ON); eingeschaltet.

Notice:  Undefined variable:  dirs in /Applications/MAMP/htdocs/makeXMLdat3.phpon line 17
 
 Notice:  Undefined variable:  counter in /Applications/MAMP/htdocs/makeXMLdat3.php on line 32


habe ich fwrite drin kommt die dazu:
Warning:  fwrite(): supplied argument is not a valid stream resource in /Applications/MAMP/htdocs/makeXMLdat.php on line 27



Tja, ich hav zwar versucht die Variablen am anfang zu definieren aber das bringt nix.
irgendwie bin ich am verzweifeln. Auf dem Server auf dem es laufen soll kommen keine fehlermeldungen.
aber er macht auch nicht das was er machen soll.
Trotzden "Notice" läuft das ganze wenn ich echo benutz, das is das seltsame.

Dieser Beitrag wurde von -=[J]=- bearbeitet: 24. Februar 2009 - 21:38

0

#4 _-=[J]=-_

  • Gruppe: Gäste

geschrieben 24. Februar 2009 - 22:43

boa is das dumm. hab die variable nicht an die funktion übergeben...
0

#5 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 05. März 2009 - 18:43

Etwas Fehlerbehandlung taete deinem code gut :P

Schau mal ob du die Datei wirklich oeffnen konntest...
$file = fopen("test.txt","w");
if ( !$file ) {
  die("fopen for test.txt failed, no write access?");
}


fwrite gibt bei Fehler FALSE zurueck. Das wuerde ich auch noch ueberpruefen. Du kannst es ja so in der art wrappen ...
function myWrite ( $file, $string ) {
 if ( !fwrite($file, $string) ) {
   die ("fwrite failed");
 }
}


Etwas sucky ist die fehlerbehandlung mit php natuerlich ..

Ich wuerd' darauf tippen, dass du dort in /Applications/ et cetera gar nicht schreiben darfst :). Vllt. magst du dein htdocs-verzeichnis ja in dein homedir linken und dem verzeichnis benutzerspezifische rechte geben (chmod/chown). mit "ln -s" sollte das auch unter macos x funktionieren.

gruss,
mo
I'm mó. mo's good twin.
0

#6 _-=[J]=-_

  • Gruppe: Gäste

geschrieben 05. März 2009 - 19:52

Danke für deine Antwort.
Wie schon geschrieben habe ich schlichtweg vergessen eine Variable an die Funktion zu übergeben und damit wurde auch das fwrite nicht ausgeführt.
Das war auch schon die Lösung.

trotzdem Vielen Dank
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0