[PHP] string afkappen op bepaalde lengte

Pagina: 1
Acties:
  • 168 views sinds 30-01-2008
  • Reageer

  • Flaman
  • Registratie: November 2000
  • Laatst online: 03-12-2022
In de trackers op de FP van FOK! zie je puntjes verschijnen als een titel te lang is. Bijvoorbeeld
19:57 Nieuwe erectiepil nog beter voor geheugen[b]...[/b]
Hoe krijg ik dit voor elkaar bij mijn site?

( http://electrosnizzle.com/index.php )

edit: oops titel beetje verneukt van dit topic sorry

[ Voor 0% gewijzigd door Flaman op 22-08-2002 23:16 . Reden: ben een eikel ]


Verwijderd

Gewoon kijken hoelang de titel is, en na een bepaalde positie de string afkappen met de puntjes.
Kijk hier: str_replace en hier: string

Je kunt aan een (lite-)mod vragen of hij je titel een beetje aan wilt passen, plaats dan ff een berichtje in Schop een Modje.

[ Voor 0% gewijzigd door Verwijderd op 22-08-2002 23:19 . Reden: " vergeten ]


Verwijderd

PHP:
1
2
3
$totaalAantalChars = 30; 
$newTitle = substr($title,0,$totaalAantalChars)."...";
echo $newTitle;

Verwijderd

Verwijderd schreef op 22 augustus 2002 @ 23:23:
PHP:
1
2
3
$totaalAantalChars = 30; 
$newTitle = substr($title,0,$totaalAantalChars)."...";
echo $newTitle;
Hmmms werkt vast wel maar is niet de mooiste oplossing.... dan krijg je titels als:
"Man loopt tegen vrachtwa...."

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:50

mulder

ik spuug op het trottoir

Dan zoek je vanaf het 100ste karakter naar eerste spatie(of punt) links of rechts van die posititie.

oogjes open, snaveltjes dicht


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Verwijderd schreef op 22 augustus 2002 @ 23:29:
[...]

Hmmms werkt vast wel maar is niet de mooiste oplossing.... dan krijg je titels als:
"Man loopt tegen vrachtwa...."
Dan moet je dus een 'minimaal' maximum aantal karakters hebben en een 'maximum' maximum aantal karakters. jaja.. ;) En vanaf dat 'minimum-aantal-maximum-karakters' begin je te kijken of je een spatie tegenkomt. Zo ja, dan kap je de string daar af. Ben je na je 'maximum-aantal-maximum-karakters' nog geen spatie tegen gekomen, dan zul je de string helaas toch maar 'lelijk' moeten afbreken daar..

On track


Verwijderd

WouZz schreef op 22 augustus 2002 @ 23:44:
[...]


Dan moet je dus een 'minimaal' maximum aantal karakters hebben en een 'maximum' maximum aantal karakters. jaja.. ;) En vanaf dat 'minimum-aantal-maximum-karakters' begin je te kijken of je een spatie tegenkomt. Zo ja, dan kap je de string daar af. Ben je na je 'maximum-aantal-maximum-karakters' nog geen spatie tegen gekomen, dan zul je de string helaas toch maar 'lelijk' moeten afbreken daar..
Das nog eens duidelijke taal :? :? ;)

  • Nikel
  • Registratie: Juli 2000
  • Niet online
Ik zou eens met de gd library aan de slag gaan. Je kunt dan namelijk kijken hoe lang in pixels een bepaald stuk tekst zou worden. Het aantal karakters tellen werkt natuurlijk alleen goed als je een font met fixed width hebt.

zie http://www.php.net/manual/en/function.imagettfbbox.php

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Verwijderd schreef op 22 augustus 2002 @ 23:45:
[...]
Das nog eens duidelijke taal :? :? ;)
Errm.. Ik begrijp je niet.. :? ;)
Nikel schreef op 22 augustus 2002 @ 23:48:
Ik zou eens met de gd library aan de slag gaan. Je kunt dan namelijk kijken hoe lang in pixels een bepaald stuk tekst zou worden. Het aantal karakters tellen werkt natuurlijk alleen goed als je een font met fixed width hebt.
Hmm.. dus jij wil voor iedere update kijken hoe lang de titel is.. Is ie te lang, dan blijf je net zolang een karakter van die string afhalen en kijken hoe lang die string dan is, totdat je het gewenst aantal pixels/karakters hebt? Enneh, dat wou je voor iedere pageview 10-30 keer doen? Of wou je dat dan weer gaan cachen? Of een extra veld in je db ofzoow?

On track


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-09 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

titel aangepast :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Een goede regex zou natuurlijk ook kunnen:
PHP:
1
preg_match('!^(.*?{0,40}[^\s]*!', $text, $matches);
Om maar iets te noemen.

edit: Zoals misschien al eerder opgevallen, maar react van alle ' een '

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Via de search is een oplossing te vinden.

Vraag is namelijk vaker gesteld.

[ Voor 0% gewijzigd door dusty op 23-08-2002 02:04 . Reden: tikfout ]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • kaandorp
  • Registratie: November 1999
  • Laatst online: 27-08 19:31
Zo heb ik het gedaan. Werkt prima.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function CutString($inText, $inSize) {
    // $inText: De string die je wilt afkappen
    // $inSize: Het maximaal aantal karakters
    
    $array = explode(" ", $inText);
    $new = "";
    $count = 0;
    while (strlen($new) < $inSize) {
        $new = $new." ".$array[$count];
        $count++;
    }
    $new = $new."...";
    return $new;
}

  • Flaman
  • Registratie: November 2000
  • Laatst online: 03-12-2022
Eh ik los dit dus op voor een vriend van mij, waar ik die site samen mee maak, en die zegt het volgende:
ja maar daar hebben ze het allemaal over strings, maar in da scrippie ZITTEN geen strings, het is een include

  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 04-08 13:06

GraasGast

Analogue Heaven

ehm, leg uit?
je wil een stuk tekst afkappen, stuk tekst == string, dus wat is je probleem? :?

  • gday
  • Registratie: Oktober 2000
  • Laatst online: 26-08 02:07

gday

TENACIOUS D TIME!!!

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
    function wrapText($text, $wrap=18)
    {
        $text = trim($text);
        if(strLen($text)<=$wrap)
            return $text;
        else
        {
            $text = subStr($text, 0, $wrap);
            $length = strrPos($text, " ");
            $text = subStr($text, 0, $length)." ...";
            return $text;
        }
    }

ingen vill veta var du köpt din tröja

Pagina: 1