woord en zin afbreken met extra funtie
Ik heb onderstaande functie code gevonden om in php een zin en woord af te breken of bewerken die prima werkt maar omdat ik veel tekst in kleinere vakken kwijt wil wil ik hier een functie aan toevoegen zodat rekening houd met de lengte van de zin hij (rekening houdend met de lengte van het laatste gebruikte woord) Hij zou dan na een bepaald aantal tekens automatisch een return (br />) moeten geven, heb al wat gepuzzeld maar het werkt niet echt. kan toch nooit zo moeilijk zijn ....wie helpt mij ???
Code (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
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
function afbreken($string,$lengte_woord,$lengte_string)
{
$wijzigingen = true;
while($wijzigingen)
{
$wijzigingen = false;
$woorden = explode(' ',$string);
for ($i=0; $i < count($woorden); $i++)
{
if (strlen($woorden[$i])>$lengte_woord)
{
$woorden[$i] = substr($woorden[$i],0,$lengte_woord).' '.substr($woorden[$i], $lengte_woord, strlen($woorden[$i]) - $lengte_woord);
$wijzigingen = true;
}
$string = implode(' ',$woorden);
}
}
if(strlen($string) > $lengte_string)
{
$z_spatie = substr($string, 0, $lengte_string);
$l_spatie = strrpos($z_spatie, ' ');
return substr($z_spatie, 0, $l_spatie)." ...";
}
else {
return $string;
}
}
{
$wijzigingen = true;
while($wijzigingen)
{
$wijzigingen = false;
$woorden = explode(' ',$string);
for ($i=0; $i < count($woorden); $i++)
{
if (strlen($woorden[$i])>$lengte_woord)
{
$woorden[$i] = substr($woorden[$i],0,$lengte_woord).' '.substr($woorden[$i], $lengte_woord, strlen($woorden[$i]) - $lengte_woord);
$wijzigingen = true;
}
$string = implode(' ',$woorden);
}
}
if(strlen($string) > $lengte_string)
{
$z_spatie = substr($string, 0, $lengte_string);
$l_spatie = strrpos($z_spatie, ' ');
return substr($z_spatie, 0, $l_spatie)." ...";
}
else {
return $string;
}
}
Gewijzigd op 24/12/2010 00:24:55 door Michel D
Helpt de functie wordwrap() je?
Waarom met php kan gewoon met css.
Joey Drieling op 24/12/2010 07:02:32:
Kun je dit uitleggen? En geef eens een voorbeeld!Waarom met php kan gewoon met css.
Wat je met css wel kan doen, is zoeken naar lettertypes met constante breedte.
Google "css fixed width font"
Dan komt dat mooi in een rechthoekige blok.
Van waar komt die funtie?
Werkt die?
Staat daar documentatie bij?
Google "css fixed width font"
Dan komt dat mooi in een rechthoekige blok.
Van waar komt die funtie?
Werkt die?
Staat daar documentatie bij?
The Ultimate:
Kun je dit uitleggen? En geef eens een voorbeeld!
Er is een nieuwe CSS3 functie word-wrap. Dit werk helaas nog niet in elk browser.
Ik snap nou niet wat je wilt. Wil je nou dat woorden word afgemaakt met ... (dus 1 regel en als regel langer is komt er ... achter) (dit is dus met php mogelijke) Of wil je dat hij dan naar de volgende regel gaat (dit is dus met CSS mogelijk).
Dit is dus het probleem:
De tekst van het linkervak loopt als het woord iets te lang is toch net nog over in het rechter (tekst komt uit database)

tekst blijft niet netjes in zijn div box met de volgende code:
CSS:
De tekst van het linkervak loopt als het woord iets te lang is toch net nog over in het rechter (tekst komt uit database)

tekst blijft niet netjes in zijn div box met de volgende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<div id="content">
<div id="actueel">
<ul id="menu1">
<br /><br />
<br />
<br />
<?php
// STUK PHP CODE UITLEZEN DATABASE
?>
</ul></div>
<div id="actueel">
<ul id="menu1">
<br /><br />
<br />
<br />
<?php
// STUK PHP CODE UITLEZEN DATABASE
?>
</ul></div>
CSS:
Code (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
40
41
42
43
44
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
40
41
42
43
44
#content {
width: 956px;
height: 800px;
margin: 0 auto 0;
padding: 20px;
background-image: url(../achtergrond/midden.jpg);
background-repeat: no-repeat;
background-position: -9px;
background-position: center -9px;
}
#actueel {
position:relative;
left: 748px;
height: 180px;
width: 280px;
text-align: left;
top: 157px;
color: #FFF;
font-size: 10px;
}
#menu1 li {
display:inline;
}
#menu1 a:hover .text {
display:block;
position:absolute;
top:0px;
left:-166px;
color:#000000;
font-size:12px;
height:196px;
width: 197px;
text-align: left;
font-family: Georgia, "Times New Roman", Times, serif;
background-image: url(../achtergrond/popup.jpg);
background-repeat: no-repeat;
padding-top: 0px;
padding-right: 4px;
padding-bottom: 4px;
padding-left: 8px;
}
width: 956px;
height: 800px;
margin: 0 auto 0;
padding: 20px;
background-image: url(../achtergrond/midden.jpg);
background-repeat: no-repeat;
background-position: -9px;
background-position: center -9px;
}
#actueel {
position:relative;
left: 748px;
height: 180px;
width: 280px;
text-align: left;
top: 157px;
color: #FFF;
font-size: 10px;
}
#menu1 li {
display:inline;
}
#menu1 a:hover .text {
display:block;
position:absolute;
top:0px;
left:-166px;
color:#000000;
font-size:12px;
height:196px;
width: 197px;
text-align: left;
font-family: Georgia, "Times New Roman", Times, serif;
background-image: url(../achtergrond/popup.jpg);
background-repeat: no-repeat;
padding-top: 0px;
padding-right: 4px;
padding-bottom: 4px;
padding-left: 8px;
}
Gewijzigd op 24/12/2010 21:54:55 door Michel D
volgens mij met een max-width in css zou de tekst nooit buiten de div komen, alleen woorden die breder zijn als je div vallen er dan buiten
Dit is theoretisch onmogelijk, omdat PHP je fonts niet kan (of gaat) renderen en dus nooit de regellengte kan weten.
Jou probleem moet je idd met CSS oplossen.
Jou probleem moet je idd met CSS oplossen.
in css een max-width gebruikt en dit werkt inderdaad.
Case Solved !!!
Bedankt allemaal !!
Case Solved !!!
Bedankt allemaal !!




