MW211 EXIT

devlog
正規表現/直前直後の組み合わせ
2012年03月28日
直前と直後に特定の文字があるもしくはないものを検索する組み合わせは以下の通り。
┌──┬─────┬─────┐
│    │   直前   │   直後   │
├──┼─────┼─────┤
│あり│ (?<=z)a  │ a(?=z)   │
├──┼─────┼─────┤
│なし│ (?<!z)a  │ a(?!z)   │
└──┴─────┴─────┘
※「a」と「z」は文字列の例(何の文字列でもよい)

「az,za,ay,ya」があったとしたら、上記の正規表現に該当するのは以下の通り。
┌──┬─────┬─────┐
│    │   直前   │   直後   │
├──┼─────┼─────┤
│あり│    za    │    az    │
├──┼─────┼─────┤
│なし│azとyaとay│zaとyaとay│
└──┴─────┴─────┘
但し、該当するとみなされる文字(検索文字)はそれぞれの「a」のみ。

ちなみに前後の文字も含みたい場合は以下の通り
┌──┬─────┬─────┐
│    │   直前   │   直後   │
├──┼─────┼─────┤
│あり│    za    │    az    │
├──┼─────┼─────┤
│なし│  [^z]a   │  a[^z]   │
└──┴─────┴─────┘
ただし、こちらは改行やら区切文字やらも該当してしまうので、
上記のように該当するものがはっきりするとは限らない。
→あくまで理論上の対比と考えてもらいたい
分類:正規表現
正規表現/前に特定の文字がつかないものを検索
2012年03月27日
「a」単体や、「ac」の「a」は検索できるけど、「ab」の「a」は検索できない
つまり、後ろに「b」が続かない「a」を検索する正規表現は以下の通り。
┌──────────────────────────────────────┐
│a(?!b)                                                                      │
└──────────────────────────────────────┘

ではこの反対は(前に「b」がない「a」)というと…
┌──────────────────────────────────────┐
│(?!b)a                                                                      │
└──────────────────────────────────────┘
ではない。
→これだと、「ba」の「a」も該当してしまう。

正解はこれ。
┌──────────────────────────────────────┐
│(?<!b)a                                                                     │
└──────────────────────────────────────┘
と、「<」がいれてあげなければならない。

なんでも「a」を基準にして、さかのぼって左側を見てあげなければならないので
さかのぼりに記号「<」が必要らしい。
分類:注意、正規表現
PHP/アップロードファイルサイズ
2012年03月26日
アップロードできるファイルサイズの最大サイズの設定は、「php.ini」で行う。
ただし、関係するパラメータがいくつかあり、以下のように設定せねば反映されない。
┌──────────────────────────────────────┐
│「memory_limit」≧「post_max_size」≧「upload_max_filesize」                │
└──────────────────────────────────────┘
分類:PHP
PHP/クッキー
2012年03月25日
クッキーの設定方法と参照方法は以下のような感じ。
┌──┬───────────────────────────────────┐
│設定│setcookie('クッキー変数名', 値);                                      │
├──┼───────────────────────────────────┤
│参照│$_COOKIE['クッキー変数名']                                            │
└──┴───────────────────────────────────┘

ただし、設定されるのは、そのスクリプトが終了した時なので、
以下のような場合、設定された値はechoされない。
┌──────────────────────────────────────┐
│$変数 = '値';                                                               │
│setcookie('クッキー変数名', $変数);                                         │
│echo $_COOKIE['クッキー変数名'];  // →''                                   │
└──────────────────────────────────────┘

なので、そのスクリプトでクッキー変数の値を使いたい場合は、
設定元を(分岐して)使う必要がある。
┌──────────────────────────────────────┐
│$変数 = '値';                                                               │
│setcookie('クッキー変数名', $変数);                                         │
│echo $変数;  // →'値'                                                      │
└──────────────────────────────────────┘

