Toon posts:

php eerste 20 tekens selecteren

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

Verwijderd

Topicstarter
hallo dit zal wel een behorlijke newbie vraag zijn, maar ik ben bezig met een nieuwssysteem en dat is allemaal gelukt, ook is het me gelukt om de laatse 5 onderwerpen uit de db te halen zodat ik die in een update tracker kan zetten, maar nu is mijn vraag hoe kan ik die zo maken dat ie na 20 tekens het onderwerp afkapt anders verneukt ie me layout

dus bv "dit is een onderwerp van 40 tekens lang"

en dat ie hem bij 20 tekens afkapt
hoop dat jullie me kunnen helpen

ps is pas de tweede dag dat ik me met php bezighoudt

Verwijderd

PHP:
1
2
3
4
5
<?
$blablabla = "Dit is de titel van je nieuwsposting die wel wat langer is dan 20 tekens";

echo (substr($blablabla, 0,20));
?>

En zie daar

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

Op zaterdag 08 september 2001 19:42 schreef Blue het volgende:

ps is pas de tweede dag dat ik me met php bezighoudt
dan wil de faq van [topic=152278/1/25]

nog wel eens helpen
of www.php.net

Doet iets met Cloud (MS/IBM)


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Verder kan je het nog zo bouwen dat je op woorden afkapt ipv op letters, zodat je niet "dit is een lange z..." ziet staan. Maar dat moet je dan wel zelf bouwen.

Verwijderd

hmm dat afkappen van een zin lijkt me een beetj eonbeonnen werk als je je pas twee dagen met php bezighoudt.
Daar moet ik zelfs nog ff over nadenken

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:11
Op zaterdag 08 september 2001 19:54 schreef zonietdantochwel het volgende:
Daar moet ik zelfs nog ff over nadenken
Toemaar... :)

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
<?
$blablabla = "Dit is de titel van je nieuwsposting die wel wat langer is dan 20 tekens";

$maakarray = (a,b,c,d,e,f,g,h,f,g,h,i,j,k,l,m,o,p,q,r,s,t,v,u,w,x,y,z);
$cijfer = 20;
while(substr($blablabla, $cijfer) =! $maakarray[0,25]) {
echo substr($blablabla, $cijfer-1);
}
?>

Ok bij die array moeten overal aanhalingstekens en ik wete niet hoe ik alle waarden uit de array moet halen, dus ik heb het maar 0,25 gedaan.

Voor de rest wete niet ik niet of het werkt ff proberen

Verwijderd

Op zaterdag 08 september 2001 19:55 schreef dennisdotcom het volgende:

[..]

Toemaar... :)
jaja

Verwijderd

Waarom niet gewoon de functie wordwrap gebruiken?

vb:
$result = wordwrap($text,$length);

Verwijderd

Wordwrap veranderd toch alleen maar de lengte van een zin?
Dus na een x aantal tekens rost ie er een <br> tussen, meer niet, toch ???

Hij wil dus niet meer dan 1 regel per headline neem ik aan...

Verwijderd

Op zaterdag 08 september 2001 20:53 schreef ReaLX het volgende:
Wordwrap veranderd toch alleen maar de lengte van een zin?
Dus na een x aantal tekens rost ie er een <br> tussen, meer niet, toch ???

Hij wil dus niet meer dan 1 regel per headline neem ik aan...
Oja, sorry overheen gelezen. Dan zou ik het zo doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
function FormatHeadline($headline) {
   $headline = "lange (of korte) regel tekst";

   if(strlen($string) > 20) {
      $headline = substr($headline,0,17) . "...";
   }

   return $headline;
}
?>

als dit is wat je bedoelt kun je de funtie meteen gebruiken.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
of
code:
1
2
3
4
5
6
7
8
$zooi=explode($string," ");
$ok="nok";
while($ok!="ok")
{
if($totaal+zooi[i]>=20 $ok="ok"
else 
totaal.=zooi[i];
}

ofzo... Dus

exploden, en dan telkens een woord erbij gooien totdat de lengte > 20 is.

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Dit heb ik al een hele poos geleden geschreven, zocht je zoiets?!
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?
// Twee test strings. Haal bij 1 van de 2 de "//" weg.
$string = "Een veels te lange string";
// $string = "Een_te_lang_woord";

// De functie voor het afkappen van de string
function string_afkappen($string){
    
// Instelling hoeveel tekens je wilt accepteren
$aantal_tekens = 10;

// De functie
global $string;
if(strlen($string) > $aantal_tekens){ 
  $row = explode(" ", $string);
    if(strlen($row[0]) < $aantal_tekens){
      for($i = 0; $i < count($row); $i++) {
          if(strlen($de_string_op_lengte." ".$row[$i]) < $aantal_tekens){
              if($i == 0){
                $de_string_op_lengte = $row[$i];
            }else{
              $de_string_op_lengte = $de_string_op_lengte." ".$row[$i];
            }
          }
      }    
    }else{
      $de_string_op_lengte = substr($string, 0, $aantal_tekens); 
    } 
  $string = "$de_string_op_lengte"."...";
}
return $string;
}
// einde van de functie

// begin 'echte' pagina

string_afkappen($string); // nu staat in de variable $string de afgekapte versie
echo $string; // Je kan dan bijvoorbeeld $string echo'en
?>

|_____vakje______|


  • MnM
  • Registratie: Januari 2000
  • Laatst online: 16-06 20:10

MnM

ik heb het nu wel voor elkaar met strlen, hij zet nu gewoon na 15 tekens drie puntjes erachter dus inprincipe ben ik zo wel tevreden. Het zou idd mooier zijn om het na hele woorden af te kappen, maar daar moet ik nog effe wat meer voor oefenen, iedereen i.i.g. bedankt voor zijn reacties
Pagina: 1