PHP PDO Prepare Debug 印出 SQL 語法

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

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

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

PHP 取得本月份最後一天的日期

PHP 要抓取本月份的最後一天,一般都是抓下個月第一天,然後轉成 timestamp - 3600 秒 (減1秒也行,只要到上個月的前一天就好),來取得上個月的最後一天。

PHP 的 date 使用 "t" 就可以抓到此月份最後一天的日期,如下述範例:

<?php                                                                                                                                                                                                    
echo date('Y-m-t', strtotime('now')); // 2017-07-31                                                                                                                                                         
?>

註:strtotime('now') 可省略

PHP 建立物件來輸出 JSON 格式

PHP 想要輸出 JSON [{0 -> xxx, north -> ooo}],但是沒有物件(PHP: Objects),想要直接指定值,再使用 json_encode() 產生 JSON,可以使用 stdClass(); 來達成。

註:stdClass: Anonymous Objects

閱讀全文〈PHP 建立物件來輸出 JSON 格式〉

Bash Shell Pipeline 將資料一行一行分開處理 (read + while)

Linux Shell 處理資料, 大多都用 cat、sed、grep、awk ... 等等, 但這些都是對整堆資料處理, 若需要將這些資料額外一行一行拉出來另外處理的時候, 於 Shell script 要怎麼做?

閱讀全文〈Bash Shell Pipeline 將資料一行一行分開處理 (read + while)〉

Beej's Guide to Network Programming 正體中文版 免費電子書

Beej's Guide to Network Programming 這本書是寫 網路基礎 + 網路程式設計, 由淺入深的教學 (從 TCP、UDP、網路七層... 講到 IPv4、IPv6、Server-Client、blocking、non-blocking、MTU... 等等)

看這本書時, 發現網路七層已經背不起來了, 順便做點筆記:

  1. Application (應用層)
  2. Presentation (表現層)
  3. Session (會談層)
  4. Transport (傳輸層)
  5. Network (網路層)
  6. Data Link (資料鏈結層)
  7. Physical (實體層)
  8. 註: 以上七層的順序和編號是倒過來的~
  9. TCP: Stream Sockets (串流式 Sockets) - SOCK_STREAM
  10. UDP: Datagram Sockets (訊息式 Sockets) - SOCK_DGRAM

註1: 此書範例是以 Linux socket 為主.

註2: 感謝 Aaron Liao 的翻譯 + 推薦, 翻譯非常棒~

閱讀全文〈Beej's Guide to Network Programming 正體中文版 免費電子書〉