kousukekayoのブックマーク (142)

  • 第7章 正規表現

    正規表現とは、ある特定の文字列ではなく、文字列の一部をパターン化して表現する手法をいいます。 複数行ある文章の中から文字列を検索する時に、検索したい文字列すべてを指定するのではなく、文字列の任意の一部を置き換え可能な状態にして検索をする場合に正規表現を用います。 たとえば、UNIXやWindowsでは、文字列を検索するときに使用される正規表現として、「*」を任意の文字列(空き文字も含む)に、「?」を任意の1文字として使用することができます。パターンを、app* と表現すると、 apple application appeal などの文字列がマッチすることになります。 この正規表現の方法は、当然ながらプログラム言語ごとに異なりますが、Perlの場合は他の言語に比べて非常に強力な正規表現によるパターンマッチ機能を備えており、より詳細にかつ容易にパターンマッチを行うことができるとされています。

  • PHP: はじめに - Manual

    はじめに PCRE がサポートする正規表現の構文と意味体系を以下に示します。 正規表現については、Perl のドキュメントや他の多くの書籍においても 解説されており、実例が豊富に記載されているものもあります。特に、 O'Reilly 発刊 Jeffrey Friedl 著 "Mastering Regular Expressions" (ISBN 1-56592-257) 〔日語版:「詳説 正規表現」〕には、 たいへん詳細に解説されています。 以降の説明は、参考文書 (reference documentation) として 扱われることを想定しています。 正規表現は、ある種のパターンであり、検索対象文字列 (subject string) に対して左から右〔文字列の初めから終わり〕の順にマッチングが行われます。 一部の例外を除き、パターン中の文字はその文字自体を表し、 検索対象文字列内

  • 最新ブラウザのHTML5タグへの対応状況をまとめてみた - IT-Walker on hatena

    ちょっとしたプログラムを書いて、各メジャーブラウザのHTML5タグへの対応状況を調べてみました。現時点でのHTML5仕様に含まれているタグが、ブラウザにUI要素として認識されるかどうかを調べただけです。これだけでは、HTML5の対応状況としては一部しか調べられませんが、一応の参考として。 間違いがありましたらご連絡ください。 具体的に行った調査方法は、記事の最後を参照してください。 IE8Chrome2Chrome3(Beta)Safari4Firefox3.5Opera10(Beta) div○○○○○○ section×××××× nav×○○○×× article×××××× aside×○○○×× h1○○○○○○ h2○○○○○○ h3○○○○○○ h4○○○○○○ h5○○○○○○ h6○○○○○○ hgroup×○○○×× header×○○○×× footer×○○○××

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • さぼてん: PHP+MySQL+UTF-8で文字化け対策

    Webサイト制作。PHPとかMySQLとかプログラム寄り。symfony、CakePHPPerlと和解交渉中。 自分は遭遇した事無いけど、今後の参考に。 PHPの内部処理の文字コードがEUCベースな為、UTF-8で作っていくとフォーム値が文字化けしてしまう事があるらしい。 結構多いトラブルの模様。 解決策としては、内部処理の文字コードをUTF-8に変更してから受け取る様にすると良い。 自分の経験で悩まされたのは、DBの文字化け。 DBを一から構築する場合は最初からUTF-8で作っていけば良いけど、サーバの移転だったり既存のデータを使ったプログラムを組みときは文字化けが大変。EUC-JPが多い。 その時は以下のコードで文字コードを指定したクエリを発行して乗り越えられた。 <? mb_language("uni"); mb_internal_encoding("utf-8"); /

  • 日曜プログラミング講座/PHP言語 - 文法編 - Water-Sunlight

    Webサーバの出力バッファの内容を強制出力します。(※下図を参照して下さい) PHPの出力バッファリングが有効な場合は、ob_flush() に続けて flush() を呼び出します。 header("Content-Type: text/plain"); echo "Hello"; ob_flush(); // PHPの出力バッファを強制出力します。 flush(); // Webサーバの出力バッファを強制出力します。 sleep(2); // "Hello"はブラウザで表示されているはずです。 echo " world.\n"; // 2秒待つと" world."も表示されます。

  • HOMMEZ公式オンラインショップ

    HOMMEZ(オムズ)は男性の心と身体の健康を支援し、一人でも多くの人が子供を得る幸せや男性としての喜びを享受できる社会の実現を目指しています。男性の妊活、活力にまつわる情報や商品の力で性や妊活に悩む男性が効率的に納得感を持って活動できる機会を創出します。

  • バッファリング

    バッファリングとは バッファとは、データの一時的な保存場所のことです。 バッファリングとは、バッファにデータを一時的に保存しておくことです。 例えば perl で print 文を使うと、影でバッファリングが 行われています。 例えば、画面に「abc」という文字を表示することを考えましょう。 プログラムが a を出力、b を出力、c を出力、と1文字ずつ 出力してもいいのですが、一度に「abcd」という文字列を 表示した方が速度があがります。「画面に文字を表示しろ」という 機能は OS が持っているのですが、その機能を 呼び出すこと自体 それなりの時間がかかるからです。 具体的に言うと、システムコールの呼び出しには それなりのオーバーヘッドがかかりますし、 システムコール呼び出しをきっかけとして プロセスの切替えが起こりますので、 極力システムコールは使わないようにすべきです。 また、ww

  • ob_start関数の意味と使い方とは? - OKWAVE

    がると申します。 んっと…その例題はあんまりよい例題には見えないですねぇ(苦笑 ちと背景知識が必要なので長くなって恐縮ですが、順を追って。 CGI(広義のCGI:もちろんPHPも含みます)は、ものすごく大雑把に分けて、ヘッダ部とボディ部とに切り分けられます。 PHP的には、headerという関数を用いて出力するのがヘッダ部、printやらechoやらで出力する部分がボディ部になります。 割合よく使われるヘッダは、 ・画像出力やその他のファイル系出力でContent-typeを変える ・Cookieを発行する(setcookie関数) あたりでしょうか? で。通常、例えばPerlなどでCGIを作る場合には普通にお約束なのですが。 来、出力は ・ヘッダ部を全部出力 ・空の改行を1行出力 ・ボディ部(HTMLが書いてあるところ)を出力 という手順で行います。ただ、PHPは「ヘッダ部と空の改行」

    ob_start関数の意味と使い方とは? - OKWAVE
  • 第27回 見過ごされているWebアプリケーションのバリデーションの欠陥 | gihyo.jp

    今回解説するWebアプリケーションのバリデーションの欠陥はPHPに限った問題ではありません。多くのプラットフォームのWebアプリケーションで見過ごされているバリデーション仕様の欠陥です。それは文字エンコーディングのチェックです。 文字エンコーディングバリデーションの必要性 筆者の知る限りでは、2004年に相次いで今まで知られていなかったアタックベクタ(攻撃経路)が見つかりました。2004年に多く見つかった新しいアタックベクタとは不正な文字エンコーディングを利用した攻撃です。不正な文字列を利用したJavaScriptインジェクションやSQLインジェクションの攻撃手法が公開されました。 文字エンコーディングを利用した攻撃自体は当時でも新しい攻撃手法ではありませんでした。文字エンコーディングを利用した攻撃は、少なくとも2000年から広く知られていた攻撃手法でした。ブラウザが文字エンコーディングを

    第27回 見過ごされているWebアプリケーションのバリデーションの欠陥 | gihyo.jp
  • Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改

    sshにはダイナミック転送という機能がある。この機能を使うと、sshはアプリケーション側にはSOCKSプロクシとして振る舞うが、そこからsshの接続先までは暗号化された状態で通信が行われる。 これだけだと通常のトンネリングとどう違うのかよくわからないかもしれないが、ダイナミック転送の場合は転送ポートを指定する必要がない。ここがダイナミックと表現される所以だろう。 例えば、オフィスAにある開発サーバdev1にオフィス外からアクセスしたいとする。しかし、dev1はオフィス外には公開されておらず、踏み台サーバladd1を経由してしかアクセスするしかない。ladd1はsshのみが動いており、これまではsshのトンネリング機能を使ってアクセスしてきたのだが、ウェブアプリケーションをデバッグする際はいちいちウェブアプリケーションのポート毎にトンネルを掘るのが面倒くさい。オフィスに限らずデータセンターへ

    Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改
  • メンテナンス中画面を出す正しい作法と.htaccessの書き方 | Web担当者Forum

    今回は、Webサイトやサービスをメンテナンス中にする場合に、どのURLにアクセスしても「メインテナンス中です」の画面を出す正しいやり方を、人間にも検索エンジンにも適切にする作法を主眼に解説します。 この週末の土曜深夜~日曜早朝にかけて、データセンターの設備メインテナンスのため、Web担を含むインプレスグループのほとんどのWebサイトが、どのURLにアクセスしても「メンテ中です」という表示になっていました。 なのですが、その実装がちょっと気になったので、「正しいメンテナンス画面の出し方」を説明してみます。 ※2010-01-16 Retry-Afterを指定するHeaderの指定を修正しました(コメント参照) ※2009-06-17 RewriteCondから [NC] 条件を削除しました(コメント参照) ※2009-06-16 Retry-Afterの記述をGMTに変更しました(コメント参

    メンテナンス中画面を出す正しい作法と.htaccessの書き方 | Web担当者Forum
  • MySQL とメモリに関するまとめ - LukeSilvia’s diary

    前回のエントリーデータベースを用いたセッションデータ管理についてで、MySQL とメモリの関係について良く分からない部分があると書きました。 実はここに関する理解はかなり曖昧な部分があって、調査して追記します。とくにメモリ利用量について。mysqld のプロセスが利用できるメモリの上限が、32bit OS の場合は3G 程度ということは、innodb_buffer_pool_size もこの制限を受け、これについての警告が、先に紹介したリファレンスマニュアルのものという理解だけどいいのだろうかというのが1つ。 2 つ目は、この理解があっているとすると、4G 以上のクラスのメモリをつんだサーバをDB サーバとして利用する場合、64 bit OS でないとリソースの有効活用ができないか。それとも、先に書いたとおり、OS レベルのキャッシュとして利用できるから、結果としてデータファイルを読み込む

    MySQL とメモリに関するまとめ - LukeSilvia’s diary
    kousukekayo
    kousukekayo 2009/06/14
    MySQLは久々。
  • javascript - にはクラスはない : 404 Blog Not Found

    2009年06月13日22:00 カテゴリLightweight Languages javascript - にはクラスはない かえってわかりにくくなっている感じをかつてさんざん実感したので。 JavaScriptのオブジェクトについて考察してみた - あと味 JavaScriptにおけるほとんど全てのデータはオブジェクトである オブジェクトの定義にもいろいろありますが、ここでは「メソッドを持つ」という狭い意味においても事実だということです。実際に見てみましょう。 p(true.toString()); p("String".toString()); p((1).toString()); p((3.14159265).toString()); p([0,1,2,3].toString()); p({q:"answer to life, the universe, and everythi

    javascript - にはクラスはない : 404 Blog Not Found
    kousukekayo
    kousukekayo 2009/06/14
    なるほど。
  • ここ20年間のウェブまわりの技術をまとめた図*二十歳街道まっしぐら(FC2ブログ時代)

    ウェブ開発者にとって欠かせない技術をまとめた1枚の画像です。 約20年前から現在までの流れが一望できます。 クライアント・サーバに分けて図で表しています。 拡大図 以下にいくつかピックアップしてみます。

  • PHP: リファレンスの説明 - Manual

    Another example of something to watch out for when using references with arrays. It seems that even an usused reference to an array cell modifies the *source* of the reference. Strange behavior for an assignment statement (is this why I've seen it written as an =& operator? - although this doesn't happen with regular variables). <?php $array1 = array(1,2); $x = &$array1[1]; // Unused reference $ar

    kousukekayo
    kousukekayo 2009/06/13
    参照渡し。prototypeの継承。PHPにはprototypeはないか・・・。
  • 第3回 演算子と関数の噂を検証 | gihyo.jp

    はじめに 今回は演算子に焦点をあて、同様の動きをする演算子や関数と比較検証を行います。 ‘==’と‘===’ ‘==⁠’と‘⁠===⁠’とを比較します。‘⁠===⁠’は値だけではなく型も含めて比較を行う演算子です。 まずはベンチマークを取ってみます。 benchmark_equal.php <?php $t = microtime(true); $i = 0; while($i < 1000) { if ('a' == 'b') {} ++$i; } $tmp = microtime(true) - $t; var_dump($tmp); ?> benchmark_identical.php <?php $t = microtime(true); $i = 0; while($i < 1000) { if ('a' === 'b') {} ++$i; } $tmp = microtime(

    第3回 演算子と関数の噂を検証 | gihyo.jp
    kousukekayo
    kousukekayo 2009/06/13
    最速化
  • JavaScriptのオブジェクトについて考察してみた - あと味

    JavaScriptを勉強しているとオブジェクトとはなんぞや?ということがわからなくなってきます。選択肢が増えれば増えるほど。 JavaScriptには、同じように見えて、実は同じではないデータがあります。それらのオブジェクトについて、区別して説明が付けられるように、自分なりに考察してみました。勉強中のアウトプットなので、ここで書いた内容は事実とは大きく外れているものかもしれません。とにかく不明瞭な部分を自分なりに理由づけしたかっただけです。 サンプルコードを試される場合は、FirefoxのFireBugにあるコンソールに貼りつけて実行するか、Safariの開発ツールにあるコンソールに貼りつけて実行してください。それがわからない方は console.log の部分を alert に置き換えて確認してください。 話がややこしくなるので、今回はプロパティしか扱っていません。 名称の定義について

    JavaScriptのオブジェクトについて考察してみた - あと味
    kousukekayo
    kousukekayo 2009/06/12
    出た!javascript
  • PHP25行で書くURL短縮プログラム:phpspot開発日誌

    Writing your own URL shortener in 25 lines of PHP :: Jaisen Mathai PHP25行で書くURL短縮プログラムが公開されています。 案外簡単なので、自分用に使いやすくカスタマイズして公開してみるのもよいかもしれません。 SQLスキーマ、mod_rewriteの設定についても書かれています。 関連エントリ URLを短くできるTinyURLのAPIPHPから簡単に使える「PEAR::Services_TinyURL」 TinyURLよりも短いURLが作れるURL短縮サービス「u.nu」 分かりやすいURL短縮化サービス『Shorty』

    kousukekayo
    kousukekayo 2009/06/12
    emptyempty??