MW211 EXIT

devlog
PHP/文字コード変換
2012年05月09日
「①」←→「e291a0」(UTF-8)
上記のように文字とそのコードを変換する方法。
┌──────────┬───────────────────────────┐
│「①」─→「e291a0」│bin2hex('①')                                         │
├──────────┼───────────────────────────┤
│「①」←─「e291a0」│hex2bin('e291a0')                                     │
└──────────┴───────────────────────────┘
二文字以上の文字列でもOK。

但し、「hex2bin()」はPHP5.4以降から実装されるので、
使えない場合は自作関数を代替か。
分類:PHP
HTML/POST変数のname属性が配列の場合
2012年05月08日
基本的に、name属性には変数を使う。
┌──────────────────────────────────────┐
│<input type="hidden" name="a[]"      value="1"/>     →  $_POST[a]       = 1│
└──────────────────────────────────────┘
配列を使ってもよい。
┌──────────────────────────────────────┐
│<input type="hidden" name="a[1]"     value="1"/>     →  $_POST[a][1]    = 1│
└──────────────────────────────────────┘
もちろん、連想配列(添字が文字列)でもOK。
┌──────────────────────────────────────┐
│<input type="hidden" name="a['z']"   value="1"/>     →  $_POST[a]['z']  = 1│
└──────────────────────────────────────┘
配列の添字を省略すると、自動で設定してくれる。
┌──────────────────────────────────────┐
│<input type="hidden" name="a[]"      value="1"/>     →  $_POST[a][0]    = 1│
│<input type="hidden" name="a[]"      value="2"/>     →  $_POST[a][1]    = 2│
└──────────────────────────────────────┘
直前に添字があればその次に追加されていくが、
最大添字を起点としてカウントアップしていくので必ず直前の次というわけではない。
(上記のように、元々起点がなければ「0」から始まる)
「$a[] = 1;」みたいな処理と同じようなもんだ。
┌──────────────────────────────────────┐
│<input type="hidden" name="a[3]"     value="1"/>     →  $_POST[a][3]    = 1│
│<input type="hidden" name="a[]"      value="2"/>     →  $_POST[a][4]    = 2│
│<input type="hidden" name="a[1]"     value="3"/>     →  $_POST[a][1]    = 3│
│<input type="hidden" name="a[]"      value="4"/>     →  $_POST[a][5]    = 4│
└──────────────────────────────────────┘
なお、文字列の添字はそのカウントアップからは無視される。
┌──────────────────────────────────────┐
│<input type="hidden" name="a[3]"     value="1"/>     →  $_POST[a][3]    = 1│
│<input type="hidden" name="a['4']"   value="2"/>     →  $_POST[a]['4']  = 2│
│<input type="hidden" name="a[]"      value="3"/>     →  $_POST[a][4]    = 3│
└──────────────────────────────────────┘
添字が同じものが複数あれば同一と見なし、最後方が上書で優先される。
┌──────────────────────────────────────┐
│<input type="hidden" name="a[]"     value="1"/>      →  $_POST[a][0]    = 1│
│<input type="hidden" name="a[]"     value="2"/>      →      (上書される)   │
│<input type="hidden" name="a[1]"    value="3"/>      →  $_POST[a][1]    = 3│
└──────────────────────────────────────┘
これは変数の場合と同じこと。
┌──────────────────────────────────────┐
│<input type="hidden" name="a"       value="1"/>      →      (上書される)   │
│<input type="hidden" name="a"       value="2"/>      →  $_POST[a]       = 2│
└──────────────────────────────────────┘
ちなみに、変数名と配列名が同名だった場合には?
┌──────────────────────────────────────┐
│<input type="hidden" name="a"       value="1"/>      →      (上書される)   │
│<input type="hidden" name="a[]"     value="2"/>      →  $_POST[a][0]    = 2│
│<input type="hidden" name="a[]"     value="3"/>      →  $_POST[a][1]    = 3│
└──────────────────────────────────────┘
階層毎で(まるごと)上書される感じ(上記と下記がそれを物語っている)。
┌──────────────────────────────────────┐
│<input type="hidden" name="a[]"     value="1"/>      →      (上書される)   │
│<input type="hidden" name="a[]"     value="2"/>      →      (上書される)   │
│<input type="hidden" name="a"       value="3"/>      →  $_POST[a]       = 3│
└──────────────────────────────────────┘
それと多次元配列も大丈夫。
┌──────────────────────────────────────┐
│<input type="hidden" name="a[1][2]" value="1"/>      →  $_POST[a][1][2] = 1│
└──────────────────────────────────────┘
分類:HTML
JavaScriptの長時間の処理を実行した場合の挙動
2012年05月07日
ブラウザにより以下のように違う。
────────────────────────────────────────
【IE9】(しばらくしてからブラウザをクリックした場合)
  (ケース1)
    #単純に永久ループさせるとこの現象となる模様
      (ケース2)よりも程度がひどい場合にこちらのメッセージになる模様
