login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Meer dan 50woorden, laat dan Meer Info zien!

Offline Chupskie - 07/07/2006 10:30
Avatar van ChupskieMySQL beginner Is er iets, dat als je bijvoorbeeld meer dan50 woorden in je omschrijving hebt, dat hij dan afkapt bij 50 woorden er daaronderaan neerzet "Meer info" En als daar dan op geklikt wordt, dat dan de rest van de tekst ook nog uitegeklapt wordt.

Zoiets als dit

  1. <?php
  2. if ($info['omschrijving'] < 50){
  3. echo $info['omschrijving'];
  4. }elseif ($info['omschrijving'] > 50){
  5. echo $info['omschrijving']; //maximaal 50 woorden
  6. echo "<a href=''>Meer Info..</a>";
  7. }elseif ($_GET['meerinfo']){
  8. echo $info['omschrijving']; // de rest van de omschrijving
  9. }
  10. ?>


Kan dit zoiets of is dit onmogelijk? En hoe kan het dan het beste?

8 antwoorden

Gesponsorde links
Offline Tuinstoel - 07/07/2006 10:34 (laatste wijziging 07/07/2006 10:38)
Avatar van Tuinstoel PHP expert Lees deze pagina maar eens door.
Edit:
Oeps, nogal vroeg he:
Deze: http://nl3.php....-count.php

Edit 2:
En dan kun je het vervolgens inkorten met http://www.php.net/substr
Offline illon - 07/07/2006 10:38
Avatar van illon Lid Ik gebruik altijd de volgende manier om te kijken of een bericht groter is dan opgegeven. En zo ja, dat deze dan afgekort wordt met een link.

  1. <?PHP
  2. if(strlen($info['omschrijving'])>50){
  3. $info['omschrijving']=substr($info['omschrijving'],0,50) . "<a href=''>Meer info..</a>";
  4. }
  5. ?>
Offline Chupskie - 07/07/2006 10:49 (laatste wijziging 07/07/2006 11:00)
Avatar van Chupskie MySQL beginner @Tuinstoel
Met dit krijg ik een aardig array al ja, en telt hij de woorden goed.
$str = $info['omschrijving'];
print_r(str_word_count($str, 1));
echo str_word_count($str);
Dit is dus al een begin!

@illon
Bedankt, ik ga het meteen testen. En kijken of het werkt?

edit:
@illion:
Hij doet het nu wel.. (kwas vergeten te echoén)
Maar wat die van jou doet is, de letters tellen!
Kan dit zo ook met woorden?

En is er ook zoiets mogelijk dat:
  1. <?php
  2. if ($_GET['meerinfo']){
  3. echo $info['omschrijving']; // de rest van de omschrijving vanaf de ingestelde woorden
  4. }
  5. ?>


Dus stel je dit is je tekst:

"Vandaag wordt het warm weer en 'Meer info' "

En als daar opgeklikt wordt dat je dan dit krijgt

"Vandaag wordt het warm weer en 'Meer info' "
"een weinig tot geen kans op regen!"

Dat hij dus de eerste 100 woorden (of net wat is ingesteld)
weglaat, omdat hij die al voor 'meer info' heeft staan!

Snappen jullie wat ik bedoel? en is dit toevallig ook mogelijk? en hoe dan?
Offline Xtent - 07/07/2006 11:00 (laatste wijziging 07/07/2006 11:00)
Avatar van Xtent Onbekend Chupskie,
De manier die illon zei weergeeft niets omdat er geen echo of iets dergelijks inzit.
Naast dat is dat ook neit wat jij zocht zover ik aan je begin post kan zien aangezien jij het na 50 woorden wil en hij bekeek het op 50 tekens.
Offline Martijn1989 - 07/07/2006 11:00 (laatste wijziging 07/07/2006 11:00)
Avatar van Martijn1989 PHP ver gevorderde Ok, nu iets waar je hopelijk aan hebt :

Je maakt eerst een functie aan :

  1. <?
  2. function afkorten($var, $lengte) {
  3. $ret = $var;
  4. if (strlen($ret) > $lengte) {
  5. $ret = substr($ret, 0, $lengte-3)."...";
  6. }
  7. return $ret;
  8. } ?>


Daarna ga je hem echo :

  1. <?php
  2.  
  3. echo afkorten($info['omschrijving'],50);
  4.  
  5. if (strlen($info['omschrijving']) > 50) {
  6.  
  7. echo "Lees meer ...";
  8.  
  9. }
  10.  
  11. ?>
Offline Chupskie - 07/07/2006 11:11 (laatste wijziging 07/07/2006 11:34)
Avatar van Chupskie MySQL beginner Jaah.. het is gelukt!

Voor de mensen die willen weten hoe:
  1. <?php
  2.  
  3. $woord = explode(' ', $tekst);
  4. if(!$_GET['meerinfo']){
  5. for($i=0; $i<50; $i++){
  6. echo ''.$woord[$i].' ';
  7. }
  8. if(count($woord)>50){
  9. echo '<br><br><a href="?meerinfo=1">Meer info</a>';
  10. }
  11. }else{
  12. echo $tekst;
  13. }
  14.  
  15. ?>


Hartelijk bedankt iedereen voor jullie moeite ^^
Offline Gezienus - 27/04/2010 20:38
Avatar van Gezienus Lid Is het ook mogelijk om na 50 woorden te kijken wanneer de zin is afgelopen(punt) en daarna af te breken?
Offline Jelmerholland - 27/04/2010 21:20 (laatste wijziging 27/04/2010 21:22)
Avatar van Jelmerholland PHP beginner Ik weet 't niet exact, kan 't zo gauw niet terug vinden. Maar ergens op phpfreakz staat een script, die zorgt dat ie niet gewoon halverwege een woord wordt afgesneden, maar na <50 letter op het hele woord. 

(Want dat heb jij niet toch?)

==Edit==
Gevonden!
http://wiki.phpfreakz.nl/Strings_afkorten
Bedankt door: Mikee
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.256s