Homepage selbermachen 7.851 Themen, 35.616 Beiträge

Function findet Datei nicht, kann fehler nicht finden

T E S T E R / 5 Antworten / Flachansicht Nickles

Im folgenden Quelltext will ich einfach nur mit der funktion schreib() arbeit sparen und das problem: er findet die datei fp scheinbar nicht, aber das teil ist doch definiert

<?

function schreib($z) {
$schreiben = fwrite ($fp, $z);
return $z;
}

if(isset($abschicken))

{
$filename = "quellcode.txt";
$fp = fopen ("$filename", "w+");
schreib("text");

}

.
.
.

?>

bei Antwort benachrichtigen
xafford T E S T E R „Function findet Datei nicht, kann fehler nicht finden“
Optionen

selbst mit global dürfte eine variable aus einer funktion nicht verfügbar sein, bin mir da aber aus dem stehgreif nicht sicher. mein vorschlag würde aber lauten:
function schreib($fp,$z) {
fwrite ($fp, $z);
}

if(isset($abschicken))

{
$filename = "quellcode.txt";
$fp = fopen ("$filename", "w+");
schreib($fp,"text");

}

noch ein paar anmerkungen dazu:
es macht keinen sinn die funktion den parameter zurückgeben zu lassen, der ihr übergeben wurde, das ist nur speicherverschwendung.
es macht auch keinen sinn dem rückgabewert von fwrite eine variable zuzuweisen, die nicht weiter verwendet wird, ebenso speicherverschwendung.
im ganzen verstehe ich auch nicht ganz den sinn nur einen fwrite in eine funktion zu verpacken, funktionen sollen eine funktionalität kapseln, nicht nur eine einzelne funktion (fwrite selbst ist eine funktion), dies ist auch ressourcenverschwendung.
sinnvoll wäre die ganze funktion zu kapseln in der form:
function write($cont='',$name='')
{
if($name==''||$cont==''){return false;}
$fp=@fopen("$name",'w+');
if(!$fp){return false;}
$fp=@fwrite($fp,"$cont");
if(!$fp){return false;}
return true;
}
if(!empty($abschicken))
{
$c=write($z,'quellcode.txt');
if(!$c)
{
echo 'Datei konnte nicht geschrieben werden';
}
}

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen