WordPres博客實現隨機顯示一句話經典句子、名人名言的兩種方法

2018年10月7日12:54:01 11 3,433

經常瀏覽博客的人可能都知道一言(至少大多數人知道吧),一言主要提供一句話服務。很多時候,我們總會看到有那么一兩個句子能穿透你的心。而一言就是把這些句子匯聚起來,形成一言網絡,以傳遞更多的感動。簡單來說,一言指的就是一句話,可以是動漫中的臺詞,也可以是網絡上的各種小段子。或是感動,或是開心,有或是單純的回憶。同時,一言網絡也為我們開放了一句話api接口,我們可以通過一定手段,把一言的經典句子調用到自己博客,Jane看到很多博客都已實現,這個功能Jane感覺很是高大上,于是也弄了一個。

實現方法很簡單,將以下代碼添加在你希望顯示的地方即可。

  1. <script?type="text/javascript"?src="https://api.lwl12.com/hitokoto/main/get?encode=js&charset=utf-8"></script><div?id="lwlhitokoto"><script>lwlhitokoto()</script></div>

這種方法確實簡單,不過Jane不太喜歡,因為調用的是一言全站數據,就顯有些得紛繁復雜了,各門各類甚至很污的句子也有存在。

所以Jane再為大家介紹另外一種方法,這種方法的好處就是你可以把自己喜歡的經典句子添加進去。

接下來我向大家介紹實現方法。以下代碼來自張戈博客。

一、代碼部署

在根目錄新建文件夾hitokoto,并將以下代碼保存為 index.php放在文件夾內。

  1. <?php
  2. //獲取句子文件的絕對路徑
  3. //如果你介意別人可能會拖走這個文本,可以把文件名自定義一下,或者通過Nginx禁止拉取也行。
  4. $path = dirname(__FILE__);
  5. $file = file($path."/hitokoto.txt");
  6. //隨機讀取一行
  7. $arr = mt_rand( 0, count( $file ) - 1 );
  8. $content = trim($file[$arr]);
  9. //編碼判斷,用于輸出相應的響應頭部編碼
  10. if (isset($_GET['charset']) && !emptyempty($_GET['charset'])) {
  11. $charset = $_GET['charset'];
  12. if (strcasecmp($charset,"gbk") == 0 ) {
  13. $content = mb_convert_encoding($content,'gbk', 'utf-8');
  14. }
  15. } else {
  16. $charset = 'utf-8';
  17. }
  18. header("Content-Type: text/html; charset=$charset");
  19. //格式化判斷,輸出js或純文本
  20. if ($_GET['format'] === 'js') {
  21. echo "function hitokoto(){document.write('" . $content ."');}";
  22. } else {
  23. echo $content;
  24. }

二、自定義句子文本

新建文件hitokoto.txt并上傳到文件夾hitokoto,然后把你喜歡的句子寫入文本,注意一行一個句子,當然如果想要現成的,你可以下載張戈博客提供文件,直接上傳即可。

三、調用

將以下代碼放在你希望顯示的地方。

  1. <script type="text/javascript" src="https://你的域名/hitokoto/?format=js&charset=utf-8"></script>
  2. <div id="hitokoto"><script>hitokoto()</script></div>

四、美化

以上代碼輸出的只是純文本,如果你對其樣式不滿意,可以通過以下css樣式美化,當然你也可以自己寫。

  1. #hitokoto{
  2. border-left: 5px solid #2f889a;
  3. border-right: 5px solid #2f889a;
  4. background-color: #ebebeb;
  5. padding: 10px;text-align: center;
  6. color: #095AD4;
  7. margin: 5px 0 5px 0;
  8. }

上述兩種方法各有優點,用哪一種就看自己的需求了,如果你嫌麻煩,建議用第一種,一段代碼即可搞定,如果想要添加自己喜歡的句子,就只能使用第二種方法了,不過相對麻煩一點,各位按需所取吧。

weinxin
APP下載
微信掃描左側二維碼,下載Jane博客APP,關注我...

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前評論:11   其中:訪客  5   博主  6

    • avatar wang 回復TA

      博主,我發現了一個問題,我用你的php代碼會報GET錯誤,用原文的代碼(https://zhang.ge/5127.html)就沒有錯,不知道為啥。

      • avatar Action 回復TA

        這個功能很好玩呀。支持一下。

        • avatar maqingxi 回復TA

          覺得第二種方法更實用,放在哪里呢,我要想一想,先收藏了方法再說。

          • avatar 演員 回復TA

            貴州老鄉支持下!

            • avatar 明月清風 回復TA

              所謂的一言嗎,請問大佬?看起來很貼心的啊。