Zin afbreken in PHP?
Ik ben behoorlijk nieuw met PHP en zit met een irritant probleem. Ik heb een PHP script waarin hij informatie haalt uit een datafeed en die plaatst op mijn site. Nou is het probleem dat de data die hij toont te lang is en mijn lay-out verpest. Daarom wil ik ervoor zorgen dat hij de tekst afbreekt na bijv 15 tekens met "...".
Dit is mijn script:
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
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
<?php
// for ($i = 0; $i < 10; $i++){
$fp = fopen ("test.csv","r");
$row=0;
for($j = 0; $j < 12; $j++){
$data = fgetcsv ($fp, 1000, ",");
$num = count ($data);
//print "<p> $num velden in regel $row: <br>\n";
$row++;
// for ($c=0; $c < $num; $c++) {
if($row >2){
print "<tr><td><a href='".$data[0] .
"class='style32' style ='text-decoration:none'>";
print $data[6] . "</a></td><td class='prijs'><a
href='".$data[0]."' class='style32'
style='text-decoration:none'.>";
print $data[5] . "</td></tr>
"; }
//}}
}
// }
fclose ($fp);
?>
// for ($i = 0; $i < 10; $i++){
$fp = fopen ("test.csv","r");
$row=0;
for($j = 0; $j < 12; $j++){
$data = fgetcsv ($fp, 1000, ",");
$num = count ($data);
//print "<p> $num velden in regel $row: <br>\n";
$row++;
// for ($c=0; $c < $num; $c++) {
if($row >2){
print "<tr><td><a href='".$data[0] .
"class='style32' style ='text-decoration:none'>";
print $data[6] . "</a></td><td class='prijs'><a
href='".$data[0]."' class='style32'
style='text-decoration:none'.>";
print $data[5] . "</td></tr>
"; }
//}}
}
// }
fclose ($fp);
?>
Nou is mijn vraag hoe ik ervoor zorg dat de tekst afbreekt. Ik heb op verschillende sites al een aantal codes gezien maar geen idee hoe ik het goed kan toepassen in mijn script. ($data is de tekst die hij op de site zet voor alle duidelijkheid :P)
Ik hoop dat iemand me kan helpen,
Alvast bedankt,
Robert
Gewijzigd op 01/01/1970 01:00:00 door Robert
print substr($data[6],maximaal_aantal_tekens)
Graag gedaan
ik haat mensen die hun zinnen niet af
Hij breekt hem nu wel af. Alleen wil ik nog dat die hem niet zomaar afbreekt maar afsluit met "..." , dus 3 puntjes.
Is dit ook nog toe te passen?
Harstikke bedankt :D
Oja, let niet op de variabel namen. Ik had een beetje lol! :) Taco taco, burrito, taco flavoured kisses!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function wrapIt($inMyTaco, $howManyBeans=15) {
if(strlen($inMyTaco) > $howManyBeans)
$taco = substr($inMyTaco, 0, $howManyBeans) . "...";
else
$taco =& $inMyTaco;
return $taco;
}
$zin = "Deze zin is veel te lang!";
$zin2 = "Deze niet!";
echo wrapIt($zin)."<BR>";
echo wrapIt($zin, 20)."<BR>";
echo wrapIt($zin2)."<BR>";
?>
function wrapIt($inMyTaco, $howManyBeans=15) {
if(strlen($inMyTaco) > $howManyBeans)
$taco = substr($inMyTaco, 0, $howManyBeans) . "...";
else
$taco =& $inMyTaco;
return $taco;
}
$zin = "Deze zin is veel te lang!";
$zin2 = "Deze niet!";
echo wrapIt($zin)."<BR>";
echo wrapIt($zin, 20)."<BR>";
echo wrapIt($zin2)."<BR>";
?>
Output:
Quote:
Deze zin is vee...
Deze zin is veel te ...
Deze niet!
Deze zin is veel te ...
Deze niet!
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
Gerben Jacobs schreef op 01.10.2007 12:05:
Juist wel op letten... :DOja, let niet op de variabel namen. Ik had een beetje lol! :) Taco taco, burrito, taco flavoured kisses!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$txt = 'The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.';
$min_length = 50;
if (strlen ($txt) > $min_length) {
$eerste_spatie = strpos ($txt, ' ', $min_length);
echo substr ($txt, 0, $eerste_spatie) . ' ...';
}
else {
echo $txt;
}
?>
$txt = 'The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.';
$min_length = 50;
if (strlen ($txt) > $min_length) {
$eerste_spatie = strpos ($txt, ' ', $min_length);
echo substr ($txt, 0, $eerste_spatie) . ' ...';
}
else {
echo $txt;
}
?>
14 (!) jaar geleden postte jij het PHP-script om zinnen af te breken. Fantastisch script met prima resultaat. In plaats van de punt "." heb ik eindeparagraaf "</p>" gebruikt. Nergens meer fouten in de html-code. Al komt dit bedankje laat, bij deze mijn grote dank.
Hein van der Wal.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$string = 'The quick brown fox jumps over the lazy dog';
$new_string = chunk_split( $string, 20, '<br />');
$stringArr = [];
$stringArr = explode('<br />', $new_string);
$stringArr[0] = $stringArr[0] . '...';
echo '<p>' . $new_string . '</p>';
echo '<p>' . $stringArr[0] . '</p>';
?>
$string = 'The quick brown fox jumps over the lazy dog';
$new_string = chunk_split( $string, 20, '<br />');
$stringArr = [];
$stringArr = explode('<br />', $new_string);
$stringArr[0] = $stringArr[0] . '...';
echo '<p>' . $new_string . '</p>';
echo '<p>' . $stringArr[0] . '</p>';
?>
dec/hex
? 11592/2d48
???? 119552/1d300
https://www.janr.be/unicode.php?start=32&einde=140000
https://stringfixer.com/nl/...
Toevoeging op 17/01/2022 07:07:51:
Sorry blijkbaar worden de codes HIER niet juist overgenomen.
Tja, UTF-8 mist hier. :-/