PHP 到現在20年了,有個專案將 PHP 從 1995 ~ 2014 年的開發歷程(使用 Git Log 的紀錄),用 gource + ffpmeg 直接轉成可以看的影片,非常有趣。
標籤: php
PHP 效能分析工具 APD 安裝方式
要分析 PHP 程式的效能,花費時間或 CPU 的使用情況等等,可以使用 PHP APD(Advanced PHP debugger) 來快速達成。
註:此篇是於 Debian / Ubuntu Linux 安裝
PHP rawurlencode 與 urlencode 的差異
URL Encode 有分 rawurlencode() 與 urlencode() 這兩種,兩者有什麼差異呢?
PHP 截出 圓形(橢圓形)的圖片
PHP 畫出 透明背景 的 圓形 圖片程式
PHP 想要用 GD 來畫出圓形、橢圓形等等的圖形,該怎麼畫呢?背景想要是透明的,要怎麼做呢?
PHP 使用 SHA256、SHA512 等 演算法的寫法
PHP 有 md5()、sha1() ... 等等 function,不過現在建議使用 SHA224 以上(註),在 PHP 要怎麼寫呢?
註:下述摘錄自此篇:Mobilefish.com - MD5, SHA1, SHA224, SHA256, SHA384, SHA512 and RIPEMD160 hash generator
- MD5 is considered cryptographically broken and is unsuitable for further use.
- The SHA1 algorithm might not be secure enough for ongoing use. It is recommended not to use SHA1.
- SHA224: SHA224 produces a 224-bit (28-byte) hash value, typically rendered as a hexadecimal number, 56 digits long.
- SHA256: SHA256 produces a 256-bit (32-byte) hash value, typically rendered as a hexadecimal number, 64 digits long.
- SHA384: SHA384 produces a 384-bit (48-byte) hash value, typically rendered as a hexadecimal number, 96 digits long.
- SHA512: SHA512 produces a 512-bit (64-byte) hash value, typically rendered as a hexadecimal number, 128 digits long.
- RIPEMD160: RIPEMD160 produces a 160-bit (20-byte) hash value, typically rendered as a hexadecimal number, 40 digits long.
PHP 送 301 / 302 轉址的 Header
以往 301 我都是設在 Apache 裡面,如下:
RewriteRule ^news$ http://example.com/news/ [R=301,NE,L]
想要在 PHP 送 301 / 302 Redirect 的 Header 要如何寫?
HTTP 定義 301 / 302 的 Header 意義:
- 301: 永久轉址 (Permanently Moved)
- 302: 臨時轉址 (Temporarily Moved)
PHP 取得 Git 的 branch name
想要取得專案中目前在 Master 或 Branch,可以判斷要去抓不同的 config,可以使用此 function。
<?php function get_git_branch_name() { $git_head = './.git/HEAD'; return (file_exists($git_head)) ? implode('/', array_slice(explode('/', file_get_contents($git_head)), 2)) : ''; } ?>
註:$git_head 的路徑請自行修改設定。
使用方式:
<?php print_r(get_git_branch_name()); // master ?>
感謝 Fwolf 的建議,用 system 的指令執行:git branch | grep '*' | awk '{print $2}' ,可以解決 submodule 抓不到 branch 的問題
PHP Markdown Parser 函式庫
將 Markdown 語法 轉譯成 HTML 的 PHP Library
詳細可見:
用法範例
<?php include('Parsedown.php'); $Parsedown = new Parsedown(); echo $Parsedown->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p> ?>
教學文件、影片
PHP 使用 geopt() 解析 CLI 參數
PHP 於 CLI 環境,想要抓取 Shell 常用的 Option,如 -h、--help .. 等等,要怎麼寫呢?(常用 argv / argc)