Avatar billede MartinKJ Nybegynder
06. april 2002 - 11:37 Der er 3 kommentarer og
1 løsning

Max længde på artikel

Hvilken kode bruger man for kun at få vist f.eks. de første 30 ord i en artikel? F.eks. prøv at gå ind på http://www.udvikleren.dk/vis_artikler.php4?kat=6, her er de første 4-5 linier vist fra hver artikel, så kommer "..... [læs mere...]" frem
Hvordan laves dette?
Avatar billede gizmo-gizmo Nybegynder
06. april 2002 - 11:43 #1
sådan her:

jeg går ud fra at du hiver dine artikler ud via mySQL database...

$query = mysql_query("SELECT * FROM database");
while($row = mysql_fetch_array($query)) {
      $del_af_artikel = substr($row[artikel], 0, 50);
      echo "$del_af_artikel ... [læs mere]";     
}
?>

noget i den stil
Avatar billede elkrog Nybegynder
06. april 2002 - 11:57 #2
<?

$tekst = "Hvilken kode bruger man for kun at få vist f.eks. de første 30 ord i en artikel?";
if (strlen($tekst) > 30) {
  $tekst = substr($tekst, 0, 30) . "...";
}
echo "$tekst";

?>
Avatar billede jensgram Nybegynder
06. april 2002 - 12:54 #3
Nogle af jer har nok set denne funktion før, men den er altså udmærket:

//  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)
    }

    return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}
Avatar billede jensgram Nybegynder
06. april 2002 - 18:07 #4
Tak for points. Den der funktion har snart taget mange kegler ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester