Hey allemaal,

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:

<?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);
?>


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
op regel 28 :

print substr($data[6],maximaal_aantal_tekens)

Graag gedaan
ik haat mensen die hun zinnen niet af
Bedankt voor je tip Jacco!

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?

<?php
    echo substr($data[6],maximaal_aantal_tekens) . ' ...';
?>
Harstikke bedankt :D
Heb even snel een functie geschreven om af te kappen en puntjes toe te voegen als de zin te lang is en anders niet. Het kan waarschijnlijk wel korter, maar hier is ie.
Oja, let niet op de variabel namen. Ik had een beetje lol! :) Taco taco, burrito, taco flavoured kisses!


<?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>";

?>



Output:


Deze zin is vee...
Deze zin is veel te ...
Deze niet!
Gerben Jacobs schreef op 01.10.2007 12:05
Oja, let niet op de variabel namen. Ik had een beetje lol! :) Taco taco, burrito, taco flavoured kisses!
Juist wel op letten... :D
Deze breekt af op hele woorden:
<?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;
}
?>
Beste Jan,
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.
Ook handig

 <?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>';
?>

Reageren