Wie kan mij even helpen?
Ik weet dat het hier moet zijn maar ik kan het niet vinden.

Ik zoek een script om zinnen mee af te breken zodat je bv maar 5 woorden ziet en dan ...


Mod edit : verplaatst naar juiste catogorie
Kijk is:


<?php
// I wrote this function because php's wordwrap() doesn't fit the needs of regular webpage.
// Just give the string and the row limit and if you like the divider.
// This function breaks the line after the limit is reached.

function text_wrap($log_text, $limit, $divider=" ") 
{
	$words = explode($divider, $log_text);
	$word_count = count($words);
	$char_counter = 0;
	$block = "";
	foreach ($words as $value) 
	{
		$chars = strlen($value);
		$block .= $value;
		$char_counter = $char_counter + $chars;
		if ($char_counter >= $limit) 
		{
			$block .= " \\n ";
			$char_counter = 0;
		} 
		else 
			{
				$block .= " ";
			}
	}
	return rtrim($block);
}
?>

<?php
// nog een uitleg
$groente[0] = 'APPPPPEEEEEEEEEEEEEEEEEEEEEEEL MEERDAN 40 TEKENS DUS DAT WORDT KNIPPEN';
$groente[1] = 'APPPPPEEL';

foreach($groente as $var)
{
if(strlen($var)>40) 
	{
		echo substr($var,0,40) . "...</br>";
	}
else
	{
		echo $var."<br/>";
	}	
}
?>


Komt van eerdere postings :)
Suc6 ermee...
mischien heb je hiero iets aan:

<?php

function inkorten($var, $lengte) {
$ret = $var;
if (strlen($ret) > $lengte) {
$ret = substr($ret, 0, $lengte-3)."...";
}
return $ret;
}

?>

het stukje script is niet van mij maar uit een ander script

echo "".inkorten($form['onderwerp'], 12)."";

zoiets?

GR. mebus!

edit:

To late:(
Uhm.......

en hoe krijg ik dat in dit script van mij?

<?php
//maak de tabel voor de laatste toevoegingen en zet alles erin
echo "<table width='100%' valign='bottom' align='center' >";
echo "<td align='center' ><b>De 3 nieuwste websites</b><br></td></tr>";
echo "<tr>";
$query5 = mysql_query("SELECT * FROM linken ORDER BY link_id DESC LIMIT 0,3 ");


//selecteer de naam en de url uit database linken
while ($row5 = mysql_fetch_object($query5))
{
if($row5->link_tekst)
{
echo "<tr><td align='left'><b>-&nbsp;$row5->link_naam&nbsp;-</b><br>$row5->link_tekst</td></tr>";
}
else
{
echo "<tr><td align='left'><b>-&nbsp;$row5->link_naam&nbsp;-</b><br>$row5->link_javascript</td></tr>";
}
}
echo "</tr></table>";
?>
$row5->link_tekst

vervangen door:
".substr($row5->link_tekst,30)."...

Nu wordt je tekst op 30 tekens ingekort (misschien beetje lange woorden maar toch :)
Ik heb die van Mebus gebruikt want die andere deed heel raar.

Maar het werkt niet.
Komt denk ik omdat het ook niet kàn.

De tekst is namelijk een aanklikbare link en die link verdwijnt nu.(het is niet meer aanklikbaar)

Je kunt even op de testpagina kijken in de rechter kolom:
Klik hier

En als je een javascript link hebt dan zie je helemaal niets.

Hij laat nu ook niet meer 3 websites zien maar 2.

<?php
function inkorten($var, $lengte) {
$ret = $var;
if (strlen($ret) > $lengte) {
$ret = substr($ret, 0, $lengte-3)."...";
}
return $ret;
}
//maak de tabel voor de laatste toevoegingen en zet alles erin
echo "<table width='100%' valign='bottom' align='center' >";
echo "<td align='center' ><b>De 3 nieuwste websites</b><br></td></tr>";
echo "<tr>";
$query5 = mysql_query("SELECT * FROM linken ORDER BY link_id DESC LIMIT 0,3 ");


//selecteer de naam en de url uit database linken
while ($row5 = mysql_fetch_object($query5))
{
if($row5->link_tekst)
{
echo "<tr><td align='left'><b>-&nbsp;$row5->link_naam&nbsp;-</b><br>".inkorten($row5->link_tekst, 40)."</td></tr>";
}
else
{
echo "<tr><td align='left'><b>-&nbsp;$row5->link_naam&nbsp;-</b><br>".inkorten($row5->link_tekst, 40)."</td></tr>";
}
}
echo "</tr></table>";
?>
ik heb het zo, ik include deze functie:

// functie voor het ... script
// Vul hierin hoeveel characters het mag hebben
function afbreken($afgekortetitle, $max, $opvul) {
if (strlen($afgekortetitle) > $max) {
return substr($afgekortetitle, 0, $max) . $opvul;
} else {
return $afgekortetitle;
}
}

let op dat je include_once doet functie worden niet graag 2 keer gedefieneerd.

zo roep ik m aan:


<?php $performers = afbreken($performers, 30, '..'); echo("$performers");?>

30 is het aantal tekens dat mag ge echo't worden, zodra hij 30 tekens haalt doet hij ..

$performers zal dan jou variabele moeten zijn.
Martijn schreef op 27.04.2006 13:09
gebruik word wrap ;)

