diff options
Diffstat (limited to 'public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html')
| -rw-r--r-- | public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html b/public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html index da4cfea..a2bf44c 100644 --- a/public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html +++ b/public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html @@ -68,7 +68,7 @@ 注意: これはボツ問なので、得られたトークンを PHPerKaigi で入力してもポイントにはならない。 </p> - <pre language="php" linenumbering="unnumbered"> + <pre class="highlight" language="php" linenumbering="unnumbered"> <code><?php $π = $argv[1] ?? null; @@ -99,7 +99,7 @@ echo "Failed.\n"; ソースを見るとわかるとおり、<code>$argv[1]</code>を参照している。それを<code>$π</code>なる変数に代入しているので、円周率を渡してみる。 </p> - <pre language="shell-session" linenumbering="unnumbered"> + <pre class="highlight" language="shell-session" linenumbering="unnumbered"> <code>$ php Q.php 3.14 Failed.</code> </pre> @@ -108,7 +108,7 @@ echo "Failed.\n"; 失敗してしまった。精度を上げてみる。 </p> - <pre language="shell-session" linenumbering="unnumbered"> + <pre class="highlight" language="shell-session" linenumbering="unnumbered"> <code>$ php Q.php 3.1415 Failed.</code> </pre> @@ -121,7 +121,7 @@ Failed.</code> 最初にトークンが得られるのは、小数点以下 16 桁目まで入力したときで、こうなる。 </p> - <pre language="shell-session" linenumbering="unnumbered"> + <pre class="highlight" language="shell-session" linenumbering="unnumbered"> <code>$ php Q.php 3.1415926535897932 Token: #YO</code> </pre> @@ -137,7 +137,7 @@ Token: #YO</code> 短いので頭から追っていく。 </p> - <pre language="php" linenumbering="unnumbered"> + <pre class="highlight" language="php" linenumbering="unnumbered"> <code>$π = $argv[1] ?? null; if ($π === null) { exit('No input.'); @@ -152,7 +152,7 @@ Token: #YO</code> 入力のバリデーション部分。数値のみ受け付ける。 </p> - <pre language="php" linenumbering="unnumbered"> + <pre class="highlight" language="php" linenumbering="unnumbered"> <code>$s = implode(array_map(chr(...), str_split($π, 2)));</code> </pre> @@ -164,14 +164,14 @@ Token: #YO</code> 例えば、<code>$π</code>が<code>'656667'</code>だったとすると、<code>65</code>、<code>66</code>、<code>67</code>に対応した<code>'A'</code>、<code>'B'</code>、<code>'C'</code>へと変換され、<code>'ABC'</code>になる。 </p> - <pre language="php" linenumbering="unnumbered"> + <pre class="highlight" language="php" linenumbering="unnumbered"> <code>$π = '656667'; $s = implode(array_map(chr(...), str_split($π, 2))); echo $s; // => ABC</code> </pre> - <pre language="php" linenumbering="unnumbered"> + <pre class="highlight" language="php" linenumbering="unnumbered"> <code>preg_match('/(\x23.+?) /', $s, $m); $t = $m[1] ?? '';</code> </pre> @@ -184,7 +184,7 @@ $t = $m[1] ?? '';</code> なお、<code>#</code>を直接書いていないのは、<code>/#.+?) /</code>と書くと、<code>#.+?)</code>という意図せぬトークンが登録されてしまうからである。 </p> - <pre language="php" linenumbering="unnumbered"> + <pre class="highlight" language="php" linenumbering="unnumbered"> <code>if (md5($t) === '056e831a4146bf123e8ea16613303d2e') { echo "Token: {$t}\n"; } else { |
