2017/12/21

PHP 將 HTTP POST field 的 . (dot) 改為 _ (underscore)

今天遇到很奇怪的行為,在 PostMan 將 HTTP POST data 丟給 PHP 以後,參數名稱裡面有 . (dot) 的字元,全部都被改為 _ (underscore) 了。像是 field 名稱為「article.title」的欄位名稱,在 PHP 底下取值必須使用 $_POST['article_title']。

原本以為 RFC 裡面有的定義 reserve word,但是找了半天找不到。最後原因是 PHP 為了支援 register_global,但是 PHP 變數名稱又不允許使用 . (dot) 當作名稱的一部分,最後就自動轉為 _ (underscore)。

這個行為不管有沒有啟動 register_global 都會出現,即使上了 PHP 7.2 都已經不支援了,這個行為仍然存在。

ref:




後來做了個簡單的測試,在 HTTP POST 依序送出二個 field data:
a.b=100&a_b=200

這時候再印出 $_POST:
var_dump($_POST);

array(1) {
  'a_b' =>
  string(3) "200"
}

所以後面的會打贏前面的 ... (所以「世界上的戰爭沒任何人贏了,只有戰爭贏了」)

2017/12/17

火線獵殺 野境 之 終極戰士 (Predator)




先說結論:這是一個破壞遊戲平衡的設計

自己 solo 試過幾次。第一次拿機槍當作主要武器,但是因為終極戰士 (Predator) 一受傷就會逃跑,所以機槍頂多賞幾發子彈以後就打不到了。

所以上面的影片,我改用傷害最大的 HIT 狙擊槍,並改成近距離的瞄準鏡,這樣可以確定一槍有讓終極戰士中彈就可以造成比機槍還要高的傷害。但很可惜,solo 還是沒有成功解開任務。

從上面的影片,可以注意到終極戰士的幾個特性,給有興趣挑戰的人參考:

  • 終極戰士的武器攻擊力很高,被擊中直接說再見
  • 終極戰士的武器類似電漿 (?) ,移動速度沒有非常快。所以被開槍以後往側邊衝刺是有機會躲掉攻擊的。
  • 如果電漿 (?) 還沒擊中你,但是你開槍擊中終極戰士且讓他決定暫時撤退,則電漿會跟著一起消失 (影片 15:30 左右)
  • 給予一定的傷害以後,終極戰士會有第二種攻擊模式:用樹藤攻擊。此種攻擊會先在地面上標示攻擊位置、傷害範圍,看到記得趕快跑 (見影片 14:20 左右的畫面)。使用此種攻擊方式時,終極戰士並不會現身。
我完到這邊就失去興趣了,所以剩下就交給其他高手研究。敬祝各位武運昌隆。

2017/12/11

刻印章二三事

身體狀況差,決定找點事情,讓自己待在電腦前面的時間少一點,於是想到來自己刻印章,順便磨練耐性。



先買了白牛角六分印石回來,並找到了刻印用的雕刻刀 (到美術用品社可以找到,非雕刻用筆刀),接下來用 6B 鉛筆的石磨拓印到印石上,有了輪廓就可以動刀了。

但不管我怎麼出力,印石就是不給下刀,花了八個小時連 1mm 的深度都不到,更別說一個完整的字了。後來不爽把電鑽拿出來鑽,發現連鑽頭要固定都很困難,更別提說要精確的鑽雕。

今天終於找到一間仍有在手工刻印的師傅請教,當聽到我難電鑽和白牛角印石拼命時,被揶揄了一番。原因是牛角不只是硬,還帶有韌性,所以不僅需要專用的刻印用具,還需要非常銳利。如果在遇到更硬的印石,可能會改成機械噴沙等半人工作業方式雕刻。


回歸正題,一般練習用的印石,多半為石頭,硬度較低也比較容易碎裂,但至少不需要拿電鑽拼命。這類的印石像是「巴林石」等,以前較多,但現在比較難在鎖印店找到了,可以在網路拍賣上搜尋。




以下廣告。

目前問出來,僅知道新竹市的「金玉堂篆刻工作室」這間店還有手工雕刻印章,地址是 新竹市中山路 39 號。對印章有興趣的也可以過去找老闆聊聊。