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) {

<これには、をに切り替えることが含まれ>ます。おそらく、それが 35 文字よりも長い場合は切り捨てたいので、 ?

一般的に、切り捨てるにはもっと良い方法があると思います。あなたのアプローチでは、単語の途中でテキストが突然途切れる可能性があります。http://www.the-art-of-web.com/php/truncate/#.UNEbnmdaerIまたはhttp://www.ambrosite.com/blog/truncate-long-titles-to-the-をご覧ください。他のアイデアについては、nearest-whole-word-using-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 に答える