2013年1月30日水曜日

SyntaxHighlighter

あまりにも簡単でした。
前の記事から利用しています^^

http://www.way2blogging.org/widget-generators/syntax-highlighter-scripts-generator



なにやらタイヤの広告が表示されていますね^^;気にせずに・・・

テーマや言語を選択して「Generate」をクリック!
すると、コードが表示されます。これを</head>の直前にコピペします。
ハイライトしたいソースを<pre>タグで囲ってやります(言語指定します)。
これだけ。



2013年1月29日火曜日

user agent のチェック

アクセスしてくるブラウザによって処理を分けたいときがあります。
スマホやら、システム要件やら、

例えば、InternetExploere 7以降が対象という場合です。
ユーザエージェント文字列を取得し、バージョントークンを判定します。

$userAgent = env("HTTP_USER_AGENT");
if (mb_ereg('MSIE', $userAgent)) {
  preg_match("/(MSIE)(\s([\d]+))/is", $userAgenet, $versionToken);
  if ((int)$versionToken[3] >= 7) {
    // IE7以上のときの処理
  }
}

(参考)マイクロソフト社のユーザーエージェント
http://msdn.microsoft.com/ja-jp/library/ms537503(v=vs.85).aspx


2013年1月27日日曜日

イベントの処理

なるほどなるほど

<script>
  $(function() {
    $("セレクタ").change(function() {
      // ここにonchangeの処理を書くといいよ
    });
  });
</script>

メモメモ

2013年1月13日日曜日

xajaxでこっそりエラーが・・・

何かおかしい、いつもじゃないけど。
で、ログを見てみます。

どうやらこれかな。xajaxのエラーがこっそり?でてまして、これがそのログ
Severity: Notice  --> Undefined index:  query /var/www/html/foo/application/libraries/xajax/xajax.php 930
そして↓これが該当する箇所
$sURL.= $aURL['path'].@$aURL['query'];
なんじゃこりゃ?@_@

このアットマーク””エラー制御演算子という名称らしいです。画面にエラーを吐かない。なるほど。なにかいいことがあるのでしょうか。

さていろいろとググって見ますと、こちらに書かれています。
xajax Forums

なるほどなるほど。
ここを参考に修正してしばらく様子をみてみることにします。

ところで、

afaik

なる表現がでてきてまたまた、なんじゃこりゃ?あ、あふぇいく??

またまたGoogle先生にお願い。
As Far As I Know 「私が知っている限りでは」
という英語の省略記法らしいです。

2013年1月12日土曜日

日付処理でうっかり

日付処理でうっかりしてしまったこと。

「指定した日の○○ヶ月前の月始めの日」

を取得したい。こんなかんじに翻訳してみました。
PHP DateTimeクラスは便利ですね。
$foo = (指定した日)
$bar = (○○ヶ月前)
$dt = new DateTime($foo);
// 指定した日の$barヶ月前
$dt->modify(-($bar) - 1) . 'month');  ……(a)
// その月の月始の日
$dt->modify('first day of this month');  ……(b)
$dst = $dt->format('Y-m-d');

すると、
$foo に 1/31 などを指定したときは思ったように動作しないことがあります。

(a)の前に一旦(b)をはさんでおくとOKですね。

マニュアルにもありました。
http://php.net/manual/ja/datetime.modify.php


月始の日は常に”1”というのはさておき・・・(^^;

2013年1月6日日曜日

CakePHP2 同じフィールドをDB検索条件に指定するとき

DBを検索するとき検索条件で、以下のような指定(SQLを生成)をしたいときがあります。
WHERE foo <> 1 AND foo <> 2 …(a)
CakePHP2のfind()メソッドを使用するとき、こんな感じで条件を書いて
$conditions = array('foo <> ' => 1, 'foo <> ' => 2);
どうも思った結果が取れない???
生成されたSQLを確認すると、
WHERE foo <> 2
となっています。

どうやら同じフィールドを指定するのはうまくいかないみたいです。
で、以下のようにしてみました。
$conditions = array('foo NOT ' => (1, 2));
こうすると IN句を生成します。こんなふうに、
WHERE NOT IN (1, 2) …(b)
これで思った結果が取得できました。

先に(a)を思い浮かべてしまうのがダメだったみたいですね(^^;


2013年1月1日火曜日

あけましておめでとうございます2013

HNY2013.0 (Web2.0みたいに、てんゼロをつけてみたけど)

よい年になりますように。