┌────────────────────────────┌────────┐┐
│■■が応答しません。                                    │Webページの回復 ││
└────────────────────────────└────────┘┘
  (ケース2)
┌────────────────────────────┌────────┐┐
│■■は、長時間実行中のスクリプトが原因で応答しません。  │スクリプトの停止││
└────────────────────────────└────────┘┘
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【IE4~IE8】(しばらくして自動でダイアログが開く)
┌──────────────────────────────────────┐
│Microsoft Internet Explorer                                                 │
├──────────────────────────────────────┤
│このスクリプトの実行を中止しますか?                                        │
│                                                                            │
│このページのスクリプトが、Internet Explorerの実行速度を遅くしています。     │
│スクリプトを実行し続けると、                                                │
│コンピューターが反応しなくなる可能性があります。                            │
│スクリプトを中断しますか?                                                  │
│                  ┌────────┐┌────────┐                  │
│                  │      はい      ││     いいえ     │                  │
└──────────────────────────────────────┘
JavaScriptの処理が重い(もしくは永久ループ)
http://support.microsoft.com/kb/175500/ja
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【Firefox11】(しばらくして自動でダイアログが開く)
┌──────────────────────────────────────┐
│警告:応答のないスクリプト                                                  │
├──────────────────────────────────────┤
│このページのスクリプトは処理に時間がかかているか応答しなくなっています。    │
│今すぐスクリプトを停止するか、このまま処理を続行させるか選択してください。  │
│  スクリプト:http://…                                                      │
│  □次回からは確認しない                                                    │
│                  ┌────────┐┌────────┐                  │
│                  │   処理を続行   ││スクリプトを停止│                  │
└──────────────────────────────────────┘
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【Chrome18】(しばらくして自動でダイアログが開く)
┌──────────────────────────────────────┐
│ページ応答なし                                                              │
├──────────────────────────────────────┤
│次のページは応答していません。                                              │
│応答があるまで待つか、強制終了してください。                                │
│┌────────────────────────────────────┐│
││xxxx.htm                                                                ││
└──────────────────────────────────────┘
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【Safari5】(反応なし)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【Opera11】(反応なし)
────────────────────────────────────────
分類:ブラウザ
あやしいカラーネームを考える
2012年05月06日
色の指定は「black」や「red」のようなカラーネームで指定する場合と
「#000000」や「#FF0000」のような16進で指定する場合がある。

で、その中間っぽい、16進だけどカラーネームっぽいのを探している。

例えば「#C0FFEE」とか。

「abcdef」と「ilo」(110)といった文字を組み合わせて
6文字以内の単語ができればよい。

今、思いつくのは以下のとおり。

