3

我有内容,我试图限制使用此查询:

if(strlen($news_content < 35)){
         $news_content = substr($news_content, 0, 30) . "";
    }

但是由于某种原因,它并没有限制字符。或者是我的编码(我确定这就是为什么它不起作用)有点偏离。

这是完整的代码:

<?php

    $amount_get = mysql_query("SELECT * FROM comment WHERE articleid='" . mysql_real_escape_string($_GET['id']) . "'"); 
    $comments = mysql_num_rows($amount_get);            

    $grab = mysql_query("SELECT * FROM articles WHERE id='" . mysql_real_escape_string($_GET['id']) . "' LIMIT 1");    
    $grab = mysql_query("SELECT id, news_title, news_content, news_author, news_day, news_month, news_year, news_date FROM articles ORDER BY id DESC limit 3"); 
    $news_day =$row['news_day'];
    $news_month =$row['news_month'];
    $news_year =$row['news_year'];
    $news_content =$row['news_content'];

    if(strlen($news_content < 35)){
                        $news_content = substr($news_content, 0, 30) . "";
                    } 

    elseif (mysql_num_rows($grab)==0) {
    echo "<div class='alert alert-note-x'>Sorry, it looks like their are no articles posted!</div>";
}
    while($row = mysql_fetch_array($grab)){

?>

<div class="post-container">
    <div class="post">
    <div class="left">
    <div class="date"><span class="day"><?php echo $row['news_day'] ?></span> <span class="month"><?php echo $row['news_month'] ?></span> <span class="year"><?php echo $row['news_year'] ?></span></div></div>
    <div class="postcontent"><h5 class="posttitle"><a href="#/media/<?php echo $row['id'] ?>.<?php echo stripslashes(str_replace(" ", "-", $row['news_title'])); ?>"><?php echo stripslashes($row['news_title']); ?></a></h5>                       

        <?php echo $row['news_content'] ?>
        <p> (READ MORE)</p>
        <p>Comments (<?php echo $comments ?>)</p>
        </div>
</div>​
</div>  

我只是想限制“news_content”,但我不知道我在哪里搞砸了。谢谢!

4

3 回答 3

2

尝试更改第一行:

if(strlen($news_content < 35)) {...}

至:

if(strlen($news_content) > 35) {

这包括切换<to >,因为如果它的长度超过 35 个字符而不是少于 35 个字符,大概你想截断它?

我认为通常有更好的截断方法。您的方法可能会在一个单词中间突然切断文本。看看http://www.the-art-of-web.com/php/truncate/#.UNEbnmdaerIhttp://www.ambrosite.com/blog/truncate-long-titles-to-the-最近的整个单词使用 php-strrpos以获得其他想法。

于 2012-12-19T01:40:01.077 回答
1

在您不引用的 html 代码中<?php echo $news_content?>,但是<?php echo $row['news_content']?>,因此忽略了缩短的版本。

将其与建议的更改相结合以更改strlen($row['news_content']) < 35> 35使其正常工作。

于 2012-12-19T02:03:48.940 回答
-1

以下应该工作:

if (strlen($news_content) < 35))
于 2012-12-19T01:41:26.817 回答