login  Naam:   Wachtwoord: 
Registreer je!
 Forum

meer of verder lezen

Offline Dierre - 14/10/2006 00:08
Avatar van DierreMySQL interesse in php zou ergens een functie moeten bestaan waar je het begin van een artikel kan mee tonen. als je dan bv op meer of verder lezen klikt kom je dan op het desbetreffende artikel.

Ik ben nu dus opzoek naar die functie en ook hoe ze werkt? moet je dan je tekst in een database gaan plaatsen of niet,...

Wie kan me hier ff mee helpen???

TIA
Dierre

21 antwoorden

Gesponsorde links
Offline Wizk - 14/10/2006 00:11 (laatste wijziging 14/10/2006 00:15)
Avatar van Wizk Nieuw lid
  1. <?php
  2.  
  3. function text_chop($text, $length) {
  4. if(strlen($text) > $length) {
  5. $text = substr($text, 0, $length)."...";
  6. }
  7. return $text;
  8. }
  9.  
  10. ?>


Je roept hem aan d.m.v.:

  1. <?php
  2.  
  3. $inhoud = "hier dus je tekst die je in wilt korten";
  4. $lengte = "Hier het aantal tekens die getoont mogen worden, de rest wordt vervangen door drie puntjes.";
  5.  
  6. echo text_chop($inhoud,$lengte);
  7.  
  8. ?>
Offline Dierre - 14/10/2006 00:12
Avatar van Dierre MySQL interesse maar bestaat er ook geen voorgedefignieerde functie hiervan in php?
Offline Wizk - 14/10/2006 00:14
Avatar van Wizk Nieuw lid Volgens mij niet nee. Ik heb al vaker een soortgelijke functie als deze gezien, dus ik neem aan dat dat niet bestaat  
Offline Dierre - 14/10/2006 00:18 (laatste wijziging 14/10/2006 00:20)
Avatar van Dierre MySQL interesse ok bedankt Wizk voor de snelle reactie... zal je functie eens proberen se

oja, kan ik dan ook gemakkelijk met 4 of 5 verschillende artikels gaan werken?
Offline Wizk - 14/10/2006 09:33
Avatar van Wizk Nieuw lid Hoe bedoel je dit?

Is dit wat je bedoel : ? :

  1. <?php
  2.  
  3. echo text_chop($artikel1,300)." <a href="#">Lees meer..</a><br>";
  4. echo text_chop($artikel2,200)." <a href="#">Lees meer..</a><br>";
  5. echo text_chop($artikel3,200)." <a href="#">Lees meer..</a><br>";
  6. echo text_chop($artikel4,100)." <a href="#">Lees meer..</a><br>";
  7. echo text_chop($artikel5,100)." <a href="#">Lees meer..</a>";
  8.  
  9. ?>
Offline b4nkr0bz0r - 14/10/2006 11:59
Avatar van b4nkr0bz0r PHP gevorderde
  1. <?php
  2.  
  3. function text_chop($text, $length) {
  4. if(strlen($text) > $length) {
  5. $text = substr($text, 0, $length)."...";
  6. }
  7. return $text;
  8. }
  9.  
  10. ?>

Waarom zou je eerst gaan vergelijken of de string langer is dan toegestaan?
  1. function text_chop ($sText, $iLengte)
  2. {
  3. return substr($sText, 0, $iLegnte) . '...';
  4. }
  5. ?>
Offline timo - 14/10/2006 12:01
Avatar van timo PHP ver gevorderde anders zet je achter 4 tekens ..., staat beetje raar..
Offline Wizk - 14/10/2006 13:04
Avatar van Wizk Nieuw lid Inderdaad.. Er is over nagedacht   
Offline Dierre - 15/10/2006 00:22
Avatar van Dierre MySQL interesse ik krijg niets op het scherm 

en heb zo mijn function aangeroepen

  1. <?php
  2. $tekst = "Dit is een test tekstje.";
  3. $lengte = "6";
  4. echo tekst_chop($tekst, $lengte);
  5. ?>


iemand die kan zeggan waar mijn fout zit vind ze echt niet :s:s
Offline Stijn - 15/10/2006 00:51
Avatar van Stijn PHP expert heb je de functie geinclude in je pagina? 
Offline Martijn1989 - 15/10/2006 01:14 (laatste wijziging 15/10/2006 13:45)
Avatar van Martijn1989 PHP ver gevorderde Deze doet het wel :

  1. <?php
  2. // Afkorten
  3. function afkorten($var, $lengte) {
  4.  
  5. $ret = $var;
  6.  
  7. if (strlen($ret) > $lengte) {
  8. $ret = substr($ret, 0, $lengte-3)."...";
  9. }
  10.  
  11. return $ret;
  12. }
  13.  
  14.  
  15. echo afkorten($jetekst, 45);
  16.  
  17. ?>
Offline Wizk - 15/10/2006 11:49
Avatar van Wizk Nieuw lid Als je het goed doet, werkt dit ook gewoon hoor   :

  1. <?php
  2.  
  3. function text_chop($text, $length) {
  4. if(strlen($text) > $length) {
  5. $text = substr($text, 0, $length)."...";
  6. }
  7. return $text;
  8. }
  9.  
  10. $inhoud = "hier dus je tekst die je in wilt korten";
  11. $lengte = "6";
  12.  
  13. echo text_chop($inhoud,$lengte);
  14.  
  15. ?>
Offline Simon - 15/10/2006 11:55
Avatar van Simon PHP expert $lengte = 6; ipv $lengte = "6"; denk ik 
Offline Wizk - 15/10/2006 12:06 (laatste wijziging 15/10/2006 12:06)
Avatar van Wizk Nieuw lid Nee dat is het probleem niet 

