PHP 三元運算子(?:) 與 NULL運算子(??)差異

很多程式語言都有三元運算子,而 PHP 在 7.x 後,有多一個 ?? 的語法,可以簡化一些常用的語法。

例如:

  • $arg = isset($_GET['arg']) ? $_GET['arg'] : '';

可簡寫成

  • $arg = $_GET['arg'] ?? '';

閱讀全文〈PHP 三元運算子(?:) 與 NULL運算子(??)差異〉

PHP str_replace 陣列的對應技巧

PHP 的 str_replace()str_ireplace() 在使用上,剛開始覺得有些不太直覺的地方,不過,後來發現應該是文件沒有看仔細的因素~

  • 註:str_ireplace() 是不管大小寫,用法都一樣,此篇範例都用 str_ireplace() 來做。

閱讀全文〈PHP str_replace 陣列的對應技巧〉

PHP PDO Prepare Debug 印出 SQL 語法

PHP 都建議使用 Prepare 來避免 SQL injection 等等的,但是在 Debug 的時候,最困擾的就是如何把當下 SQL 語法印出來。

此套件支援 Debug 主要是可以將 SQL 語法印出。

閱讀全文〈PHP PDO Prepare Debug 印出 SQL 語法〉

抓 Guzzle Http Exception error

PHP 對 API 發 Request 常用 CURL,然後 Guzzle 是把 CURL 再包一層來做更多的進階操作。

Guzzle 底層使用 CURL,主要拿來呼叫 API、POST、GET 發送 HTTP Request。

不過 Guzzle 的版本也很多,各個版本抓取 Exception 的方式可能也不一樣,此篇使用 Guzzle 7 的版本。

閱讀全文〈抓 Guzzle Http Exception error〉

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 解法〉