login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[opgelost] txt aanmaken via php

Offline W0etah - 01/12/2006 21:29 (laatste wijziging 02/12/2006 21:32)
Avatar van W0etahPHP beginner Ik zou graag via een knop op mijn site een txt bestand laten aanmaken waarin je vanalles kan zetten.
Ik heb al informatie gevonden over fopen()

maar hoe gaat dit exact in zijn werk.
Bestaat er een tutorial van?

18 antwoorden

Gesponsorde links
Offline svm - 01/12/2006 21:47
Avatar van svm PHP ver gevorderde Ja, deze bestaat.
Deze heb ik geschreven:
http://www.site...&cat=4
Offline W0etah - 01/12/2006 22:10
Avatar van W0etah PHP beginner bedankt, ik heb deze tutorial is goed gelezen, maar heb toch een vraag, je zegt dat fwrite() kan vervangen worden door file_put_contents().

Is die laatste beter?
Offline svm - 01/12/2006 22:12
Avatar van svm PHP ver gevorderde 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.
Offline W0etah - 01/12/2006 22:13
Avatar van W0etah PHP beginner bedankt, je hebt me zeer goed geholpen, ik heb het zojuist getest en het werkt .
Offline svm - 01/12/2006 22:14
Avatar van svm PHP ver gevorderde Graag gedaan .
Offline W0etah - 01/12/2006 22:19
Avatar van W0etah PHP beginner 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

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Gewoon testen</title>
  6. </head>
  7. <body>
  8. <?php
  9. function makeFile($name) {
  10. $file = fopen("$name.txt", 'w+');
  11. //file open, met w+ wordt een bestand geopend en kan je erin schrijven,
  12. //als het niet bestaat wordt het aangemaakt
  13. $inhoud = fread($fileOpen, filesize($file));
  14. //hiermee is het bestand geopend en staat in de variable $fileOpen.
  15. //Met het 2de deel geef je aan hoeveel tekens er worden weergegeven,
  16. //filsize: dus het aantal tekens dat het bestand bevat
  17. //$inhoud = fread($fp, 25); nu zullen er maar 25 tekens worden weergegeven
  18. fwrite($fileOpen, "Deze tekst wordt nu in het bestand opgeslagen");
  19. //file write
  20. fclose($fileOpen);
  21. //anders zal je bestand blijven openstaan en zal de server heel traag gaan.
  22. //file close
  23. }
  24. ?>
  25. <form method="post">
  26. Filename: <input type="text" name="fileName" />
  27. <input type="submit" name="Submit" value="Submit" />
  28. </form>
  29. <?php
  30. if(isset($_GET['Submit'])) {
  31. $fileName = $_POST['fileName'];
  32. makeFile($fileName);
  33. }
  34. ?>
  35. </body>
  36. </html>
Offline svm - 01/12/2006 22:22 (laatste wijziging 01/12/2006 22:31)
Avatar van svm PHP ver gevorderde 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?
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Gewoon testen</title>
  6. </head>
  7. <body>
  8. <?php
  9. function makeFile($name) {
  10. $fileOpen = fopen($name.".txt", 'w+');
  11. //file open, met w+ wordt een bestand geopend en kan je erin schrijven,
  12. //als het niet bestaat wordt het aangemaakt
  13. $inhoud = fread($fileOpen, filesize($name.".txt"));
  14. //hiermee is het bestand geopend en staat in de variable $fileOpen.
  15. //Met het 2de deel geef je aan hoeveel tekens er worden weergegeven,
  16. //filsize: dus het aantal tekens dat het bestand bevat
  17. //$inhoud = fread($fp, 25); nu zullen er maar 25 tekens worden weergegeven
  18. fwrite($fileOpen, "Deze tekst wordt nu in het bestand opgeslagen");
  19. //file write
  20. fclose($fileOpen);
  21. //anders zal je bestand blijven openstaan en zal de server heel traag gaan.
  22. //file close
  23. }
  24. ?>
  25. <form method="post">
  26. Filename: <input type="text" name="fileName" />
  27. <input type="submit" name="Submit" value="Submit" />
  28. </form>
  29. <?php
  30. if(isset($_GET['Submit'])) {
  31. $fileName = $_POST['fileName'];
  32. makeFile($fileName);
  33. }
  34. ?>
  35. </body>
  36. </html>


