当前位置: 首页 > 知识库问答 >
问题:

新闻项目 阅读更多按钮

司空和悌
2023-03-14

我正在为一个网站制作一个新闻块。我想如果一条新闻消息有超过64个单词,它会显示一个阅读更多按钮。如果它有少于64个单词,则只显示消息。现在我已经有了带有阅读更多按钮的部分,但是我不能得到如果它有少于64个单词,阅读更多按钮就会消失的部分。所以阅读更多按钮是可见的,无论它有少于或多于64个单词。

这是一段代码

<?php
$query="SELECT * FROM seo_nieuws ORDER BY id DESC LIMIT 1";
$stmt = $pdo->query($query);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($result as $row) {
?>
<h4><?php echo $row['titel']; ?></h4> 

<?php
}
?>  
<?php
function limit_words($string, $word_limit){
$words = explode(" ",$string);
return implode(" ",array_splice($words,0,$word_limit));
}
$start = limit_words($row['bericht'],64);                       
?>

<div class="nieuws-tekst"><?php echo $start; ?><?= '...' ?></div>
    <a class="button" href="http://www.linkofwebsite.nl/laatste-nieuws/nieuwsbericht.php?id=<?php echo $row['id']; ?>">Lees meer</a>

更新:

<?php
function limit_words($string, $word_limit){
$limitReached = FALSE;
$words = explode(" ",$string);
$content = implode(" ",array_splice($words,0,$word_limit));
if (count($words) >= $word_limit) {
$limitReached = TRUE;
}

return array($limitReached, $content);
}
list($limitReached, $content) = limit_words($row['bericht'],64);
?>

<div class="nieuws-tekst">
<?= $content; ?>
<?php if ($limitReached): ?>
... <a class="button" href="http://www.linkofwebsite.nl/laatste-nieuws/nieuwsbericht.php?id=<?= $row['id']; ?>">Lees meer</a>
<?php endif ?>
</div>

这是我现在反应后得到的。但是内容会显示,而“阅读更多”按钮不会显示。

var_dump后的输出($row['bercht]);

字符串(817)“Lorem ip车子坐amet,consecur adipising elit,se do eiusmod温度附带ut Workore et Dolore magna aliqua。Ut enim ad minim veniam,quis nostrde练习ullamco实验室是nisi ut aliquip ex ea commodo的结果。Duis ate irure Dolor in reunderit in例外情况下,不承担责任,不承担责任,不承担责任,不承担责任,不承担责任,不承担责任。

这是一个非常有趣的故事,讲述的是一个伟大的故事。尽管如此,我们的实习仍然是在商品市场进行的。在自愿的基础上,我们有了比以前更好的选择。除了偶尔缺席审判,必须是正式的缺席审判

共有3个答案

贝洲
2023-03-14

只需将您的按钮代码放在if中

<?php
    if (limit_words > 64) {
        echo "<a class="button" href="http://www.linkofwebsite.nl/laatste-nieuws/nieuwsbericht.php?id=<?php echo $row['id']; ?>">Lees meer</a>"}
?>
叶桐
2023-03-14

要使其动态化,请将您的函数改为如下所示:

function limit_words($string, $word_limit){
    $limitReached = FALSE;
    $words = explode(" ",$string);
    $content = implode(" ",array_splice($words,0,$word_limit));
    if (count($words) >= $word_limit) {
        $limitReached = TRUE;
    }

    return array($limitReached, $content);
}

将您的通话方更改为

list($limitReached, $content) = limit_words($row['bericht'],64);

然后检查它:

<div class="nieuws-tekst">
    <?= $content;
  if ($limitReached) { ?>
       <a class="button" href="http://www.linkofwebsite.nl/laatste-nieuws/nieuwsbericht.php?id=<?= $row['id']; ?>">Lees meer</a>
    <?php } ?>
</div>
阎德义
2023-03-14

正如jitendrapurohhit已经说过的,你可以更新你的函数来计算单词。

如果$string是html,您必须确保您的函数正确处理它。否则您可能最终会得到无效的html。

例如

$string = '<div>some long text</div>';

然后,当您在 64 个单词后截断它时,div 将不会关闭。

这是@jitendrapurohit函数的更新版本,它还将从字符串中删除 HTML。

<?php

function limit_words($string, $word_limit)
{
    $limitReached = false;
    $words = explode(' ', $string);
    if (count($words) >= $word_limit) {
        $limitReached = true;
    }

    $content = implode(' ', array_splice($words, 0, $word_limit));

    return [$limitReached, $content];
}

list($limitReached, $content) = limit_words($row['bericht'], 64);

?>

<div class="nieuws-tekst">
    <?= $content; ?>
    <?php if ($limitReached): ?>
        <a class="button" href="http://www.linkofwebsite.nl/laatste-nieuws/nieuwsbericht.php?id=<?= $row['id']; ?>">
            Lees meer
        </a>
    <?php endif ?>
</div>

更新:
array_s切片更改其输入。所以在调用$content=内爆(“”,arraysplice($words,0,$word_limit))之后$words包含除前64个单词外的所有单词。我更新了函数。

 类似资料:
  • 在上一节中,我们通过如何写出一个包含静态页面的类来了解了一些这个框架的基本概念。我们也根据自定义路由规则重新梳理了URI。现在是时候向大家介绍动态内容和如何使用数据库了。 创建你的数据模型 数据库的运算并不是在控制类中进行的,而是在数据模型中,这样他们就可以在后面很容易地被反复使用。数据模型就是对你的数据库或其他数据存储方式进行取回、插入和更新的地方,它们的功能是展示你的数据(They repre

  • 在上一节中,我们通过写出一个包含静态页面的类了解了一些框架的基本概念, 我们也根据自定义路由规则来重定向 URI 。现在是时候向大家介绍动态内容 和如何使用数据库了。 创建你的数据模型 数据库的查询操作应该放在模型里,而不是写在控制器里,这样可以很方便的重用它。 模型正是用于从数据库或者其他存储中获取、新增、更新数据的地方。它就代表你的数据。 打开 application/models/ 目录,新

  • 我想要实现的是创建一个read more按钮,它只会在包装器中的文本中断时显示。 这是我到目前为止的代码: HTML CSS JS 有没有人建议一下如何在这段代码中实现这一点? 先进的谢谢!

  • ReadMore 展开阅读更多 平台差异说明 App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序 √ √ √ √ √ √ √ 基本使用 通过slot传入正文内容 <template> <u-read-more> <rich-text :nodes="content"></rich-text> </u-read-more> </template> <script>

  • 我正试图改变我的WooCommerce商店主页上的“阅读更多”按钮,但我不知道该怎么做。主页使用古腾堡积木展示最受欢迎的产品,当我有一个缺货的产品在那里,而不是“立即购买”按钮,它是一个说“阅读更多”。我想把“阅读更多”改为“缺货”。 我现在做的是: 将商店页面上的阅读更多更改为缺货,使用以下代码: 我不知道怎么做的是在第二个代码片段中包含一个if函数来更改{$data- 谢谢你!

  • 本文向大家介绍arduino 按钮阅读,包括了arduino 按钮阅读的使用技巧和注意事项,需要的朋友参考一下 示例 这是一个基本示例,说明如何在按下按钮时进行接线并使LED亮/灭。 取自Arduino.cc的示例。