PHP 圖片轉成 Base64 image

網頁的圖片要呈現,使用 img src 指定圖片的路徑位置外,還可以將圖片內容讀進來後,指定型態,使用 Base64 將 binary 轉換成文字,直接放在裡面,要怎麼做呢?

閱讀全文〈PHP 圖片轉成 Base64 image〉

PHP CURL 遇到 tls12_check_peer_sigalg wrong signature type 解法

PHP 使用 CURL 要爬某個頁面,或者某個網站的 API,怎麼爬都是空白頁面,又沒有被擋,把 CURL 的 Error Info 印出來後,看到下述錯誤:

curl: (35) error:1414D172:SSL routines:tls12_check_peer_sigalg:wrong signature type

閱讀全文〈PHP CURL 遇到 tls12_check_peer_sigalg wrong signature type 解法〉

PHP 於 Header 送 noindex 給 Crawler bot

某些頁面不想要讓 Search engine (Google、Bing) 的 crawler bot 爬,有幾種方法可以使用:

  1. HTML Meta Tag
  2. 使用 robots.txt
  3. 於 HTTP Header 送 X-Robots-Tag

此篇主要紀錄 HTTP Header 的作法

閱讀全文〈PHP 於 Header 送 noindex 給 Crawler bot〉

PHP 強制使用「強型態」的模式

PHP 7 之後,function、Class 等等都可以指定型態、回傳的型態,但是雖然寫 int,傳進來還是可以傳 float,要怎麼強制型態不對就直接出錯誤呢?

function 指定型態完整寫法

  1. <?php
  2. function sum(int $a, int $b): int
  3. {
  4. return $a + $b;
  5. }
  6. function avg(int $a, int $b): float
  7. {
  8. return ($a + $b) / 2;
  9. }
  10. // Class
  11. class C {}
  12. class D extends C {}
  13. function f(C $c)
  14. {
  15. echo get_class($c)."\n";
  16. }
  17. f(new C); // C
  18. f(new D); // D
  19. ?>

PHP 的型態:PHP: Type declarations

閱讀全文〈PHP 強制使用「強型態」的模式〉

PHP 於 CLI 吃 URL 參數 給 $_GET 使用

PHP 於 CLI 界面,想要將網址的參數丟進去,然後讓 $_GET 直接吃到,該怎麼做呢?

註:使用情境在於網頁程式寫好,但是想要測試的時候,於 CLI 想要使用同樣頁面來做測試,可以這樣子做。

閱讀全文〈PHP 於 CLI 吃 URL 參數 給 $_GET 使用〉

將 \x 開頭編碼的資料使用 HTTP POST 傳送與接收

\x 開頭編碼是 16進位的數字,可以直接轉成一般文字輸出,可詳見此篇:將 \x 開頭編碼的資料轉成中文輸出

但是想要將 \x 於 html input / textarea 傳送,再用 $_GET、$_POST 等接收 並且做轉換,要怎麼做呢?

閱讀全文〈將 \x 開頭編碼的資料使用 HTTP POST 傳送與接收〉

PHP 無法看到、寫入 /tmp 的解法

PHP 在寫入檔案的時候(Debain Linux),函式回傳值都是正確的,但是檔案就是沒有出現,到底發生什麼事情呢?

範例程式

  1. <?php
  2. var_dump(file_put_contents('/tmp/abc.txt', 'abc', FILE_APPEND | LOCK_EX)); // int(3)
  3. ?>

回傳 3 bytes 都是正確的,但是就是 /tmp/abc.txt 沒有產生

閱讀全文〈PHP 無法看到、寫入 /tmp 的解法〉