「#aba」   …ダンシングクイーン♪
「#abe」   …阿部さん
「#ac」    …直流電源
「#bad」   …悪い
「#bee」   …蜂
「#cafe」  …コーヒー
「#cd」    …コンパクトディスク
「#C0FFEE」…コーヒー
「#dc」    …交流電源
「#ec」    …欧州共同体
「#EC0」   …地球にやさしく
「#ed」    …カリーナEDですよ
「#fee」   …報酬

他にもいろいろあるだろうけど…。
分類:小ネタ、CSS
(無題)
2012年05月05日
It is a memorial day today.
メモ帳の文字コード
2012年05月03日
メモ帳ではあまり文字コードを意識することがない。
たいていのエディタでは編集中に現在使用中の文字コードを表示しているものだが
メモ帳の場合、これがないからかもしれない。

ということで、あらためて、メモ帳における文字コードのおさらい。

まず、メモ帳において使用できる文字コードは以下の3つ。
  ・ANSI(=Windows版Shift_JIS=CP932)
  ・UTF-8
  ・Unicode(=UTF-16)
つまり「EUC-JP」は使用できない。

文字コードを自発的に指定したい場合は、以下の2つの方法がある。
  ・ファイルを開く時に、指定する
  ・ファイルを保存する時に、指定する
つまり、編集中に変更はできない(一発で変換して再表示ってことはできない)。

文書ファイルのダブルクリックや
メモ帳に対するドラッグ&ドロップでファイルを開いたりする場合
文字コードをある程度自動認識してくれる。
この使い方をすることが多いと思うので、文字コードを意識しづらい。

自動認識の基準は(先頭の)「BOM」のようだ。
UTF-8、UTF-16で保存した場合は、自動で「BOM」を付加する。


ついでに別件だが、改行コードは「CR+LF」のみを認識し、
「CR」や「LF」だけだと改行として認識しない。

メモ帳の特徴といったらこんなところか。
分類:文字コード
CSS/CSSのセレクタまとめ
2012年05月02日
┌──┬───────────┬───────────────────────┐
│    │*                     │すべて                                        │
├──┼───────────┼───────────────────────┤
│    │.クラス               │クラス                                        │
├──┼───────────┼───────────────────────┤
│    │#ID                   │ID                                            │
├──┼───────────┼───────────────────────┤
│    │先祖 自身             │子孫                                          │
├──┼───────────┼───────────────────────┤
│    │親 > 自身             │子(直子)                                      │
├──┼───────────┼───────────────────────┤
│    │隣 + 自身             │隣接している要素                              │
├──┼───────────┼───────────────────────┤
│CSS3│前 ~ 自身             │後にある要素                                  │
├──┼───────────┼───────────────────────┤
│    │:first-letter         │最初に現れる文字だけ                          │
├──┼───────────┼───────────────────────┤
│    │:first-line           │最初の行だけ                                  │
├──┼───────────┼───────────────────────┤
│    │:first-child          │最初に現れる要素だけ                          │
├──┼───────────┼───────────────────────┤
│CSS3│:nth-of-type(■)      │■番目に現れる要素                            │
├──┼───────────┼───────────────────────┤
│CSS3│:nth-last-of-type(■) │後ろから■番目に現れる要素                    │
├──┼───────────┼───────────────────────┤
│    │:hover                │マウスがのっている場合                        │
├──┼───────────┼───────────────────────┤
│CSS3│:not                  │否定                                          │
├──┼───────────┼───────────────────────┤
│CSS3│:checked              │チェックされている場合                        │
├──┼───────────┼───────────────────────┤
│    │タグ[属性]            │属性を持つ                                    │
├──┼───────────┼───────────────────────┤
│    │タグ[属性="値"]       │特定の属性値を持つ                            │
├──┼───────────┼───────────────────────┤
│CSS3│タグ[属性^="値"]      │特定の属性値を持つ(先頭から部分一致)          │
├──┼───────────┼───────────────────────┤
│CSS3│タグ[属性$="値"]      │特定の属性値を持つ(末尾から部分一致)          │
├──┼───────────┼───────────────────────┤
│CSS3│タグ[属性*="値"]      │特定の属性値を持つ(部分一致)                  │
└──┴───────────┴───────────────────────┘
  ※CSS3はIEで動作しないものがあるので注意
