Woordafkorten met punten

Door Bas Kreleger, 20 jaar geleden, 4.861x bekeken

Door deze functie te gebruiken kan je strings afkorten naar * karakters.

Dit is handig bij bijvoorbeeld overzichten. Je kunt als extra nog een knop of link toevoegen met 'lees meer' zodat ze het niet afgekorte stukje kunnen lezen.

Voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
$tekst
= "Dit zinnetje wil ik afgekapt hebben na 15 karakters.";
$tekst = dec_str($tekst, 15);

/*
door de functie dec_str vervangt hij de
tekst '$tekst' met .. na 15 karakters.

$tekst zal nu zijn: "Dit zinnetje wi.."
*/

?>

Gesponsorde koppelingen

PHP script bestanden

  1. woordafkorten-met-punten

 

Er zijn 22 reacties op 'Woordafkorten met punten'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Ano Niem
Ano Niem
18 jaar geleden
 
0 +1 -0 -1
En dit voor de webmaster hier?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$afgekort
= "$line";
?>
Bas Kreleger
Bas Kreleger
18 jaar geleden
 
0 +1 -0 -1
tsjah, aangepast :) check de datum ;-) toen stond ik nog in baby schoentjes
Wiebe
Wiebe
18 jaar geleden
 
0 +1 -0 -1
Ik ben zelf nog niet zo handig met php en heb een vraagje over het script, hoe je het toe moet passen. Ik heb deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

$i
=0;
$bestanden = array();
$map = opendir($ArtikelenMapBooks);
while ($file = readdir($map)) {
if (($file != ".") && ($file != "..") && ($file != "index.php") && strstr($file,"php") && !strstr($file,"_rating")) {
include("$ArtikelenMapBooks$file");
$file = eregi_replace('.php$','',$file);
echo("<a href='$ArtikelenBestandBooks$T"."?artikel=$file'>$Titel</a><br>\n");
}
}

closedir($map);

?>


En dan wil ik $Titel afkorten. Hoe moet je dit dan neerzetten. ($Titel verschilt de hele tijd)
The Beeding Clown
The Beeding Clown
18 jaar geleden
 
0 +1 -0 -1
Handy Bas..
Werkt prima, ik ga um zeker gebruiken.

[miereneuk_mode]
Op deze manier is ie iets sneller. ;)
[/miereneuk_mode]

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function dec_str($str, $len)
{

  return strlen($str) > $len ? substr($str, 0, $len).'..' : $str;
}

?>
Wiebe
Wiebe
18 jaar geleden
 
0 +1 -0 -1
Maar 0 moet dus het aantal letters zijn dat je wilt afkorten en waar moet je de afgekorte tekst plaatsen op $line? Dus $line moet $titel worden?

Ik heb tussen de <head> tags dit staan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$tekst
= $Titel;
$tekst = dec_str($tekst, 15);
?>


En de andere code heb ik al een keer op de plek gezet van $Titel

Dit werkt niet, hoe moet ik dit neerzetten?
Sean
Sean
18 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
function dec_str ($line, $len = 30, $end = '..')
{

    if (strlen ($line) > $len)
        $return = substr ($line, 0, $len) . $end;

    return $return;
}

?>


dit is dan nog wel wat efficienter...

Edit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// van een eerdere reactie van iemand
function dec_str($str, $len)  
{
  
  return strlen($str) > $len ? substr($str, 0, $len).'..' : $str;
}

?>


is wel leuke manier, maar je maakt nog steeds gebruik van een else... terwijl dat in dit geval helemaal niet nodig is... efficientste is toch dat van mij dan
The Beeding Clown
The Beeding Clown
18 jaar geleden
 
0 +1 -0 -1
@sean
Als de length van de string die je jou functie voert < 30 is returned ie een lege variable :rolleyes:
klein schoonheids foutje ;)

Edit:

