08. april 2003 - 11:43
Der er
22 kommentarer og 3 løsninger
Begrænset antal bogstaver
Hvordan får man php til kun at hente/vise de første f.eks 30 bogstaver af en TEXT ???
Annonceindlæg fra Salesforce
08. april 2003 - 11:47
#2
tak skal du have....
08. april 2003 - 11:48
#3
nej vent lidt.... den skal også sætte 3 punktummer efter, og det er jo ikke så enkelt som jeg troede... skal den jo kun gøre hvis der er mere end 30 bogstaver....
08. april 2003 - 11:50
#4
Har en gang lavet en function der gør det, dog tæller den ord og ikke bogstaver.. Det er jo pænest at der brydes efter et ord og ikke mit i et ord. function reduceTextString($text, $words=0) { $textString = ""; $stringArray = explode(" ",$text); if (!$words) $words = sizeof($stringArray); for($i=0;$i<=$words;$i++) $textString .= $stringArray{$i}." "; if ($words<sizeof($stringArray)) $textString .= "..."; return $textString; }
08. april 2003 - 11:55
#5
det skal være efter bogstaver...... ellers kan folk jo bare skrive ET LAAAAAAAAAAAAAAAAANNNNNNNNNNNNNNNGGGGGGGGGGGGGGGGGGGGT ord...
08. april 2003 - 11:57
#6
Så lave funktionen om så den gør følgende : function reduceTextString($text, $chars=0) { $textString = ""; $stringArray = $text; if (!$words) $words = sizeof($stringArray); for($i=0;$i<=$chars;$i++) $textString .= $stringArray{$i}." "; if ($chars<sizeof($stringArray)) $textString .= "..."; return $textString; } Test det lige, jeg er ikke sikker på at det er helt rigtigt :o)
08. april 2003 - 11:59
#7
08. april 2003 - 12:12
#8
Ups, fejl det skal være således: function reduceTextString($text, $chars=0) { $textString = ""; $stringArray = $text; if (!$chars) $chars= sizeof($stringArray); for($i=0;$i<=$chars;$i++) $textString .= $stringArray{$i}." "; if ($chars<sizeof($stringArray)) $textString .= "..."; return $textString; }
08. april 2003 - 12:13
#9
$words $text ??? hvor skal de komme fra, hvilken er den der skal ændres, og hvor fåes den anden fra... og disse hvad skal de gøre godt for: $textString = ""; $stringArray = $text; inputtet er fra MySQL og er $row[tekst] <--- skriv scriptet op om denne, og udelad alt overflødigt...
08. april 2003 - 12:14
#10
<?php $short = substr("tekst", 0, 30); // Tager de første 30 tegn af strengen $pos = strrpos($short, ' '); // Finder positionen for det sidste mellemrum i teksten $short = substr($short, 0, $pos); echo "$short" ?>
08. april 2003 - 12:14
#11
<?php $short = substr($row[tekst], 0, 30); $pos = strrpos($short, ' '); $short = substr($short, 0, $pos); echo "$short"; ?>
08. april 2003 - 12:16
#12
$textString = ""; $chars = 30; // ANTAL ØNSKEDE TEGN $stringArray = "Lang tekst med over eller under 30 tegn"; if (!$chars) $chars= sizeof($stringArray); for($i=0;$i<=$chars;$i++) $textString .= $stringArray{$i}." "; if ($chars<sizeof($stringArray)) $textString .= "..."; echo $textString;
08. april 2003 - 12:16
#13
<?php $short = substr($row[tekst], 0, 30); $pos = strrpos($short, ' '); $short = substr($short, 0, $pos)."..."; echo "$short"; ?>
08. april 2003 - 12:18
#14
Har lige testet dette her og det virker: $textString = ""; $chars = 30; // ANTAL ØNSKEDE TEGN $stringArray = "Lang tekst med over eller under 30 tegn"; if (!$chars) $chars= strlen($stringArray); for($i=0;$i<=$chars;$i++) $textString .= $stringArray{$i}." "; if ($chars<strlen($stringArray)) $textString .= "..."; echo $textString;
08. april 2003 - 12:21
#15
Ups, lille fejl: $textString = ""; $chars = 30; // ANTAL ØNSKEDE TEGN $stringArray = "Lang tekst med over eller under 30 tegn"; if (!$chars) $chars= strlen($stringArray); for($i=0;$i<=$chars;$i++) $textString .= $stringArray{$i}; if ($chars<strlen($stringArray)) $textString .= "..."; echo $textString;
08. april 2003 - 12:22
#16
Er det ikke bare: if (strlen(@tekst) > 30) $tekst = substr($tekst, 0, 27)."..."; /venne
08. april 2003 - 12:25
#17
venne >> Jow, det kunne man også.. :o) Det er faktisk lidt nemmere.. Min funktion var i bund og grund også bygget til at kunne gøre det samme med ord og ikke karaktere..
exp
Juniormester
08. april 2003 - 12:30
#18
08. april 2003 - 12:31
#19
exp >> Den har jeg lagt et link til ;o)
exp
Juniormester
08. april 2003 - 12:32
#20
scheafner >> Det havde jeg sgu ikke set :-) Havde lige brugt den i et andet svar, og så gik det lidt stærkt *g* bixen >> Bare afvis mit svar :-)
08. april 2003 - 12:36
#21
venne> smider du et svar.... så deler jeg pointene ligeligt blandt jer...
08. april 2003 - 12:46
#22
Så pyt... /venne
08. april 2003 - 17:27
#23
parse error i denne: if (strlen(@row[tekst]) > 30) $tekst = substr($row[tekst], 0, 27)."...";
08. april 2003 - 22:20
#24
if (strlen($row[tekst]) > 30) { $tekst = substr($row[tekst], 0, 27)."..."; }
08. april 2003 - 23:30
#25
Du kan også kigge på "ellipsis" i CSS - det er dog ikke standard så vidt jeg husker.
Vi tilbyder markedets bedste kurser inden for webudvikling