10. januar 2006 - 19:44Der er
5 kommentarer og 1 løsning
funktion som klipper tekst over mest hensigtsmæssigt. fx 30 ord
hvordan får jeg kaldt nedenstående funktion i det kodeeksempel jeg viser aller nederst på siden? Altså så den korter teksten ned på feltet "supplerendeTekst"
// Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", ) // str klip(str tekst, int længde, int tolerance)
function klip($tekst, $laengde = 50, $tolerance = 10) // $laengde og $tolerance kan udelades { $punktum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum $mere = "..."; // punktummer hvis mere tekst
if (strlen($tekst) <= $laengde + $tolerance) { $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance $mere = ""; // ikke andet } elseif ($punktum !== false) { $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum } elseif ($mellemrum !== false) { $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum } else { $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over) }
Min kode --------------------------------------------------------------- require_once("../members/common.php");
// Hent først data ud $resultat = mysql_query("select * from salgAfProdukt");
// Kør så igennem for hver række while ($raekke = mysql_fetch_array($resultat)) { echo " <tr> <td width=\"350\" valign=\"top\"><span class=\"mellem\"><b> ".$raekke['produkt']."</b></span><br><span class=\"lille\">".$raekke['supplerendeTekst']."</span></td> <td width=\"60\" valign=\"top\"><span class=\"mellem\">".$raekke['pris']."</span></td> <td width=\"150\" valign=\"top\"><span class=\"mellem\">".$raekke['postNr']."</span></td>"; }
Og vil du have den klippet til noget andet end 50 tegn, så angiver du en anden parameter. Jeg vil dog tillade mig at undre mig over, hvorfor der ikke blot bruges den indbyggede wordwrap :)
nu ser mit eksempel således ud: men det virker desværre ikke.. hvad var det med at bruge wordwrap?, er det smartere?
<table width="" border="0" cellspacing="2" cellpadding="0"> <tr> <td width='\"350\"' valign='\"top\"'><span class="stor"><b><u>Annonce</u></b></span></td> <td width='\"60\"' valign='\"top\"'><span class="stor"><b><u>Pris</u></b></span></td> <td width='\"150\"' valign='\"top\"'><span class="stor"><b><u>Område</u></b></span></td> </tr> <?php require_once("../members/common.php"); // Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", ) // str klip(str tekst, int længde, int tolerance)
function klip($tekst, $laengde = 50, $tolerance = 10) // $laengde og $tolerance kan udelades { $punktum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum $mere = "..."; // punktummer hvis mere tekst
if (strlen($tekst) <= $laengde + $tolerance) { $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance $mere = ""; // ikke andet } elseif ($punktum !== false) { $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum } elseif ($mellemrum !== false) { $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum } else { $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over) }
// Hent først data ud $resultat = mysql_query("select * from salgAfProdukt");
// Kør så igennem for hver række while ($raekke = mysql_fetch_array($resultat)) { echo " <tr> <td width=\"350\" valign=\"top\"><span class=\"mellem\"><b> ".$raekke['produkt']."</b></span><br><span class=\"lille\">"klip.$raekke['supplerendeTekst']."</span></td> <td width=\"60\" valign=\"top\"><span class=\"mellem\">".$raekke['pris']."</span></td> <td width=\"150\" valign=\"top\"><span class=\"mellem\">".$raekke['postNr']."<br></span></td></tr>"; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.