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!
stevenetMedlem sedan juni 20001 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);
}
}
?>
fiddlerMedlem sedan juli 20023 617 inlägg $title = dotTruncate($item['title'],37);
stevenetMedlem sedan juni 20001 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>';
}
}
?>
TroxyMedlem sedan mars 20041 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;
}
}