lees meer script..

Status
Niet open voor verdere reacties.

apestaartje83

Gebruiker
Lid geworden
7 sep 2006
Berichten
44
Heej,

kan iemand mij misschien helpen..
k heb een stuk tekst die ik uit een database heb staan, de tekst laat ik zien op een website. maar hij laat alle tekst zien, en ik wil als het kan een stukje van de tekst laten zien en dan "lees meer.." om de hele tekst te weergeven.

weet iemand hoe dit moet?
alvast bedankt!

groetjes erwin
 
Je zou toch een functie kunnen schrijven die een gedeelte van de string laat zien en daar onder: 'lees meer'. Als er op lees meer wordt gedrukt laat je de hele string zien.
 
Je zou toch een functie kunnen schrijven die een gedeelte van de string laat zien en daar onder: 'lees meer'. Als er op lees meer wordt gedrukt laat je de hele string zien.

dat je insteld hoeveel woorden je eest laat zien..
maar hoe moet zoiets :o

groetjes erwin
 
dat je insteld hoeveel woorden je eest laat zien..
maar hoe moet zoiets :o

groetjes erwin

Je zou gebruik kunnen maken van de functie substr().

Deze functie kan een string inkorten op een aantal karakters. Onderaan de pagina staat een functie die dit voor hele woorden kan doen.
 
Laatst bewerkt:
Of te controleren of het groter is dan zoveel tekens kun je gebruik maken van de functie strlen.

Je kunt het ook creatief doen door een bepaald aantal woorden te laten zien.
Deze functie kun je dan vast wel gebruiken.

PHP:
function verklein($string, $aantalwoorden) {
  $string_array = array();
  $result = "";
  $string_array = explode(" ", $string);
  for($i = 0; $i < $aantalwoorden; $i++) {
    if($i == 0) {
      $result .= $string_array[$i];
    } else {
      $result .= ' '. $string_array[$i];
    }
  }
  $result .= '...';
  return $result;
}

// Aanroep
$bericht = "Dit is een voorbeeld zin, dit wordt niet meer weergegeven.";
echo verklein($bericht, 5);
 

Dan zou ik het zo doen:
PHP:
function verklein($string, $aantalwoorden) {
  $result = "";
  $string_array = explode(" ", $string);
  for($i = 0; $i < $aantalwoorden; $i++) {
      $result .= $string_array[$i] . " ";
  }
  return substr($result, 0, -1) . "...";
}

// Aanroep
$bericht = "Dit is een voorbeeld zin, dit wordt niet meer weergegeven.";
echo verklein($bericht, 5);
Ik vind die controle namelijk een beetje overbodig aangezien je nu eigenlijk 2x hetzelfde doet, alleen de ene keer vooraf met een spatie (en de andere keer zonder spatie).
Door de substr() aan het eind aan te roepen haal je altijd de laatste spatie er vanaf. Hierdoor kan je dus die controle overslaan :)
 
Daar had ik niet aan gedacht, het scheelt inderdaad nu wat onnodig "rekenwerk".
 
Dan zou ik het zo doen:
PHP:
function verklein($string, $aantalwoorden) {
  $result = "";
  $string_array = explode(" ", $string);
  for($i = 0; $i < $aantalwoorden; $i++) {
      $result .= $string_array[$i] . " ";
  }
  return substr($result, 0, -1) . "...";
}

// Aanroep
$bericht = "Dit is een voorbeeld zin, dit wordt niet meer weergegeven.";
echo verklein($bericht, 5);
Ik vind die controle namelijk een beetje overbodig aangezien je nu eigenlijk 2x hetzelfde doet, alleen de ene keer vooraf met een spatie (en de andere keer zonder spatie).
Door de substr() aan het eind aan te roepen haal je altijd de laatste spatie er vanaf. Hierdoor kan je dus die controle overslaan :)

Heej,

thnx! maar als je een stuk tekst hebt van bijv. minder dan 30 woorden, en je zet
PHP:
echo verklein($bericht,30);
dan krijg k nog steeds ... te zien.
maar dat is dan eigenlijk niet de bedoeling, hoe kan k dit oplossen

alvast bedankt!!
groetjes erwin
 
PHP:
function verklein($string, $aantalwoorden) { 
  $result = ""; 
  $string_array = explode(" ", $string); 
  for($i = 0; $i < $aantalwoorden; $i++) { 
      $result .= $string_array[$i] . " "; 
  }
  $result = (count($string_array) < $aantalwoorden) ?  substr($result, 0, -1) : substr($result, 0, -1) . "..."; 
  return $result;
}
 
PHP:
function verklein($string, $aantalwoorden) { 
  $result = ""; 
  $string_array = explode(" ", $string); 
  for($i = 0; $i < $aantalwoorden; $i++) { 
      $result .= $string_array[$i] . " "; 
  }
  $result = (count($string_array) < $aantalwoorden) ?  substr($result, 0, -1) : substr($result, 0, -1) . "..."; 
  return $result;
}

Heej,

Dankje!!
het is gelukt :D
groetjes erwin
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan