如何将标题的长度限制为20个字符?

时间:2014-10-08 16:12:39

标签: php rss title

如何将标题长度限制为20个字符?

我是新手,谢谢=)

    <?php
    include("topic.php");
    $RSS = new topic("http://feeds.bbci.co.uk/news/rss.xml");
    for( $i = 0; $i < 11; $i++ )
    {
    echo '<li><a href="'.$RSS->link[$i].'" target="_blank">'.$RSS->title[$i].'</a></li>';
    }
    ?>

3 个答案:

答案 0 :(得分:1)

使用PHP的substr()功能:

echo '<li><a href="'.$RSS->link[$i].'" target="_blank">'. substr($RSS->title[$i], 0, 20) .'</a></li>';

答案 1 :(得分:0)

这是修改后的代码

<?php
include("topic.php");
$RSS = new topic("http://feeds.bbci.co.uk/news/rss.xml");
for( $i = 0; $i < 11; $i++ )
{
  $sub_title = (strlen($RSS->title[$i]) > 20) ? substr($RSS->title[$i],0,20).'...' : $RSS->title[$i];
echo '<li><a href="'.$RSS->link[$i].'" target="_blank">'.$sub_title.'</a></li>';
}

?>

答案 2 :(得分:0)

既然你称自己是新手,我想你会感激一些提示:

  • 使用htmlspecialchars函数转义字符串 避免安全问题(例如:XSS攻击)。

  • 使用mb_*函数可避免编码问题。

  • 如果您想处理任何商品编号,请勿使用硬编码 数字 - 例如,使用foreach

如果你想修复所有这些问题并添加大于20个字符的椭圆标题,请尝试:

mb_internal_encoding('UTF-8');

include("topic.php");

$RSS = new topic("http://feeds.bbci.co.uk/news/rss.xml");
$titleMaxCharacters = 20;
foreach($RSS->link as $i => $link)
{
    $titleHtml = '';
    if( isset($RSS->title[$i]) ) {
        $title = $RSS->title[$i];
        $handledTitle = mb_strlen($title) > $titleMaxCharacters
                          ? mb_substr($title, 0, $titleMaxCharacters) . '...'
                          : $title;
        $titleHtml = htmlspecialchars($handledTitle, ENT_NOQUOTES, 'UTF-8');
    }

    $linkHtml = htmlspecialchars($link, ENT_COMPAT, 'UTF-8');

    echo '<li><a href="'.$linkHtml.'" target="_blank">'.$titleHtml.'</a></li>';
}