07. november 2009 - 13:23
Der er
12 kommentarer og 1 løsning
Overskrift hentet fra MySQL er for lang.
Jeg har et problem med at min .$row['overskrift']. bliver for lang, og dermed passer designet på hjemmesiden ikke til indholdet. Jeg søger et løsning til at det kun et noget af overskriften der bliver udskrevet fx: Forkert: En overskrift der er for lang Rigtigt: En overskrift der... Det idelle ville være at der kunne angives en maksimal width. Er det muligt at lave sådan en funktion i php? udsnit fra kode: <div class=\"indholdtop\"><h1>".$row['overskrift']."</h1><h2>Tilføjet: ".$row['dato']." af Webmaster</h2></div> - XuZeM
Annonceindlæg fra Computerworld
07. november 2009 - 13:44
#1
<?php define('MAX_HEADLINE_WIDTH', 150); // ... $headline = (strlen($row['overskrift'])>MAX_HEADLINE_WIDTH) ? substr($row['overskrift'], 1, MAX_HEADLINE_WIDTH-4)." ..." : $row['overskrift']; echo("<h1>$headline</h1>"); ?>
07. november 2009 - 13:48
#2
kan jeg få en forkalring til koden?
07. november 2009 - 13:59
#3
SELECT LEFT(overskrift, 60) FROM tabel
07. november 2009 - 14:00
#4
eller SELECT LEFT(overskrift, 60) as overskrift FROM tabel
07. november 2009 - 14:12
#5
Begge løsninger angiver jo bare hvor mange anslag/tegn der vises og ikke en bestemt width... Alle tegn varierer jo i brede og dermed er det jo ikke hensigtsmæssigt at angive et bestemt antal anslag der må vises. showsource din løsning angiver desuden heller ikke ... for at symbolisere en fortsættelse af teksten.. ER det muligt at lave dette også? - XuZeM
07. november 2009 - 14:31
#6
Du kan definere en width i pixels for et html element. Men alle computere har jo ikke samme tekststr. så du er i den henseende "ude på et skråplan" Designmæssigt bør du bruge html som "tilpasser sig" div. opløsninger, skriftstr. m.m. ... kan du jo blot skrive direkte ?
07. november 2009 - 14:50
#7
Ja okay. Jeg har via css defineret, at min h1 kun må være 400px i breden.. Er det så muligt via php at tilføje "..." i slutningen af overskriften hvis de 400px overskrides og undlade dem hvis de 400px ikke overskrides? - XuZeM
07. november 2009 - 14:59
#8
Nej, ikke med php Men kan gøres i javascript.
07. november 2009 - 15:01
#9
Er det noget du kan forklare mig?
07. november 2009 - 18:26
#10
Slettet bruger
07. november 2009 - 19:41
#11
Mit bud er dette. Jeg tror ikke at javscript er vejen frem lige her. Prøv dette. Bare skift max længden. <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("test") or die(mysql_error()); $statement = "SELECT overskrift FROM news"; $get = mysql_query($statement) or die(mysql_error()); // Max længde af overskrift $ml = 13; ?> <html> <head> </head> <body> <?php while($row = mysql_fetch_assoc($get)) { $r = $row['overskrift']; $m = strlen($r); if($m > $ml ) { $t = substr($r, 0, $ml); $d = substr($t, -1); if($d != " ") { echo "<h1>".$t."...</h1><br />"; } else { $o = strlen($t) -1; $g = substr($t, 0, $o); echo "<h1>".$g."...</h1><br />"; } } else echo "<h1>".$r."...</h1><br />"; } ?> </body> </html>
Slettet bruger
07. november 2009 - 19:45
#12
He he :D Ups while($row = mysql_fetch_assoc($get)) { $r = $row['overskrift']; $m = strlen($r); if($m > $ml ) { $t = substr($r, 0, $ml); $d = substr($t, -1); if($d != " ") { echo "<h1>".$t."...</h1><br />"; } else { $o = strlen($t) -1; $g = substr($t, 0, $o); echo "<h1>".$g."...</h1><br />"; } } else echo "<h1>".$r."</h1><br />"; }
09. november 2009 - 09:44
#13
Jeg dropper det og holder mig til at h1 kun må være 400px i breden.
Vi tilbyder markedets bedste kurser inden for webudvikling