Edit:
Ik schrijf zelf wel even een code voor je...
Offline W0etah - 01/12/2006 22:28 (laatste wijziging 01/12/2006 22:34)
Avatar van W0etah PHP beginner 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
Offline svm - 01/12/2006 22:34 (laatste wijziging 01/12/2006 22:36)
Avatar van svm PHP ver gevorderde
  1. <?
  2. if(isset($_POST['Submit']) && !empty($_POST['fileName'])){
  3. $fp = fopen($_POST['fileName'].'.txt', 'a');
  4. fwrite($fp, "Hier je tekst");
  5. fclose($fp);
  6. echo "Je bestand is met succes gemaakt!<br><a href='". $_POST['fileName'] .".txt'>Klik hier</a> om deze te bekijken!";
  7. }else{
  8. ?>
  9. <form method="post">
  10. Filename: <input type="text" name="fileName" />
  11. <input type="submit" name="Submit" value="Submit" />
  12. </form>
  13. <?
  14. }
  15. ?>

Edit:
Had al geschreven toen ik zag dat ik niet hoefde te maken.
Maar kijk en leer .
Offline W0etah - 01/12/2006 22:43 (laatste wijziging 01/12/2006 22:45)
Avatar van W0etah PHP beginner thx, ik probeer het nu in mijn eigenbestand te zetten, maar doe ik nu iets fout of wat is dat hier.

Hij wilt maar geen bestand aanmaken

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Gewoon testen</title>
  6. </head>
  7. <body>
  8. <?php
  9. if(isset($_GET['Submit']) && !empty($_POST['fileName'])) {
  10. $fileOpen = fopen($_POST['fileName'].".txt", 'a');
  11. //file open, met w+ wordt een bestand geopend en kan je alleen schrijven,
  12. //w+ = openen en schrijven
  13. //als het niet bestaat wordt het aangemaakt
  14. //$inhoud = fread($fileOpen, filesize($_POST['fileName'].".txt"));
  15. //hiermee is het bestand geopend en staat in de variable $fileOpen.
  16. //Met het 2de deel geef je aan hoeveel tekens er worden weergegeven,
  17. //filsize: dus het aantal tekens dat het bestand bevat
  18. //$inhoud = fread($fp, 25); nu zullen er maar 25 tekens worden weergegeven
  19. fwrite($fileOpen, "Deze tekst wordt nu in het bestand opgeslagen");
  20. //file write
  21. fclose($fileOpen);
  22. //anders zal je bestand blijven openstaan en zal de server heel traag gaan.
  23. //file close
  24. echo "je bestand is aangemaakt";
  25. } else {
  26. ?>
  27. <form method="post">
  28. Filename: <input type="text" name="fileName" />
  29. <input type="Submit" name="Submit" value="Submit" />
  30. </form>
  31. <?php
  32. }
  33. ?>
  34. </body>
  35. </html>


EDIT: na ff zoeken had ik gevonden dat het $_POST moest zijn
Offline svm - 01/12/2006 22:45 (laatste wijziging 01/12/2006 22:47)
Avatar van svm PHP ver gevorderde Heeft je map wel de juiste CHMOD?
Zo ja: zet eens error_reporting(E_ALL); bovenin je script (dit heb ik al vaak gezegt vandaag ).

Edit:
@hieronder:
Nogmaals: graag gedaan .
Offline W0etah - 01/12/2006 22:46 (laatste wijziging 01/12/2006 22:48)
Avatar van W0etah PHP beginner 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
Offline svm - 01/12/2006 22:56
Avatar van svm PHP ver gevorderde Dat je dezelfde tekst toevoegd is dat je of 2X op de submit knop drukte of doordat je de mode op a of a+ hebt staan, gebruik dan w of w+.

De CHMOD is goed: het werkt namelijk.
Als je hier meer info over wilt, een andere tut van me:
http://www.site...amp;id=442
Offline W0etah - 01/12/2006 22:58
Avatar van W0etah PHP beginner kan je nu ook bijvoorbeeld: html tekst wegschrijven in het bestand en daarna als een html pagina laten weergeven
Offline svm - 01/12/2006 23:00 (laatste wijziging 01/12/2006 23:01)
Avatar van svm PHP ver gevorderde Tuurlijk: je maakt gewoon een pagina aan.
Maar wel een pagina aan met de extentie .html of .htm ....
De HTML code zal gewoon uitgevoerd worden.

Wil je de code zien, dan moet je hem met htmlspecialchars() omzetten.


Edit:
Ik hoop dat ik je zo goed genoeg geholpen heb.
Ik ga namelijk slapen.
Offline W0etah - 01/12/2006 23:02
Avatar van W0etah PHP beginner ik ben ff niet mee,
dan doe ik dit:
$fileOpen = fopen($fileName.'.html', 'a');

en om de code te bijken
$inhoud = fread($fileOpen, filesize($fileName.".html"));
htmlspecialchars($inhoud);
Offline svm - 01/12/2006 23:03 (laatste wijziging 01/12/2006 23:04)
Avatar van svm PHP ver gevorderde 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.
Offline W0etah - 01/12/2006 23:06
Avatar van W0etah PHP beginner bedankt voor al je hulp

Slaapwel
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.217s