Frågan 30 maj 2007 10:48 #1 Jag undrar om det är någon som har en kod för att bestämma hur många tecken som visas av en text, i det här fallet artikeltitlarna från DNs RSS.
Alltså, jag har lyckats få rss flödet att visas på min hemsida med radbrytning efter varje titel, men jag vill att titlarna ska ha bestämd längd, t.ex. om titeln är "Oväntad händelse under presidentvalet i Chile" ska endast "Oväntad händelse under president..." visas.
Tack på förhand!
S stevenet Medlem sedan juni 2000 1 251 inlägg http://se2.php.net/strlen Returnerar längden på en sträng.
http://se2.php.net/substr Returnerar en del av en sträng.
<?php
function dotTruncate($string, $length="20")
{
return (strlen($string) > $length) ? substr($string,0,$length).'...' : $string;
}
echo dotTruncate("Oväntad händelse under presidentvalet i Chile", 37);
?>
nytt problem!
Tack för hjälpen!
Jag får det inte att funka dock har du lust att granska koden?
<?php
function dotTruncate($string, $length="20")
{
return (strlen($string) > $length) ? substr($string,0,$length).'...' :
$string;
}
define('MAGPIE_DIR', './magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');
$url = "http://www.dn.se/toppnyheter-rss ";
if ( $url ) {
$rss = fetch_rss( $url );
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo dotTruncate("<a class=style7 href=$href target=_blank>$title</a><br>", 37);
}
}
?>
fiddler Medlem sedan juli 2002 3 617 inlägg $title = dotTruncate($item['title'],37);
S stevenet Medlem sedan juni 2000 1 251 inlägg Hej igen!
Du vill förmodligen bara korta av $title, annars kommer din html-kod bli avklippt.
<?php
function dotTruncate($string, $length="20")
{
return (strlen($string) > $length) ? substr($string,0,$length).'...' :
$string;
}
define('MAGPIE_DIR', './magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');
$url = "http://www.dn.se/toppnyheter-rss";
if ( $url ) {
$rss = fetch_rss( $url );
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<a class="style7" href="'.$href.'" target="_blank">';
echo dotTruncate($title, 37);
echo '</a><br>';
}
}
?>
Troxy Medlem sedan mars 2004 1 505 inlägg Här är en förkortningsfunktion för text som tar hänsyn till ord, dvs. den undviker att klippa mitt i ett ord.
Sen kan man även skicka med en "svans" som valfritt tredje argument, vilket läggs till i slutet efter förkortningen.
function str_truncate($input, $length, $tail = '') {
if (!strlen($input) > $length) {
return $input;
} else {
$output = substr($input, 0, $length);
$dot = strrpos($output, '.');
$space = strrpos($output, ' ');
$output = substr($output, 0, ($dot > $space? $dot : $space)) . $tail;
return $output;
}
}