Как ограничить длину заголовка до 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>';
1

Другие решения

Поскольку вы называете себя новичком, я думаю, вы по достоинству оцените несколько советов:

  • Избежать строк с помощью 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>';
}
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
По вопросам рекламы [email protected]