1
私は仕事柄インターネットでよく調べ物をします。 グーグルで検索して目的のものっぽいリンクをクリックすると、たまに広告ばっかりでしかも画面中央に広告がどかーんと表示されるようなページが・・・・ しかも忘れた頃にまた開いちゃうんですよね~、時間が勿体ない~困った。 そこでFirefoxのアドオンで、特定のページへアクセスできないようにするものがないか調べた所、ありました!その名も 「BlockSite」 これ英語版しかないのかな?日本語のアドオン検索ページではヒットしません。 で、肝心の機能は、登録したURLのものは非リンク状態にしてくれたり、アクセスしようとしても警告が出てページを開きません。 しかも登録するURLがワイルドカードが使えるのかな?正規表現だったかな・・・?まあ忘れましたがどっちか使えたはずです。 おかげでアクセスしたくないサイトをクリックできなくなったので、時間を浪費せずに済みます。 とても良い! 以下簡単に設定の項目について説明を書いておきます。間違ってたらスマセン。※項目はver 0.701のものです。--- Enable functions ---Enable BlockSite : BlockSiteの有効/無効Enable warning messages : 警告の表示/非表示Enable link removal : 禁止サイトへのURLを非リンク状態にするかどうかBlacklist or whitelist : ブラックリスト方式とホワイトリスト方式の切り替え--- Authentication ---Enable authentication : BlockSiteの設定変更にパスワード制限をかけるかどうかNew password : パスワード--- Blacklist ---(※Enable functionsでWhitelistを選択していると、Whitelistと表示される)Locations : 作成した制限の一覧Add : 新しく制限を追加するEdit : 既にある制限を編集する(選択していない場合はAddと同じ)Remove : 制限を削除するClear list : 制限を全て削除する(確認ダイアログとか出ないので注意)Import : 制限の設定をファイルから追加するExport : 現在の設定をフィアルヘ書き出す
2008.12.02
閲覧総数 670
2
DBを眺めていると「tinyint(4)」という定義を見つけた。 これは・・・0~4までという意味で定義したのか、それとも0000~9999という意味で定義したのか、それとも0000~1111という意味で・・・ でもtinyintは-128~127しか入らないはず。 そもそも隣の数値の意味は~・・・ 気になったので実験。(ついでにintも試してみました。)--テスト用テーブル作成--mysql> create table `test_tbl` (`ti` tinyint(4),`ni` int(11));Query OK, 0 rows affected (0.02 sec)mysql> desc test_tbl;+-------+------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+------------+------+-----+---------+-------+| ti | tinyint(4) | YES | | NULL | || ni | int(11) | YES | | NULL | |+-------+------------+------+-----+---------+-------+2 rows in set (0.01 sec)--tinyintに4桁の数値、intに11桁の数値を入れてみる--mysql> insert into test_tbl values(1234,12345678901);Query OK, 1 row affected, 2 warnings (0.01 sec)ぉ?warnings吐いてる。--テーブルの中身を見てみる--mysql> select * from test_tbl;+------+------------+| ti | ni |+------+------------+| 127 | 2147483647 |+------+------------+1 row in set (0.01 sec) 各型の最大値に丸められてます。 tinyint:1234=>127 int:12345678901=>2147483647 この型の隣にある数値の意味について誤解されている事が多いし、自分もよく混乱する上にちゃんと分かってない。 原因はcharやvarcharでの桁数指定がこれと同じ記述である事や、tinyint(1)を指定するとbit扱いし、0と1しか入れられなくできる設定が大きい。 マニュアルには以下のような記述がある。--引用--このオプションの表示幅の指定は、カラムに指定された幅より小さい幅を持つ値で表示の左側を埋める目的で使用されますが、そのカラムに格納できる値の範囲が制限されたり、そのカラムに指定された幅を超える幅を持つ値の桁数が制限されたりすることはありません。-------- 読んでも正直パッとしません。ただ、この数値指定によって桁数制限されるわけではない、ということは分かります。 では、こちらはどうでしょう--引用--この表示幅オプションは、カラムに指定された幅よりも小さい幅の整数値を表示する際に左側をスペースで埋めるために使用されます。この表示幅は、カラムに格納する事ができる値の範囲も、カラムに指定された幅を超える値の表示される桁数も制限しません。例えば、SMALLINT(3) として指定されたカラムは、通常の -32768 から 32767 の SMALLINT 範囲を持ち、そして、3文字で許容された範囲外の値は3文字以上の文字を使って表示されます。-------- 何やら急に分かりやすい表現になっています。 引用前者はMySQL4.1のもので、後者はMySQL5.1のものです。初めから5.1の説明を読んでいればすぐ分かりますね。 という事は、tinyint(4)は4桁よりも小さい数値は足りない桁にスペースが入って表示される。扱う桁の制御を行うものではない。 が正しい解釈? きっと私のように混乱していた人も多いかと。 ちょっと自信無いですが、あっているはずっ! 間違ってたらツッコミお願いしますorz
2009.03.24
閲覧総数 41229
3
今日はSJIS環境でで全角空白(スペース)対応の除去関数を作っていたら、謎の挙動が・・・ 「あ」や「!(全角)」を通すとおかしな挙動になる。 これはきっと文字コードを宣言してないからかな~と言う事で宣言後に処理。 mb_regex_encoding("SJIS"); // 改行コードを削除 $str = mb_ereg_replace("/[\r\n]/", "", $str); // 行頭行末の空白を削除 $str = mb_ereg_replace("^[ ]+", "", $str); $str = mb_ereg_replace("[ ]+$", "", $str); こんな感じ。 これで「あ」や「!」の挙動は直ったのですが、機種依存文字は全然ダメぽ・・・ ぬーん・・・とうなっていると、現場の先輩が「SJIS-win」だとどう?とのアドバイス。 へ?「SJIS-win」とか文字コードの宣言あるの? 試しに mb_regex_encoding("SJIS-win"); と修正し実行。 w( ̄△ ̄;)wおおっ! 機種依存文字も問題なくなりました。 こんな宣言できたのか! ちなみに全角スペースを半角スペースに置き換える場合はこんな感じ。 $str = mb_convert_kana($str, "KVs","SJIS-win"); $str = mb_convert_kana($str, "s","SJIS-win"); (半角カタカナ>全角カタカナ処理も入ってました・・・sだけでいいはずです) この後にtrim()でも通せば問題ないかな。 今週は本気でSJISがこの世から無くなってほしいと思いましたw
2008.10.17
閲覧総数 1019