Toon posts:

[php] inhoud van een file in een var. zetten

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb dus een soort van mssgboardje gecreeërd

het werkt (op een foute tijdsnotatie na) allemaal prima alleen komen de nieuwe berichten helaas steeds onderaan te staan...

de source:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
if ($message) 
    { 
    $name = strip_tags($name); 
    $message = strip_tags($message); 
    $message = ereg_replace("\r\n\r\n", "\n<P>", $message); 
    $date = date("j F H:i"); 
    $message = "<B>Added $date by <A HREF='mailto:$meel?subject=JohanSchaap.nl[PHPTalk]'>$name</A></B><P><I> $message </I><BR><HR>"; 
    $fp = fopen (basename($PHP_SELF) . ".comment", "a"); 
    fwrite ($fp, $message); 
    fclose ($fp); 
    } 
@readfile(basename(($PHP_SELF . ".comment"))); 
?> 
<FORM method="post"> 
<b>Name or Nickname:</b><BR><INPUT name="name" type="text" size="55"><BR>
<b>Your e-mail address:</b><BR><INPUT name="meel" type="text" size="55"><BR> 
<b>Your message:</b><BR><TEXTAREA name="message" rows=10 cols=55 wrap=virtual> 
</TEXTAREA><BR> 
<INPUT name="submit" type="submit" value="Post your comments"> 
</FORM>
?>

en dan staat er in de html
PHP:
1
2
3
4
5
<?
        <?
        require("phptalk.php3");
        
?>

Allemaal nogal simpel... Maar voor iemand die zich er net 2 weekjes mee bezighoud ben ik hier teevreden mee..

Nu wil ik echter dat ie de actie:
PHP:
1
2
3
<?
@readfile(basename(($PHP_SELF . ".comment")));
?>

inleest in een variabel en dan na het toevoegen van het nieuwe bericht in " .comment"
moet ie de inhoud uit die variabel weer terugzetten in de " .comment"

(ik wil hiermee voor elkaar krijgen dat het nieuwste bericht nu steeds bovenaan komt te staab)

Heeft hier iemand een goed suggeste of een stukkie source!? want ik krijg het niet voor elkaar om de HELE inhoud van de text in een variabel te krijgen...

BvD

  • Nikel
  • Registratie: Juli 2000
  • Niet online
http://www.php.net/manual/en/function.fread.php

daar staat:

$filename = "c:\\files\\somepic.gif";
$fd = fopen ($filename, "rb");
$contents = fread ($fd, filesize ($filename));
fclose ($fd);

Ik weet eigenlijk niet of dit is wat je zoekt, en ik heb je post ook niet echt gelezen.

  • Nikel
  • Registratie: Juli 2000
  • Niet online
Wat je trouwens ook kunt doen is de file inlezen naar een array met file() en dan array_push() of iets dergelijks doen om een extra regel vooraan in te voegen, daarna kuin je alle array-elementen in een loopje weer naar een file schrijven.

  • Nikel
  • Registratie: Juli 2000
  • Niet online
Dat array_push() klopt niet echt, of je moet de array eerst reversen.

Verwijderd

Topicstarter
pfft...

in Turbo Pascall ging dit 10 keer makkelijker gewoon inlezen tot EOF

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 27 september 2001 23:38 schreef 5chaap2k het volgende:
pfft...

in Turbo Pascall ging dit 10 keer makkelijker gewoon inlezen tot EOF
Dat is ook exact wat die variant van Nikel doet :P

Je kan ook:
PHP:
1
2
3
4
5
6
<?
$fp = fopen();
while(!feof($fp))
    $contents .= fread($fp, 4096);
fclose($fp);
?>

Doen :) (de c-like manier)

Verwijderd

Topicstarter
Beetje laat maartoch..

het scriptje staat werkend op http://www.JohanSchaap.nl onder Messages.

edit:


Trek je a.u.b. ff nix aan van de berichten die er al staan

Ook niet quoten dus!

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
<?
$fp = fopen();
 while(!feof($fp))    
 $contents .= fread($fp, 4096);
fclose($fp);
?>
ziet er een stuk duidelijker uit!

morgen ff testen...
Pagina: 1