http://nl3.php.net/manual/en/function.wordwrap.php




Daar heb ik dit gevonden:

$content = wordwrap($content, 200, "....<br /><!--more-->\n");



En heb er dit van gemaakt maar dat werkt niet omdat ik niet weet hoe het in mijn code moet verwerkt worden.

<?php

//maak de tabel voor de laatste toevoegingen en zet alles erin
echo "<table width='100%' valign='bottom' align='center' >";
echo "<td align='center' ><b>De 3 nieuwste websites</b><br></td></tr>";
echo "<tr>";
$query5 = mysql_query("SELECT * FROM linken ORDER BY link_id DESC LIMIT 0,3 ");

$row5->link_tekst = wordwrap($row5->link_tekst, 10, "....");
//selecteer de naam en de url uit database linken
while ($row5 = mysql_fetch_object($query5))
{
if($row5->link_tekst)
{
echo '<tr><td align="left"><b>-&nbsp;'.$row5->link_naam.'&nbsp;-</b><br>'.$row5->link_tekst.'</td></tr>';
}
else
{
echo '<tr><td align="left"><b>-&nbsp;'.$row5->link_naam.'&nbsp;-</b><br>'.$row5->link_javascript.'</td></tr>';
}
}
echo "</tr></table>";
?>
Je moet even wat aanpassen.

je verwijst steeds hiernaar
$row5->link_tekst

Dat houdt in dat je het steeds kaal uit de database haalt.

zet dit er een keer neer

$tekst = wordwrap($row5->link_tekst, 200,"");

En vraag dan steeds naar $tekst
Nou het zal wel aan mij liggen maar het lukt niet.
Hij laat nu niets van de tekst zien:

<?php

//maak de tabel voor de laatste toevoegingen en zet alles erin
echo "<table width='100%' valign='bottom' align='center' >";
echo "<td align='center' ><b>De 3 nieuwste websites</b><br></td></tr>";
echo "<tr>";
$query5 = mysql_query("SELECT * FROM linken ORDER BY link_id DESC LIMIT 0,3 ");

$tekst = wordwrap($row5->link_tekst, 200, "....");
$tekst_java = wordwrap($row5->link_javascript, 200, "....");
//selecteer de naam en de url uit database linken
while ($row5 = mysql_fetch_object($query5))
{
if($row5->link_tekst)
{
echo '<tr><td align="left"><b>-&nbsp;'.$row5->link_naam.'&nbsp;-</b><br>'.$tekst.'</td></tr>';
}
else
{
echo '<tr><td align="left"><b>-&nbsp;'.$row5->link_naam.'&nbsp;-</b><br>'.$tekst_java.'</td></tr>';
}
}
echo "</tr></table>";
?>

Reageren