Beste PHPhulp,

Ik ben een tijdje aan het rond zoeken op de website, maar ik krijg helaas het volgende niet gevonden:

Optie 1:
Bij het openen van een pagina, gedeeltelijk de tekst inlezen van een .txt/.php bestand, zoals include, maar dan niet het hele bestand.

Optie 2:
Bij het schrijven van nieuwe tekst in een bestand, het bestand automatisch geschreven wordt tot een bepaalde grote. Zonder dat er een error in het scherm komt.

Weet iemand of er deze mogelijkheid is, en hoe ik dit kan plaatsen in een script?

Alvast enorm bedankt!

Met vriendelijke groet,

Peter van Dam
Optie 1
gebruik explode();

Optie 2
Zet op je tekst $text, een maximale lengte met substr();.

Verder raad ik je aan om met een database te werken, als je die tot je beschikking hebt (ik neem aan dat het hier om gegevens gaat).

-- edit --
typo ;)
Het gaat hierbij om de chatroom waar ik enige tijd mee bezig ben, waarbij me al was aangeraden om met AJAX te werken.

Alleen kwam ik vandaag op het idee, dat er geloof ik een mogelijkheid was om bijvoorbeeld het tekstbestand (waar alle berichten komen), via een soort functie of formulier te laten gaan, dat hij automatisch afbreekt bij een ingestelde lengte.

Het gaat dus niet om een database. Alleen weet ik zo niet waar ik de door jou genoemde code kan plaatsen... Ik gebruik het volgende script voor het plaatsen van tekst in een bestand:

<?PHP
$datum = date("j M Y H:i");
$bericht = htmlentities($bericht);
$bericht = nl2br($bericht);
$bericht = stripslashes($bericht);
$file = "berichten.php";
$fopenr = fopen ($file, "r");
$msgs = fread ($fopenr, filesize ($file));
$fopenw = fopen($file, "w+");
fwrite($fopenw, "$bericht
$msgs");
fclose($fopenw);
echo "<SCRIPT LANGUAGE=\"javascript\" TYPE=\"text/javascript\">window.location='start.php'</SCRIPT>\n";
}
?>

Nu is de vraag of er in dit script dus die mogelijkheid verwerkt kan worden....

Is dat mogelijk? en hoe?
Als het goed is zou hij het zo moeten doen:

<?php
// Datum declareren
$datum = date('j M Y H:I');
// Aantal tekens declareren:
$tekens = 100;
// Hacks voorkomen:
$bericht = htmlentities(strip_tags(nl2br($bericht)));
// File declareren:
$file = 'berichten.php';
// File openen:
$fopen = fopen($file, 'r+');
// File lezen:
fread($fopen, filesize($file));
// Bericht wegschrijven
fwrite($fopen, substr$bericht, 0, $tekens));
// Doorsturen:
echo "<SCRIPT LANGUAGE=\"javascript\" TYPE=\"text/javascript\">window.location='start.php'</SCRIPT>\n";
?>
Bedankt voor de reactie, alleen loopt het helaas niet zoals ik het precies wilde...

De door jou gestuurde code schrijft de nieuwe tekst, dat maximaal een aantal letters heeft, en dat schijnt bij het bestand, maar dan achteraan.

De bedoeling is echter dat de tekst bovenin komt te staan, en het bestand met de nieuwe tekst een bepaalde limiet mag hebben. Dus dat er automatisch tekst verwijderd word van de oude tekst.

Ik hoop dat je het snapt...
Nogmaals enorm bedankt!
Ik weet niet of het een beter methode is...
Maar als mijn idee niet mogelijk te maken is, zou er zoiets als een soort van opteller dan werken.

Dat zeg maar bij het verzenden, iedere keer een getal in een php bestand verhoogd wordt. En als het boven het ingestelde limiet komt, alle tekst opnieuw vezend, maar dan ook met een limiet aantal tekens/grotte...

Enig idee?
Nogmaals bedankt!

Reageren