PHP 依固定長度切割字串(unpack)

切割字串通常都是有某些特殊分隔用 split 來分隔, 而另外一種是固定長度的切割法, 就是第一欄長度是 20, 第二欄長度是 15 .. 等, 遇到這種可以使用 unpack 來切割.

閱讀全文〈PHP 依固定長度切割字串(unpack)〉

Amazon EC2 取得自己的外部 IP

Amazon EC2 開機會自動取得自己 10.x.x.x 的 IP, 要抓取實體 IP / Hostname 等, 要用下述方法抓:

  • 取得 IP: wget -q -O /tmp/public-ip http://169.254.169.254/latest/meta-data/public-ipv4
  • 取得 Hostname: wget -q -O /tmp/public-hostname http://169.254.169.254/latest/meta-data/public-hostname
  • 註: 169.254.169.254 是特殊 IP, 非 EC2 無法用此方法抓取.

閱讀全文〈Amazon EC2 取得自己的外部 IP〉

Amazon EC2 使用操作筆記 (使用 Elasticfox)

Amazon Elastic Compute Cloud (Amazon EC2) 是虛擬主機的服務, 主要是可以隨時加機器、硬碟等, 可以非常快速的擴充.

不過也有些缺點, 就是在上面的資料是不會被儲存的, 若是機器當掉、強制關機等等, 資料就會消失. IP 不固定等問題.

Amazon 針對這些問題也都有解法:

  • 資料儲存: 用 Amazon Elastic Block Store 解決此問題(而且可以動態新增硬碟並掛載上去), 並可隨時為此硬碟做 Snapshot.
  • IP 不固定: 用 Elastic IP Addresses 解決此問題, 可以先把 IP 先租起來放. 

這幾天照文件都玩過一次, 寫寫筆紀做紀錄.

閱讀全文〈Amazon EC2 使用操作筆記 (使用 Elasticfox)〉

PHP 符合 RFC 規範的 Email 驗證程式

要驗證 Email 是否符合規格, 大部分是使用下面的簡單 Regular expression 來作驗證 (下面兩者 regex 是一樣的, 只是 php / rails 版的寫法而已)

  • preg_match('/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/', $email) // 正確: true, 錯誤: false
  • validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message => '格式錯誤'

使用上述的檢查後, 再加上 PHP 驗證 Email -檢查 DNS 的 MX 是否有通, 再來就該直接寄信去驗證了.

閱讀全文〈PHP 符合 RFC 規範的 Email 驗證程式〉