[php] Lijn bovenaan in een tekst bestand bijschrijven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een erg basic vraagje maar ik kom er echt niet uit:
Ik wil in een tekstbestand dat bijv. bestaat uit:
"bla
bla"
(twee regels dus) een regel toevoegen m.b.v PHP maar die ingevoegde regel moet boven "bla bla" komen te staan. Er mag niet over een regel heengeschreven worden dus het kan niet met:
PHP:
1
2
3
<?php $fp = fopen ("test.txt", "r+"); 
fwrite ($fp, $som); 
fclose ($fp); ?> 

Weet iemand dus hoe ik wel een regel bovenaan in een tekstbestand kan toevoegen zonder een andere regel te overlappen? :?

Acties:
  • 0 Henk 'm!

  • TheovdS
  • Registratie: Oktober 2004
  • Laatst online: 16-01 02:24
Kan dat niet gewoon met "\n" ?

Acties:
  • 0 Henk 'm!

  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 19-08 16:06

ripperke

w00t!

http://php.belnet.be/manual/nl/function.fopen.php

arf, ff vergissing, volgens mij moet je dus w+ hebben...

[ Voor 67% gewijzigd door ripperke op 01-11-2005 19:24 ]

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


Acties:
  • 0 Henk 'm!

  • iH8
  • Registratie: December 2001
  • Laatst online: 17-06-2024

iH8

dat zou je alleen lukken als je eerst alle lines inleest, dan die array bewerken, dan de file opnieuw weg/overschrijven. volgens mij kun je op jouw manier alleen maar appenden.

Aunt bunny is coming to get me!


Acties:
  • 0 Henk 'm!

  • sTeVuu
  • Registratie: Oktober 2005
  • Laatst online: 08-08-2023
Je zou kunnen proberen:

- Bestand uitlezen dmv file() (retourneert array met regels)
- Een element toevoegen aan het begin van de array dmv array_unshift
- Terugschrijven naar bestand dmv openen met fopen($bestand, "w+"), en implode($array)

//edit:

Je hebt helemaal gelijk remyblok, mijn fout!
PHP:
1
2
3
4
5
6
7
8
<?php
$bestand = "bestand.txt";

$array = file($bestand);
array_unshift($array, "regel\r\n");
$handle = fopen($bestand, "w+");
if (fwrite($handle, $array)) echo "Gelukt!";
?>

Typfouten onder voorbehoud ;)

[ Voor 113% gewijzigd door sTeVuu op 01-11-2005 20:04 ]


Acties:
  • 0 Henk 'm!

  • remyblok
  • Registratie: Oktober 2003
  • Laatst online: 15-09 14:36
Je hoeft geen $regeleinde toe te voegen bij de implode. Ik heb van het wekend nog ff naar file() zitten kijken en las er dit:
Elke regel in de resulterende array bevat het newline teken, dus je moet nogsteeds trim() gebruiken als je dat niet wilt.
Als je dus wel nieuwe lines toevoegt, krijg je een lege regels tussen elke zin.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste mensen,

Bedankt voor jullie hulp maar ik heb al een maniertje gevonden hoe het wel lukt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$fc=file ("bestand.txt");
$f=fopen("bestand.txt","w");
$ja="$toevoeging
";
foreach($fc as $line)
{
$ja="$ja$line";  
}
fwrite ($f, $ja);  
fclose ($f);
echo $ja;
?>


Is deze creatieve manier goed of zit er een fout in?

[ Voor 12% gewijzigd door Verwijderd op 02-11-2005 18:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op woensdag 02 november 2005 @ 17:06:
Beste mensen,

Bedankt voor jullie hulp maar ik heb al een maniertje gevonden hoe het wel lukt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$fc=file ("bestand.txt");
$f=fopen("bestand.txt","w");
$ja="$toevoeging
";
foreach($fc as $line)
{
$ja="$ja$line";  
}
fwrite ($f, $ja);  
fclose ($f);
echo $ja;
?>


Is deze creatieve manier goed of zit er een fout in?
Je weet toch wel dat variabelen niet tussen quotes horen?
Misschien zoiets;

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
$fc=file ("bestand.txt");
$f=fopen("bestand.txt","w");
$ja = $toevoeging;
foreach($fc as $line)
{
$ja = $ja . $line;  
}
fwrite ($f, $ja);  
fclose ($f);
echo $ja;
?>


Zoiezo zou ik nog eens kijken naar je code, omdat die niet al te net is.
Pagina: 1