PHP 抓取沒有名字的 POST 值的方法

現在很流行使用 JSON 的傳資料,更懶惰的是連名字都沒有指定,直接將值 json_ecode() 後,直接整個 POST 過來,但是這樣子 $POST 沒有名字就無法抓取值,要怎麼做呢?

閱讀全文〈PHP 抓取沒有名字的 POST 值的方法〉

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 指定型態完整寫法

<?php
function sum(int $a, int $b): int
{
    return $a + $b;
}

function avg(int $a, int $b): float
{
    return ($a + $b) / 2;
}

// Class
class C {}
class D extends C {}
function f(C $c)
{
    echo get_class($c)."\n";
}
f(new C); // C
f(new D); // D
?>

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 傳送與接收〉