:::

6-3-4 擷取摘要

  1. 目前會將完整內容呈現在畫面上,造成首頁看起來很龐大,因此,可以從內容擷取出固定字數來呈現即可。
  2. 修改index.php
    $all_news = [];
    while ($news = $sth->fetch(PDO::FETCH_ASSOC)) {
        ...略...
    
        // 產生摘要
        $news['summary'] = mb_substr($news['content'], 0, 130);
        // 過濾整個陣列
        $news = filter_var_array($news, FILTER_SANITIZE_STRING);
        $all_news[] = $news;
    }

    mb_substr() 是多語系的文字裁切工具,可以將文字依照起點、字數來裁切

  3. 修改templates/card.tpl,將原本的{$news.content}改為:
    <p class="card-text">{$news.summary}</p>

  4. 讓文章字數超過摘要字數的,都加上 ... 符號
    $all_news = [];
    while ($news = $sth->fetch(PDO::FETCH_ASSOC)) {
        ...略...
    
        // 若是本文超過130個字就加上...
        $more = mb_strlen($news['content']) > 130 ? '...' : '';
        // 產生摘要
        $news['summary'] = mb_substr($news['content'], 0, 130) . $more;
        // 過濾整個陣列
        $news = filter_var_array($news, FILTER_SANITIZE_STRING);
        $all_news[] = $news;
    }

    mb_strlen() 是多語系的字數計算工具,「.」在PHP中則是字串運算符, 用來連接字串和變數、常數或函數用的!

  5. 若是想日後可以方便修改摘要字數,建議將之設定到config.php中,如:
    <?php
    ...略...
    
    // 專案絕對路徑
    define('_PATH', 'D:/xampp8/htdocs');
    // 專案網址
    define('_URL', 'http://localhost');
    // 摘要字數
    define('_SUMMARY_COUNT', 130);

    然後再修改index.php,將原本的130改為常數即可

    // 若是本文超過設定字數就加上...
    $more = mb_strlen($news['content']) > _SUMMARY_COUNT ? '...' : '';
    // 產生摘要
    $news['summary'] = mb_substr($news['content'], 0, _SUMMARY_COUNT) . $more;

     


:::

書籍目錄

展開 | 闔起

https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D52%26tbdsn%3D1809

計數器

今天: 4368436843684368
昨天: 5069506950695069
總計: 5134816513481651348165134816513481651348165134816