分類:CSS
PHP/TRUEとFALSEの出力
2012年05月01日
TRUEとFALSEを出力した結果は以下のとおり。
┌─────┬──────┬──────┐
│          │    TRUE    │   FALSE    │
├─────┼──────┼──────┤
│echo      │     1      │            │
├─────┼──────┼──────┤
│print_r() │     1      │            │
├─────┼──────┼──────┤
│var_dump()│ bool(true) │bool(false) │
└─────┴──────┴──────┘
分類:PHP
JavaScript/変更を反映させる
2012年04月30日
JavaScriptのソースコードを変更しても、
既に動作中のユーザがブラウザに前の状態をキャッシュし続けて反映されない、
という問題に出くわした場合の対処方法の一例。

┌──────────────────────────────────────┐
│<script type="text/javascript" src="javascript.js?1.0"></script>            │
└──────────────────────────────────────┘
上記のように「?バージョン」みたいなパラメータを付加しておいて、
ここの値を変えてあげれば再読込してくてる。
#この方法は、HTMLソース(テンプレート)の変更が必要ってことになる
分類:JavaScript
PHP/セッションのまとめ
2012年04月28日
┌─────────┬────────────────────────────┐
│クッキー          │ブラウザ側(クライアント側)に記録される情報              │
│                  │有効期限を設定できるが、たいていはブラウザを閉じたら消滅│
│                  │セッション情報についてはIDのみを記録する                │
│                  │※ブラウザ側にあるものなので、詳細な情報を記録すると    │
│                  │  容易に改竄されてしまうおそれがある                    │
├─────────┼────────────────────────────┤
│セッションファイル│サーバ側に記録される情報                                │
│                  │セッション情報の中身を記録している                      │
│                  │※ファイルを開くと「;」区切形式で容易に内容を確認できる │
│                  │正規の手続きとしては「session_destory()」で削除するが、 │
│                  │その処理が漏れた場合(ブラウザの直接終了など)を考慮し    │
│                  │「php.ini」の設定により、一定の間隔で削除する           │
├─────────┼────────────────────────────┤
│セッションID      │クッキーとセッションファイルを結びつけるID              │
│                  │「session_start()」で生成もしくは使用される             │
└─────────┴────────────────────────────┘
・「session_start()」した場合
  クッキー中からセッションIDを探す
  ・セッションIDがある場合
    そのセッションIDと対応するセッションファイル(セッション情報)を使用する
  ・セッションIDがない場合
    セッションIDを生成し、それに対応するセッションファイルを生成するとともに
    クッキーにセッションIDを記録する
・「session_destory()」した場合
  ・セッションファイルを削除する
────────────────────────────────────────
Q.セッションIDおよびセッションファイル生成後、
    セッションファイルを直接削除したらどうなる?
    #「php.ini」の設定による一定の間隔での削除もこれと同等のはず
A.セッションファイルがない場合、
    別のセッションIDおよびセッションファイルを生成します
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Q.ブラウザを一旦閉じて、「session_start()」し直した場合はどうなる?
A.「session_destory()」を行わないと、セッションファイルは残ったままだが
    クッキー側にそれに対応するセッションIDが記録されていないので、
    別のセッションファイルが生成される
    ただし一部のブラウザ(IE)では、見た目上ブラウザが終了したように見えても
    プロセスとして残り続けている場合があり、
    引き続き同一セッションファイルを継続使用するケースがあるので注意
    →ブラウザを終了させず、タブだけを終了させた場合と同様
────────────────────────────────────────
分類:PHP
前へ 1 … 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 … 156 次へ