Ik zelf gebruik altijd fwrite().
file_put_contents() werkt, zoals vermeld, alleen bij PHP5 of hoger.
Maar bij fwrite() kun je bepalen hoe je het wegschrijft: over de pagina die leeg is, aan het begin of aan het eind van het bestand.
Dit bepaal je dus met de mode die je in fopen() zet.
kheb nog een vraagje, ik heb nu een klein scriptje, nog niet beveiligd ofzo, waar ik een bestandje zou kunnen maken als ik een naam intyp, maar dit werkt precies niet
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Gewoon testen</title>
</head>
<body>
<?php
function makeFile($name) {
$file = fopen("$name.txt", 'w+');
//file open, met w+ wordt een bestand geopend en kan je erin schrijven,
//als het niet bestaat wordt het aangemaakt
$inhoud = fread($fileOpen, filesize($file));
//hiermee is het bestand geopend en staat in de variable $fileOpen.
//Met het 2de deel geef je aan hoeveel tekens er worden weergegeven,
//filsize: dus het aantal tekens dat het bestand bevat
//$inhoud = fread($fp, 25); nu zullen er maar 25 tekens worden weergegeven
fwrite($fileOpen, "Deze tekst wordt nu in het bestand opgeslagen");
//file write
fclose($fileOpen);
//anders zal je bestand blijven openstaan en zal de server heel traag gaan.
//file close
}
?>
<form method="post">
Filename: <input type="text" name="fileName" />
<input type="submit" name="Submit" value="Submit" />
</form>
<?php
if(isset($_GET['Submit'])) {
$fileName = $_POST['fileName'];
makeFile($fileName);
}
?>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ten eerste de variable buiten quotes.
En ten tweede: je noemt de variable waarin fopen() opgeslagen wordt anders dan welke je gebruikt bij fread() en fwrite().
Ten derde kan ik nergens de waarde van $file vinden in fread().
Dit is aangepast, mocht dit ergens anders staan kun je dit weer terug zetten.
En wat ik me afvraag: waarom gebruik je fread() erin?
Dit heeft toch geen nut?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Gewoon testen</title>
</head>
<body>
<?php
function makeFile($name) {
$fileOpen = fopen($name.".txt", 'w+');
//file open, met w+ wordt een bestand geopend en kan je erin schrijven,
//als het niet bestaat wordt het aangemaakt
$inhoud = fread($fileOpen, filesize($name.".txt"));
//hiermee is het bestand geopend en staat in de variable $fileOpen.
//Met het 2de deel geef je aan hoeveel tekens er worden weergegeven,
//filsize: dus het aantal tekens dat het bestand bevat
//$inhoud = fread($fp, 25); nu zullen er maar 25 tekens worden weergegeven
fwrite($fileOpen, "Deze tekst wordt nu in het bestand opgeslagen");
//file write
fclose($fileOpen);
//anders zal je bestand blijven openstaan en zal de server heel traag gaan.
//file close
}
?>
<form method="post">
Filename: <input type="text" name="fileName" />
<input type="submit" name="Submit" value="Submit" />
</form>
<?php
if(isset($_GET['Submit'])) {
$fileName = $_POST['fileName'];
makeFile($fileName);
}
?>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
mmm,raar, ik had eerst het in mijn bestand veranderd, kwestie van het zelf te leren en te kijken wat er veranderd.
Maar toen ik zag dat het niet werkte heb ik het jouwe gekopieerd, maar dat werkt ook niet
edit: die fread() had ik gebruikt toen ik je tutorial leesde.
edit: svm, dit hoeft echt niet, zelf een code schrijven, ik zou het heel graag zelf leren aan de hand van mijn eigen scripting
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Gewoon testen</title>
</head>
<body>
<?php
if(isset($_GET['Submit']) && !empty($_POST['fileName'])) {
$fileOpen = fopen($_POST['fileName'].".txt", 'a');
//file open, met w+ wordt een bestand geopend en kan je alleen schrijven,
//w+ = openen en schrijven
//als het niet bestaat wordt het aangemaakt
//$inhoud = fread($fileOpen, filesize($_POST['fileName'].".txt"));
//hiermee is het bestand geopend en staat in de variable $fileOpen.
//Met het 2de deel geef je aan hoeveel tekens er worden weergegeven,
//filsize: dus het aantal tekens dat het bestand bevat
//$inhoud = fread($fp, 25); nu zullen er maar 25 tekens worden weergegeven
fwrite($fileOpen, "Deze tekst wordt nu in het bestand opgeslagen");
//file write
fclose($fileOpen);
//anders zal je bestand blijven openstaan en zal de server heel traag gaan.
//file close
echo "je bestand is aangemaakt";
} else {
?>
<form method="post">
Filename: <input type="text" name="fileName" />
<input type="Submit" name="Submit" value="Submit" />
</form>
<?php
}
?>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
heb het al gevonden, staat in mijn vorige reactie bij edit
maar het moest gewoon $_POST zijn, heel hartelijk dank svm
EDIT: misschien nog een laatste vraag, als je er tekst laat bij schrijven, moet je dan chmod gebruiken, want ik heb het nu niet opgezet, maar het werkt toch, ik kon 2 keer dezelfde tekst in 1 bestand toevoegen
De html pagina voert gewoon de code uit die je erin wegschrijft.
De htmlspecialchars() is alleen als je de weggeschreven code op je pagina als text wilt zien.
Edit:
Probeer anders gewoon uit.
Dan begrijp je wat ik bedoel.