2014-10-08 36 views
-1

如何限制标题的长度为20个字符?如何将标题的长度限制为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>'; 
    } 
    ?> 

回答

1

使用PHP的substr()功能:

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

它的工作原理,感谢=) – Kryon 2014-10-08 16:45:49

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>'; 
} 

?> 
+0

HI =) 解析错误:语法错误,第6行的/home/fortune/public_html/888.php中意外的'$ RSS'(T_VARIABLE) – Kryon 2014-10-08 16:41:05

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>'; 
}