Hey all!

Weet iemand hoe ik via de functie fwrite() *voor* de eerste regel kan schrijven? Dus Bovenaan het bestand waarin geschreven wordt. Bijv:

huidig bestand:
1
2
3
4
5

6 wordt toegevoegd:
6
1
2
3
4
5

snappie? :)

Alvast bedankt!
-S!ms
Hmm, ik heb nu dus dit:

$fp = fopen($filename, 'r+');
fwrite($fp, "\r\n$toadd\r\n<hr>\r\n");
fclose($fp);

waar $toadd de variabele voor het te schrijven gedeelte is. Dit werkt alleen nog steeds niet goed, omdat hij blijft overschrijven.
Any suggestions? :)
De volgorde van handelingen moet zijn:

1) bestand openen en inlezen in een variabele
2) $toadd ervoor plakken
3) de nieuwe variabele naar het bestand schrijven

Dus:
<?php
$fp = fopen($filename, 'r+');
$data = fread ($fp, filesize ($filename));
fwrite ($fp, $toadd . $data, strlen ($toadd . $data));
fclose ($fp);
?>
Bedankt! Maar wat nu gebeurd is dat hij de hele inhoud van pasted.txt ook nog herschrijft, bijv:

LINE1 wordt geschreven, inhoud pasted.txt:
LINE1

LINE2 wordt erbij geschreven, inhoud pasted.txt:
LINE1LINE2LINE1

ligt dit aan het script? :)
Waarschijnlijk wel, want daar ligt het altijd aan :-)

Voor alle zekerheid zou je het bestand apart kunnen openen voor lezen en daarna voor schrijven. Misschien dat daar iets fout loopt.
<?php
$data = file_get_contents ($filename);
$fp = fopen ($filename, 'wb');
$new_data = $toadd . $data;
fwrite ($fp, $new_data, strlen ($new_data));
fclose ($fp);
?>
Sorry voor de bumb, maar was dit helemaal vergeten :P Hij werkt nu, bedankt!
Resultaat -> http://getpasted.weejewel.net (IE only though :P )

-Emile
Ik wil toch nog even mijn oplossing posten. Die functie heb ik net geschreven, en ik denk dat anderen hier misschien ook nog wel iets mee kunnen doen:

<?php
/* Functie om te schijven naar bestand, werkt alleen in PHP 5
* Geeft TRUE wanneer schrijven gelukt is, FALSE wanneer schrijven niet gelukt is
*
* Functie gebruiken als: schrijf(bestand, te schrijven tekst, TRUE om aan het begin van het bestand te schrijven)
*/
function schrijf($bestand, $tekst, $begin = FALSE)
{
if(!file_exists($bestand))
{
return 'Het bestand "'.$bestand.'" bestaat niet';
}
else
{
if($begin == TRUE)
{
$write = $tekst.file_get_contents($bestand);
}
else
{
$write = file_get_contents($bestand).$tekst;
}

if(file_put_contents($bestand, $write))
{
return TRUE;
}
else
{
return FALSE;
}
}
}

echo schrijf('file.txt', 'tekst'); //om achteraan het bestand te schrijven
echo schrijf('file.txt', 'tekst', TRUE); //om vooraan in het bestand te schrijven
?>
Tegenwoordig moet je het er eigenlijk bij zetten als het alleen in PHP 5 kan ;-)
Doelde je op mij Boris?

Ik heb het iig aangepast :-)

Het is eigenlijk meer een snippet, maar miss leuk om de functie in de scriptlib te plaatsen? Het is wel makkelijk, maar ik denk ook best gemakkelijk zelf te maken...

Reageren