2

我有一个 div 有一个阅读更多按钮。阅读更多按钮展开文本,展开的文本位于其下方的第二个 div 中。完全卡住了。请帮忙。下面的代码:

<?PHP

function limit_words($string, $word_limit){
    $words = explode(" ",$string);
    return implode(" ",array_splice($words,0,$word_limit));
}

$text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.";

?>

<div class="slidewrap">
    <img src="images/slides/image.jpg" alt="Image Title" />
    <h3>Title</h3>
    <p><?PHP echo(limit_words($text,50)); ?></p>
    <p><a href="#" class="readmore"><img src="images/icons/readmore.png" alt="" /></a></p>
    <div class="readmorexpand">
        <p><?PHP echo($leftovertext); ?></p>
    </div>
</div>
4

3 回答 3

2

试试这个:

<?php
function limit_words($string, $word_limit){
    $words = explode(" ",$string);
    return implode(" ",array_splice($words,0,$word_limit));
}

$text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.";

$start = limit_words($text,50);
$end = str_replace($start, '', $text);
?>

<div class="slidewrap">
    <img src="images/slides/image.jpg" alt="Image Title" />
    <h3>Title</h3>
    <p><?php echo $start; ?></p>
    <p><a href="#" onclick="document.getElementById('readmorexpand').style.display = '';" class="readmore"><img src="images/icons/readmore.png" alt="" /></a></p>
    <div class="readmorexpand" id="readmorexpand" style="display:none">
        <p><?php echo $end; ?></p>
    </div>
</div>
于 2012-08-30T13:17:49.650 回答
2

上面的代码对我很有用。只是想分享我的代码,我还添加了小代码来检查我是否需要处理字符串。下面的代码将在将字符串处理为 array_splice 之前检查字符串计数,以确保提供的字符串是否需要缩短。

    function limit_words($string, $word_limit){
        $words = explode(" ",$string);
        if(count($words)>$word_limit){
           return implode(" ",array_splice($words,0,$word_limit));
        }else{
           return $string;
        }
    }
于 2014-10-21T04:36:20.703 回答
0

您从哪里“获取”剩余文本?

尝试这样的事情:

<?PHP

function limit_words($string, $word_limit){
    $words = explode(" ",$string);
    $ar = array();
    $ar[] = implode(" ",array_splice($words,0,$word_limit));
    $ar[] = implode(" ",array_splice($words,$word_limit));
    return $ar;
}

$text = "Lorem ipsum dolor ... snip ...  eleifend tellus.";


/** $ar contains the text split at the 50th "word" */
$ar = limit_words($string, 50)

?>

<div class="slidewrap">
    <img src="images/slides/image.jpg" alt="Image Title" />
    <h3>Title</h3>
    <p><?PHP echo $ar[0]; ?></p>
    <p><a href="#" class="readmore"><img src="images/icons/readmore.png" alt="" /></a></p>
    <div class="readmorexpand">
    <p><?PHP echo $ar[1]; ?></p>
    </div>
</div>
于 2012-08-30T13:25:11.217 回答