使用 strlen 限制字符

发布于 2025-01-07 02:10:18 字数 700 浏览 0 评论 0原文

我试图限制标题中出现的字符数。

不确定我在这里做错了什么(我是新手!),但标题显示为完整长度并且“...”没有出现。

非常感谢任何帮助!

<? if ($params->get('itemid')) $itemid = '&Itemid='.$params->get('itemid'); else $itemid = ''; ?>
<? $title = $event->title ?>
<? $title = substr($title, 0, 20); ?>
<? if (strlen($title) == 20) $title .= '...' ; ?>
<? if (KRequest::get('get.view', 'string') == 'events' || isset($module)) : ?>
    <h1 class="title" itemprop="name">
        <a href="<?=@route('option=joomla_component&view=event&id='.$event->id.$itemid)?>" itemprop="url"><?=$event->title?></a>
    </h1>
<? endif ?>

I am trying to limit the number of characters that appear in a title.

Not sure what I am doing wrong here (I'm a novice!), but the title appears full length and the '...' does not appear.

Any help much appreciated!

<? if ($params->get('itemid')) $itemid = '&Itemid='.$params->get('itemid'); else $itemid = ''; ?>
<? $title = $event->title ?>
<? $title = substr($title, 0, 20); ?>
<? if (strlen($title) == 20) $title .= '...' ; ?>
<? if (KRequest::get('get.view', 'string') == 'events' || isset($module)) : ?>
    <h1 class="title" itemprop="name">
        <a href="<?=@route('option=joomla_component&view=event&id='.$event->id.$itemid)?>" itemprop="url"><?=$event->title?></a>
    </h1>
<? endif ?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

三生池水覆流年 2025-01-14 02:10:18

您不应该在输出中使用 $title 而不是 $event->title 吗?

Shouldn't you be using $title and not $event->title in your output?

澜川若宁 2025-01-14 02:10:18

看2条评论。它应该让它发挥作用。

    <? 
    if ( $params->get('itemid') ) {
        $itemid = '&Itemid='. $params->get('itemid'); 
    else 
        $itemid = ''; 
    $title = $event->title; 
    if ( strlen( $title ) > 20 ) $title = substr( $title, 0, 17).'...';  // Need to add a substr
    if ( KRequest::get('get.view', 'string') == 'events' || isset( $module ) ) : ?>     
        <h1 class="title" itemprop="name">
            <a href="<?=@route('option=joomla_component&view=event&id='.$event->id.$itemid)?>" 
                itemprop="url">
                <?= $title; // note the change here ?>
            </a>
       </h1> 
    <? endif ?>

See the 2 comments. It should make it work.

    <? 
    if ( $params->get('itemid') ) {
        $itemid = '&Itemid='. $params->get('itemid'); 
    else 
        $itemid = ''; 
    $title = $event->title; 
    if ( strlen( $title ) > 20 ) $title = substr( $title, 0, 17).'...';  // Need to add a substr
    if ( KRequest::get('get.view', 'string') == 'events' || isset( $module ) ) : ?>     
        <h1 class="title" itemprop="name">
            <a href="<?=@route('option=joomla_component&view=event&id='.$event->id.$itemid)?>" 
                itemprop="url">
                <?= $title; // note the change here ?>
            </a>
       </h1> 
    <? endif ?>
悲歌长辞 2025-01-14 02:10:18

我不确定这是否会回答您的问题,但也许您应该尝试以下代码:

<?php
if ( $params->get( 'itemid' ) ) {
    $itemid = '&Itemid='.$params->get('itemid');
} else {
    $itemid = '';
}
$title = $event->title;
if ( strlen( $title ) >= 20 ) {
    $title = substr( $title, 0, 20 );
    $title .= '...';
}
if ( KRequest::get( 'get.view', 'string' ) == 'events' || isset( $module ) ) :
?>
<h1 class="title" itemprop="name">
    <a href="<?= @route( 'option=joomla_component&view=event&id=' . $event->id . $itemid ) ?>" itemprop="url"><?= $title ?></a>
</h1>
<?php
endif;
?>

主要问题是您正在转换 $title 变量并显示 $event->title 变量。此外,您正在寻找精确长度为 20 的字符串来添加“...”,但您应该将其添加到任何具有 20 个或更多字符的字符串中。

我希望它有帮助!

I'm not sure if this will answer your question, but maybe you should try this code:

<?php
if ( $params->get( 'itemid' ) ) {
    $itemid = '&Itemid='.$params->get('itemid');
} else {
    $itemid = '';
}
$title = $event->title;
if ( strlen( $title ) >= 20 ) {
    $title = substr( $title, 0, 20 );
    $title .= '...';
}
if ( KRequest::get( 'get.view', 'string' ) == 'events' || isset( $module ) ) :
?>
<h1 class="title" itemprop="name">
    <a href="<?= @route( 'option=joomla_component&view=event&id=' . $event->id . $itemid ) ?>" itemprop="url"><?= $title ?></a>
</h1>
<?php
endif;
?>

The main problem is that you're transforming the $title variable and display the $event->title variable. Besides, you're looking for strings of an EXACT length of 20 to add the "...", but you should add it to any string with 20 or more characters.

I hope it helped!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文