PHP、Python CLI 如何直接寫到 STDERR

PHP、Python CLI 寫 Script,常常會包入 Shell Script 裡面,但是通常都會被導向 > STDOUT

想要安插 Debug message 秀在畫面上(常會遇到一些 Warn,但是那些 Warn 不知道在哪些參數才會發生),所以乾脆寫 STDERR 來看。

閱讀全文〈PHP、Python CLI 如何直接寫到 STDERR〉

small-static-http:使用 PHP Swoole 寫的靜態 HTTP server

現在靜態檔基本上都給 Nginx 噴,這個 http server 號稱小又快

看 Source code 是使用 PHP + Swoole 來實作的,剛 release 1.0.0 版,先記錄一下,有空再來玩玩看~

閱讀全文〈small-static-http:使用 PHP Swoole 寫的靜態 HTTP server〉

PHP 接收 tail 持續 follow 的資料

Linux 要接收 pipe 來的資料,可以參考此篇:使用 PHP 接收 Linux 中 pipe 的 輸出資料

要持續接收資料,還是可以依照上述那篇文章裡面的程式碼,只是要測試一下,此篇把測試結果在紀錄一下~

閱讀全文〈PHP 接收 tail 持續 follow 的資料〉

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〉