Dat was een foutje van mij.. Ik denk dat de functie er niet boven staat ofzo..
Offline Dierre - 15/10/2006 13:27 (laatste wijziging 15/10/2006 13:46)
Avatar van Dierre MySQL interesse Hoe bedoel je een foutje van jou???
En de functie er niet bovenstaat? wat bedoel je daar dan mee??

ik heb het ook geprobeerd met
  1. $lengte = 6;
maar dat werkt ook niet ik krijg gewoon mijn afgekorte text niet ge-echo-ed
Offline Martijn1989 - 15/10/2006 13:46
Avatar van Martijn1989 PHP ver gevorderde
Citaat:
Deze doet het wel :

[..code..]


Ik zal mij voor de laatste keer een quote geven ;)
Offline Dierre - 15/10/2006 13:47 (laatste wijziging 15/10/2006 14:12)
Avatar van Dierre MySQL interesse @martijn: hoe kom je aan de variabele $jetekst en wat is die 45?

en is het ook mogelijk om meer variabelen te hebben op 1 pagina? en hoe zou ik dat dan best oplossen?
Offline Gerard - 15/10/2006 21:05
Avatar van Gerard Ouwe rakker @Dierre

Met alle respect, maar als je ook maar enigzins goed had gekeken naar het script dan had je zo alle vragen kunnen beantwoorden die je hierboven stelt.

hoe kom je aan de variabele $jetekst
Die variable dien je dus zelf aan te maken. Hierin moet de tekst komen te staan die ingekort moet worden tot een bepaalde lengte.

en wat is die 45
Als je bij de functie gaat kijken naar de naam van de variabele van het 2de argument, zie je dat deze $lengte heet. Dit is dus de lengte van de tekst die jij terug wilt krijgen met optioneel '...' erachter als de tekst langer is dan 45 tekens.

en is het ook mogelijk om meer variabelen te hebben op 1 pagina?
Ja natuurlijk is dit mogelijk

en hoe zou ik dat dan best oplossen?
  1. <?php
  2. $sTitel = 'Dit is een te lange titel voor mijn bericht';
  3. $sBericht = 'Dit is een kort bericht wat ik alsnog te lang vind';
  4.  
  5. echo 'Titel : ' . afkorten($sTitel, 10) . '<br />';
  6. echo 'Bericht : ' . afkorten($sBericht, 15) . '<br />';


En het enige wat ik nu niet van je wil horen is dat je nieuw bent met php en je het dus nog niet zo goed snapt. Ik heb liever dat je nu zelf het eerst eens probeert te implementeren en daarna terug komt als je fouten krijgt. Er staat hierboven meer dan genoeg uitleg om het te maken.
Offline Dierre - 15/10/2006 22:58
Avatar van Dierre MySQL interesse @proximus:

Sorry ik weet onderhad al wel hoe alles in elkaar zit en mss heb ik mijn vraag hier wat te snel gesteld. Was er met mijn hoofd niet echt bij deze morgen (mss domme uitleg ma swat)

ik heb idd ook zelf eerst het script proberen te implementeren en begrijpen, want als ik iets niet begrijp dan vindt ik het niet echt praktisch om te gebruiken of doen...

nogmaals mijn excuses voor mijn te snelle vraag

mvg,
Dierre
Offline Gerard - 16/10/2006 00:11
Avatar van Gerard Ouwe rakker @Dierre

Kan je nog even laten weten hoe het nu afloopt met het implementeren van het zaakje in je website. Verder hoef je je bericht niet af te sluiten met "mvg,". Dat is sowieso niet gebruikelijk op forums en hier doen we elkaar automatisch wel de groeten ;)
Offline Martijn1989 - 16/10/2006 01:53
Avatar van Martijn1989 PHP ver gevorderde Wat ben je weer zachaardig 

Kijk ik zal het je ff allemaal uitleggen :

  1. <?php
  2. // Afkorten
  3. function afkorten($var, $lengte) {
  4.  
  5. $ret = $var;
  6.  
  7. if (strlen($ret) > $lengte) {
  8. $ret = substr($ret, 0, $lengte-3)."...";
  9. }
  10.  
  11. return $ret;
  12. }
  13.  
  14.  
  15. echo afkorten($jetekst, 45);
  16.  
  17. ?>


met afkorten($tekstuitdedatabase, 45);

bedoelen we dat we de functie afkorten gaan gebruiken en die geven we 2 variable mee : de tekst en de lengte voor de ... of Lees meer...



  1. <?php
  2. function afkorten($var, $lengte) {
  3. ?>


er worden dus hier 2 variable aangemaakt, $var en $lengte, en die worden ingevuld met wat je in afkorten hebt ingevuld namelijk :

afkorten($tekst, 82); of afkorten("Hoi ik ben Adje!", 12);

  1. <?php
  2. if (strlen($ret) > $lengte) {
  3. $ret = substr($ret, 0, $lengte-3)."...";
  4. }
  5. ?>


strlen($ret) // tellen hoeveel tekens die heeft
groter is dan
45 of 82 // $lengte dus

zet er dan ... achter, je kan er ook van maken : Lees meer!

verander dan dit :

  1. <?php
  2. $ret = substr($ret, 0, $lengte-3)."Lees meer!'";
  3. ?>


Dan word alles verwerkt en terug gestuurd naar waar je was ...

DE VRAAG DIE IK ZIE AANKOMEN
Hoe verstuur ik hem dan naar een bepaalde pagina met een id?

  1. <?php
  2. echo '<a href="index.php?pagina=lees&id=27">'. afkorten($tekst, 25) .'</a>';
  3. ?>



Hopende hiermee wat hebben uitgelegd over functies ...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.339s