Wie kan mij helpen, ben nog beginneling met PHP. Ik wil graag dat een bericht ingekort wordt tot een bepaald aantal tekens, en dan een lees meer >> naar het hele bericht.
Tot nu toe heb ik deze zin:
hij laat het bericht zien en verwijsd ook naar het juiste bronbericht, maar ik wil niet het hele bericht, maar alleen de eerste regels... wie kan me helpen...
Die doet het iniedergeval, nu nog toepassen in mijn scriptje
Je zou er een functie van kunnen maken:
<?php
function korte_tekst ($txt, $max_tekens) {
$kort = substr ($txt, 0, $max_tekens);
$laatste_spatie = strrpos ($kort, ' ');
return (substr ($kort, 0, $laatste_spatie));
}
?>
In jouw script zou je dan kunnen doen:
<?php
$kort_bericht = korte_tekst ($bericht, 800);
?>
en het resultaat op je pagina echoën met een "lees meer" link er achter.
Dat is ook interresant, dat ga ik ook nog proberen! Ben allang blij dat hij het doet, er zit alleen nog een probleempje, hij laat alle berichten in een array zien en dan helemaal onderaan >>lees meer, terwijl dit onder elk berichtje zou moeten komen te staan...
Wel geweldig dat jullie me zo helpen, ik begin net met PHP vind het heel leuk, maar frustrerend als je een dag op jezelfde code aan het staren bent...
@Jan: Waarom stop je het eerst in een $var? Dat is toch niet nodig.
<?php
$sql = "
SELECT id, titel, tekst
FROM berichten
ORDER BY datum DESC
";
if (!$res = mysql_query ($sql)) {
trigger_error (mysql_errno () . ': ' . mysql_error ());
}
else {
while ($row = mysql_fetch_assoc ($res)) {
echo '<p>' . $row['titel'] . '</p>';
echo '<p>' . korte_tekst($row['tekst'], 800) . '</p>';
echo '<p><a href="#">Lees meer...</a></p>';
}
}
?>