Net effe bijde functies getest in een forloop, 100.000x laten loopen
jouwe 0.60 a 0.61 sec parse time
mijne 0.47 a 0.48 sec parse time
Wiebe
Wiebe
18 jaar geleden
 
0 +1 -0 -1
Kan iemand antwoord geven op mijn vraag?
The Beeding Clown
The Beeding Clown
18 jaar geleden
 
0 +1 -0 -1
@wiebe
Je moet de functie de title voeren...

dec_str($Titel, 15);

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

$i
=0;
$bestanden = array();
$map = opendir($ArtikelenMapBooks);

while ($file = readdir($map))
{

  if (($file != ".") && ($file != "..") && ($file != "index.php") && strstr($file,"php") && !strstr($file,"_rating"))
  {

    include("$ArtikelenMapBooks$file");
    $file = eregi_replace('.php$','',$file);
    echo '<a href="'.$ArtikelenBestandBooks$T.'?artikel='.$file.'">'.dec_str($Titel, 15).'</a><br>';
  }
}

 
closedir($map);

?>
Sean
Sean
18 jaar geleden
 
0 +1 -0 -1
hmm nano.. die van jou is dus blijkbaar toch sneller :p (mijn fout)

owja die return fout had ik gemaakt omdat ik het hier aan het editen was dus had niet echt een overzicht :p
Wiebe
Wiebe
18 jaar geleden
 
0 +1 -0 -1
Dus als ik het bovenstaande verander en ik plaats de code ergens op de pagina moet het lukken?
The Beeding Clown
The Beeding Clown
18 jaar geleden
 
0 +1 -0 -1
@wiebe
Jup.. effe die functie erbij copy pasta-en en je code iets veranderen, dan zou ie het moeten doen.. succes
Wiebe
Wiebe
18 jaar geleden
 
0 +1 -0 -1
Ja maar mijn code veranderen is juist het moeilijke. Ik zou niet weten hoe je dat toe kan passen zonder dat het script niet meer werkt.
Francois
Francois
18 jaar geleden
 
0 +1 -0 -1
Is er ook een script mogelijk waarbij je een maximaal aantal karakters ingeeft, maar de zin alleen afgekort wordt bij hele woorden (dus bij spaties)?
Ik vind "Dit zinnetje wi.." namelijk geen mooi resultaat. Ik zou in dit geval "Dit zinnetje wil.." of "Dit zinnetje.." mooier vinden...

Iemand?
Wiebe
Wiebe
18 jaar geleden
 
0 +1 -0 -1
Je bedoelt dit: http://www.phphulp.nl/php/scripts/2/195/

Maar ik wil die code graag toegepast hebben in mijn script, weet iemand hoe dat moet?

Je moet denk ik zelf wat in elkaar flansen hiervoor. Meng ze met elkaar :)
Wiebe
Wiebe
18 jaar geleden
 
0 +1 -0 -1
Het is gelukt
Something Else
Something Else
18 jaar geleden
 
0 +1 -0 -1
wiebe vertel hoe etc? :)
Vivian Eersels
Vivian Eersels
12 jaar geleden
 
0 +1 -0 -1
hoi,

ik ben niet zo goed met zelf coden in php.
Ik zou dit willen laten afkorten, zodat er maar 30 tekens te zien zijn.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $row_rsTweedehands['Opties']; ?>


Hoe doe ik dat?
Michael -
Michael -
12 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo dec_str($row_rsTweedehands['Opties'], 30);
?>
Daan Van den ende
Daan Van den ende
10 jaar geleden
 
0 +1 -0 -1
Ik heb op dit moment ook zo'n script nodig alleen dit script wil niet werken is er mischien een andere manier om een tekst na 30 tekens af te kappen?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Daan Van den ende
Daan Van den ende
10 jaar geleden
 
0 +1 -0 -1
Bedankt het is gelukt xD Ik was waarschrijnlijk een beetje door de war xD heel erg bedankt

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. woordafkorten-met-punten

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.