ちなみに、以下のように直接代入すると、
そのスクリプト内ではクッキー変数に値が代入されているが、
実際のクッキーの中身には値は入らないので、次画面以降では値はクリアされてしまう。
┌──────────────────────────────────────┐
│$_COOKIE['クッキー変数名'] = '値';                                          │
│echo $_COOKIE['クッキー変数名'];  // →'値'                                 │
└──────────────────────────────────────┘
一瞬設定が成功したかのような錯覚に襲われるので注意が必要。
分類:PHP、注意
jQuery/onイベント
2012年03月24日
onなんとかイベントとjQueryの(等価)関係は以下のとおり。
┌───────────────────┬──────────────────┐
│<id="id" onblur="function(){■}">     │$("#id").blur(function(){■});      │
├───────────────────┼──────────────────┤
│<id="id" onchange="function(){■}">   │$("#id").change((function(){■});   │
├───────────────────┼──────────────────┤
│<id="id" onkeydown="function(){■}">  │$("#id").keydown(function(){■});   │
├───────────────────┼──────────────────┤
│<id="id" onkeypress="function(){■}"> │$("#id").keypress(function(){■});  │
├───────────────────┼──────────────────┤
│<id="id" onkeyup="function(){■}">    │$("#id").keyup(function(){■});     │
├───────────────────┼──────────────────┤
│<id="id" onmousedown="function(){■}">│$("#id").mousedown(function(){■}); │
├───────────────────┼──────────────────┤
│<id="id" onmousemove="function(){■}">│$("#id").mousemove(function(){■}); │
├───────────────────┼──────────────────┤
│<id="id" onmouseout="function(){■}"> │$("#id").mouseout(function(){■});  │
├───────────────────┼──────────────────┤
│<id="id" onmouseover="function(){■}">│$("#id").mouseover(function(){■}); │
├───────────────────┼──────────────────┤
│<id="id" onmouseup="function(){■}">  │$("#id").mouseup(function(){■});   │
└───────────────────┴──────────────────┘
分類:jQuery
jQuery/スクロール領域の末尾を表示する
2012年03月23日
┌──────────────────────────────────────┐
│$("#識別子").scrollTop($("#識別子")[0].scrollHeight);                       │
└──────────────────────────────────────┘

「scrollTop()」メソッドでスクロール位置を指定するが、
そこに「scrollHeight」プロパティ(つまりスクロール位置の最大値=末尾)を入れる。
分類:jQuery
正規表現/「1~999」を判定
2012年03月21日
┌──────────────────────────────────────┐
│^([1-9][0-9][0-9]|[1-9][0-9]|[1-9])$                                        │
└──────────────────────────────────────┘
上記のように、「100~999」or「10~99」or「1~9」とする?

いやいや。

┌──────────────────────────────────────┐
│^[1-9][0-9]?[0-9]?$                                                         │
└──────────────────────────────────────┘
上記だと、or条件なしに一発で指定できる。

つまり「?」は、「ある」かもしれないし「ない」かもしれないという意味。
分類:正規表現
Smarty/Smarty変数
2012年03月20日
主なSmarty変数は以下のとおり。
┌───────────────────┬──────────────────┐
│{*コメント*}                          │出力時に完全に無視される            │
│{$変数}                               │                                    │
│{$配列[添字]}                         │                                    │
│{$連想配列.要素}                      │$連想配列['要素']のこと             │
│{$連想配列.$変数}                     │$連想配列[$変数]のこと              │
├───────────────────┼──────────────────┤
│{$オブジェクト->プロパティ}           │                                    │
│{$オブジェクト->メソッド($変数)}      │                                    │
├───────────────────┼──────────────────┤
│{assign var=変数 value='値'}{$変数}   │変数の中身をテンプレートでも定義可  │
│{"値"}                                │値をそのまま表示できる              │
├───────────────────┼──────────────────┤
│{$smarty.get.GET変数}                 │$_GET['GET変数']のこと              │
│{$smarty.post.POST変数}               │$_POST['POST変数']のこと            │
│{$smarty.cookies.COOKIE変数}          │$_COOKIE['COOKIE変数']のこと        │
│{$smarty.server.サーバ変数}           │$_SERVER['サーバ変数']のこと        │
│{$smarty.env.環境変数}                │$_ENV['環境変数']のこと             │
│{$smarty.request.REQUEST変数}         │$_REQUEST['REQUEST変数']のこと      │
│{$smarty.session.SESSION変数}         │$_SESSION['SESSION変数']のこと      │
├───────────────────┼──────────────────┤
│{$smarty.now}                         │タイムスタンプ                      │
│{$smarty.const.定数}                  │「define('定数','値');」の値のこと  │
│{$smarty.config.config変数}           │configファイルに定義した変数        │
│{#config変数#}                        │{$smarty.config.config変数}と同じ   │
│{$smarty.template}                    │テンプレート名                      │
│{$smarty.version}                     │Smartyのバージョン                  │
│{$smarty.ldelim}                      │デミリッタ(左)                      │
│{$smarty.rdelim}                      │デミリッタ(右)                      │
│{ldelim}                              │{$smarty.ldelim}と同じ              │
│{rdelim}                              │{$smarty.rdelim}と同じ              │
└───────────────────┴──────────────────┘
分類:Smarty
PHP/Windowsの場合の分岐
2012年03月19日
Windowsの場合のみの特殊処理を行いたい場合の分岐処理は以下の通り。
┌──────────────────────────────────────┐
│if ((PHP_OS === 'WIN32') || (PHP_OS === 'WINNT')) {                         │
│  echo 'Windowsです';                                                       │
│} else {                                                                    │
│  echo 'Windowsではありません';                                             │
│}                                                                           │
└──────────────────────────────────────┘

例えば、以下のようなファイル権限変更なんてのは
(Linuxとかでは必要だが)Windowsでは不要だから分岐したりする。
┌──────────────────────────────────────┐
│chmod($ファイル, 0644);                                                     │
└──────────────────────────────────────┘
分類:PHP
PHP/php.iniをプログラムから扱う
2012年03月18日
「php.ini」の内容を知るためには、「ini_get()」という関数が使える。
#他には「ini_get_all()」ってのもある。
これで、「php.ini」を直接参照しなくても、プログラム表示で参照することができる。

一方、「ini_set()」では設定までできてしまう。
ただし、権限が絡んでくるので何もかも設定できるわけではない。
ま、設定できる場合は、「php.ini」をプログラム的に
書き換える(ようなこと)ができるわけだ。
分類:PHP
前へ 1 … 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 … 156 次へ