MW211 EXIT

devlog
PEAR/インストール物件を確保
2013年10月09日
┌──────────────────────────────────────┐
│pear download-all                                                           │
└──────────────────────────────────────┘
を実行すれば、インストール物件を(取得できるものだけ)全部ダウンロードできる。
分類:PEAR
PHP/phpinfo()をコマンドラインから
2013年10月08日
「php.exe」のあるフォルダにて
┌──────────────────────────────────────┐
│> php.exe -i                                                                │
└──────────────────────────────────────┘
と、「-i」オプション付きで実行すると、ずらずらと情報が画面出力される。

例によって、「clip」コマンドと併用して、バッファに吐き出し
エディタに貼り付けると便利かも。
┌──────────────────────────────────────┐
│> php.exe -i | clip                                                         │
└──────────────────────────────────────┘
分類:PHP
Windows/管理者権限実行時のパスに注意
2013年10月07日
バッチファイルを実行する場合、管理者権限がないとアクセスが拒否される場合がある。

これを解決するためには、右クリックメニューから
「管理者として実行」を選べばよい。

但し、これを行った場合、通常通り実行した時と違う挙動がある。

実行バッチのパスに半角括弧「()」が混じっていると正しく動作しないのだ。
#通常通りの実行であれば問題ない

対処方法としては、実行バッチを半角括弧が混じらない位置に移動して実行する
といったところか。
分類:Windows
文字コード/シフトJISをUTF-8に見立てた場合・続き
2013年10月04日
シフトJIS「0x??C?」~「0x??F?」はUTF-8的にはエラーとなると書いたが
これは文字列の最後にこれが来る場合に限られる。

例えば、以下の場合
  陸(0x97A4)…○
  上(0x8FE3)…×
「陸上」は「上」が最後に来るのでエラー。
でも「上陸」は「上」が最後に来ないのでエラーとはならない。

単純に「上」という字がヤバいと錯覚すると、「上陸」がOKなのが想定外となり
混乱するので注意。
分類:文字コード
文字コード/シフトJISをUTF-8に見立てた場合
2013年10月03日
UTF-8では、バイト毎に、先頭4ビットに、以下のような意味を持たせている

「0???」→1バイト文字
「10??」→2バイト文字以上の2バイト目以降
「110?」→2バイト文字の1バイト目
「1110」→3バイト文字の1バイト目
「1111」→4バイト文字の1バイト目

よって、シフトJISの2バイト文字で、「11??」が2バイト目の前半にはまると、
それはUTF-8的にはエラーとなる(後続にバイトが続かないから)。
#但し、「10??」が1バイト目の前半にはまっても大目に見てくれるようだ

つまり、シフトJIS「0x??C?」~「0x??F?」はUTF-8的にはエラーとなる。
分類:文字コード
PHP/DateTimeインスタンスのコピー
2013年10月01日
┌──────────────────────────────────────┐
│$newDateTime = new DateTime();                                              │
│$newDateTime2 = $newDateTime;                                               │
│$newDateTime2->modify('+1 minutes');                                        │
└──────────────────────────────────────┘
上記のように、DateTimeクラスのインスタンスをコピーして
コピー先を更新すると、コピー元も更新される。
(つまり「$newDateTime」の方も1分進んでしまう)

ちょうど、アドレス渡しで更新した時のような感じだ。

では、値渡しのような別物をコピーするには?
┌──────────────────────────────────────┐
│$newDateTime2 = new DateTime($newDateTime->format('Y-m-d H:i:s'));          │
└──────────────────────────────────────┘
とか?(試していないので実際に動作するかはわからない)

いやいや、もっと簡単な方法がある。「clone」だ。
こんな感じ。
┌──────────────────────────────────────┐
│$newDateTime = new DateTime();                                              │
│$newDateTime2 = clone $newDateTime;                                         │
│$newDateTime2->modify('+1 minutes');                                        │
└──────────────────────────────────────┘
これだと「$newDateTime」の方には影響がない。
分類:PHP
前へ 1 2 3 次へ