Gå til innhold

Hjelp med Shoutbox!


Anbefalte innlegg

Hei.

Jeg holder på å mekke på en shoutbox..

 

-Og jeg vil helst ha det slik at de nyeste "shoutene" kommer øverst.

Derfor tenkte jeg å bruke array_reverse slik at det ble mulig.

 

-Så vil jeg bare ha de 10 siste "shoutene" på lista.

Det bruker man vell en array_slice og verdien 10 til.

 

Men i koden jeg holder på med er det så mye rart med arrys osv.

Derfor lurte jeg på hvor jeg skal sette inn disse verdiene.

 

Det hadde vært fantastisk hvis noen kunne hjulpet meg med dette!

 

Koden:

<?php

 

//Get any passed Vars, namely whether someones posted something and what.

$posted = $HTTP_GET_VARS['posted'];

$newname = $HTTP_POST_VARS['newname'];

$newcomments = $HTTP_POST_VARS['newcomments'];

 

//if they have posted something (that is, ?posted=true is added onto the end of the URL)

if($posted){

 

//go through killing all the HTML code, and anything that could screw it up.

$newname = htmlspecialchars($newname);

$newcomments = htmlspecialchars($newcomments);

$newname = preg_replace("/\[/", "[", $newname);

$newname = preg_replace("/\]/", "]", $newname);

$newcomments = preg_replace("/\[/", "[", $newcomments);

$newcomments = preg_replace("/\]/", "]", $newcomments);

$today = date("d/m/y, H:i");

 

 

//make the template to be written to the file

$template = "

 

[---]

<u> $newname </u> - $today<br>

$newcomments";

 

 

//open the messages.txt file, write the template and then close it

$messages_writable = fopen("messages.txt", "a+");

fwrite($messages_writable, $template);

fclose($messages_writable);

}

 

//the opening tag for the name, the code that gets put in before the name

$opening_name = "<b><font face='Arial' size='-5'>";

//the closing tag for the name, the code that gets put in after it.

$closing_name = "</font></b>";

 

//opening tag for the message, the code that goes before the message

$opening_msg = "<font face='Arial' size='-6'";

//closing tag for the message, the code that gets plonked in after it

$closing_msg = "</font>";

 

//open up the messages.txt file

$filetopen = join("", file("messages.txt"));

 

//split up all the messages, one by one into a big Array

$arry_msgs = preg_split("/

\[---\]

/", $filetopen);

 

//go through and do this for each message in the Array of split Messages

for ($i = 0; $i <= each($arry_msgs); $i++) {

//clear the temp Arry_lines variable

$arry_lines = "";

 

//Turn Arry_lines into an Array of each line in the message being processed

$arry_lines = preg_split("/\n/", $arry_msgs[$i]);

 

//Set the persons name to the first line of the split message

$name[$i] = $arry_lines[0];

 

//clear the first line so it doesnt get merged back together with the rest of the message

$arry_lines[0] = "";

 

//put in a <br> at the end of each line.. since HTML doesnt like normal enters or linebreaks.

for ($ii = 0; $ii <= each($arry_lines); $ii++) {

$arry_lines[$ii] = $arry_lines[$ii] . "<br>";

}

 

//join the lines back together, only without the name attached and with BR's through them'

$arry_msgs[$i] = join("", $arry_lines);

 

 

//echo the Name, with the opening and closing code around it.

echo $opening_name . $name[$i] . $closing_name;

//echo the Message, with the opening and closing code around it and an extra Line break to separate the messages

echo $opening_msg . $arry_msgs[$i] . $closing_msg . "<p>";

}

 

?>

 

 

mvh

Daniel Vier

Endret av electro
Lenke til kommentar
Videoannonse
Annonse

Tror du går løs på denne oppgave litt bakvendt. Hvis målet er at de nyeste postene skal komme øverst så er det bedre å snu lagringen, slik at de nyeste postene kommer øverst i filen.

 

Videre så er det ikke lurt å få php til å sortere ut alle postene hver gang noen besøker siden din. Da er det bedre at du heller lager en fil med de 10 siste postene, i tillegg til hovedfilen. Det er mest sannsynelig at det er mange flere besøkende enn det er folk som poster, så da er det mye lurere å kun hente en ferdig fil når noen skal se siden, og heller bruke litt mer tid på å lagre postene.

Lenke til kommentar

det er det jeg har tenkt å gjøre, snu lagringen..

men jeg lurer på hvordan jeg setter det inn..

det kan settes inn med array_reverse en eller annen plass vil jeg tro..

det er det jeg trenger hjelp til!

 

array_slice er en ganske grei måte å bare få de 10 siste meldingene på..

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...