Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

年份: 2017 年

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

Posted on 2017 年 12 月 21 日2021 年 3 月 12 日 By 日落 在〈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:

  • https://stackoverflow.com/a/3742678/8681141
  • PHP: Variables From External Sources – Manual


後來做了個簡單的測試,在 HTTP POST 依序送出二個 field data:

a.b=100&a_b=200

這時候再印出 $_POST:

var_dump($_POST);

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

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

Tags:PHP

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

Posted on 2017 年 12 月 17 日2021 年 3 月 12 日 By 日落 在〈火線獵殺 野境 之 終極戰士 (Predator)〉中尚無留言

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

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

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

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

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

刻印章二三事

Posted on 2017 年 12 月 11 日2021 年 3 月 12 日 By 日落 在〈刻印章二三事〉中尚無留言

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

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

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

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

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


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

IBM DNS 9.9.9.9 測試

Posted on 2017 年 11 月 21 日2021 年 3 月 12 日 By 日落 在〈IBM DNS 9.9.9.9 測試〉中尚無留言

看到新聞:「IBM宣布推出免費DNS轉址服務 Quad9,只要將DNS伺服器設為9.9.9.9 即可阻擋惡意網站」,聽起來頗有趣的,所以玩了一下。

我這邊比較偏重 DNS 回應速度,自家機器在中華電信的線路上,先用 168.95.1.1 來看回應速度:
johnroyer@box:~$ ping -c 5 168.95.1.1
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=1 ttl=247 time=11.5 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=247 time=11.8 ms
64 bytes from 168.95.1.1: icmp_seq=3 ttl=247 time=11.9 ms
64 bytes from 168.95.1.1: icmp_seq=4 ttl=247 time=10.5 ms
64 bytes from 168.95.1.1: icmp_seq=5 ttl=247 time=10.3 ms
--- 168.95.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 10.377/11.248/11.921/0.664 ms


再來看看 Google DNS 8.8.8.8:

johnroyer@box:~$ ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=26.1 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=28.7 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=22.0 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=15.7 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=57 time=33.0 ms
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 15.702/25.163/33.086/5.935 ms

最後看一下 9.9.9.9 的回應速度:

johnroyer@box:~$ ping -c 5 9.9.9.9
PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.
64 bytes from 9.9.9.9: icmp_seq=1 ttl=52 time=108 ms
64 bytes from 9.9.9.9: icmp_seq=2 ttl=52 time=107 ms
64 bytes from 9.9.9.9: icmp_seq=3 ttl=52 time=108 ms
64 bytes from 9.9.9.9: icmp_seq=4 ttl=52 time=113 ms
64 bytes from 9.9.9.9: icmp_seq=5 ttl=52 time=108 ms
--- 9.9.9.9 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 107.934/109.402/113.095/1.905 ms

目前 9.9.9.9 的回應速度還差了一個數量級,所以如果瀏覽器開一個結構比較複雜的網頁,說不定開啟速度會慢到一秒。然後我比較希望有病毒樣本,所以不希望那麼安全的 DNS (拖走)


另外,速度比較慢的原因可能是網路節點問題。用 mtr 掃了一下 route:

                             My traceroute  [v0.85]
box (0.0.0.0)                                          Tue Nov 21 14:51:00 2017
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.0.1                       0.0%     4    0.5   0.9   0.4   1.8   0.0
 2. h254.s98.ts.hinet.net             0.0%     4    9.1   9.7   9.1  11.0   0.6
 3. hc-c6r1.router.hinet.net          0.0%     4    8.7   9.2   8.7   9.8   0.0
 4. sczs-3202.hinet.net               0.0%     4    8.6  11.9   8.6  20.4   5.7
 5. TPDT-3012.hinet.net               0.0%     3   13.0  13.6  13.0  14.7   0.7
 6. 220-128-14-90.HINET-IP.hinet.net  0.0%     3   11.2  23.0  11.2  46.7  20.5
 7. pcpd-3212.hinet.net               0.0%     3   10.9  11.3  10.9  11.8   0.0
 8. pcpd-3211.hinet.net               0.0%     3   11.7  13.4  10.5  18.0   4.0
 9. 72.14.202.178                     0.0%     3   10.3  11.2  10.3  12.0   0.7
10. 108.170.244.129                   0.0%     3   12.4  11.6  10.9  12.4   0.0
11. 72.14.238.189                     0.0%     3   11.1  13.2  11.1  16.2   2.6
12. google-public-dns-a.google.com    0.0%     3   11.2  11.6  11.2  11.9   0.0

8.8.8.8 其實沒有連到國外,Google 在台灣國內就有 DNS 節點。

同樣方法看一下 9.9.9.9 的 route:

                             My traceroute  [v0.85]
box (0.0.0.0)                                          Tue Nov 21 14:52:53 2017
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.0.1                       0.0%     3    0.4   1.0   0.4   2.1   0.7
 2. h254.s98.ts.hinet.net             0.0%     3    9.0   9.0   9.0   9.1   0.0
 3. hc-c6r1.router.hinet.net          0.0%     3   10.3  10.7   9.0  13.0   2.0
 4. sczs-3201.hinet.net               0.0%     3   16.2  23.3   9.8  43.8  18.0
 5. TPDT-3011.hinet.net               0.0%     3   11.3  12.6  11.3  13.5   1.0
 6. r4103-s2.tp.hinet.net             0.0%     2   12.9  12.2  11.5  12.9   1.0
 7. r4103-s2.tp.hinet.net             0.0%     2   12.0  23.4  12.0  34.7  16.0
 8. xe-0-1-0-3-5.r00.osakjp02.jp.bb.  0.0%     2   48.0  54.8  48.0  61.6   9.6
 9. ae-5.r25.osakjp02.jp.bb.gin.ntt.  0.0%     2   47.6  50.8  47.6  54.0   4.5
10. ae-0.r20.sngpsi07.sg.bb.gin.ntt.  0.0%     2  117.4 114.2 110.9 117.4   4.6
11. ae-1.r01.sngpsi03.sg.bb.gin.ntt.  0.0%     2  106.7 107.4 106.7 108.1   0.0
12. ge-100-0-0-11.r01.sngpsi03.sg.ce  0.0%     2  116.8 114.4 112.0 116.8   3.3
13. dns.quad9.net                     0.0%     2  109.9 108.7 107.6 109.9   1.4

終端的節點在美國,所以速度比較慢是一定的啦。在多給他們一點時間吧。

Tags:資訊學習

PostgreSQL 入門教材

Posted on 2017 年 11 月 17 日2021 年 3 月 12 日 By 日落 在〈PostgreSQL 入門教材〉中有 4 則留言

PostgresSQL 官方文件實在缺東缺西,只好找第三方教學文件來看了:

  • First steps – PostgreSQL wiki
  • Postgres Guide
  • 當然 awesome 系列是必備的:dhamaniasad/awesome-postgres
這次會跑來看 PostgreSQL 主要是 Gitlab 對 MySQL 的支援實在有點爛,做 migration 會莫名其妙卡住,索性把 Gitlab 的資料丟到 PostgreSQL,但其他專案仍維持在 MySQL 運行。
Tags:PostgreSQL, 生活雜記

文章分頁

1 2 ... 11 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.