タグ

phpに関するtohokuaikiのブックマーク (240)

  • Google App EngineでPHPが動きました - moriyoshiの日記

    詳しいことは明日書くけども、QuercusのSVN版とResinのソースの一部を使って、あとパッチあてまくって何とか動かせました。キャッシュなどでGAE固有の調整が必要なのでforkしようと思っています。 sample 1 sample 2 This is a quick attempt to run PHP scripts on GAE using Quercus with a bunch of patches applied. I'm thinking of forking the original code as it needs lots of site-specific changes in content cache and a few more parts.

    Google App EngineでPHPが動きました - moriyoshiの日記
  • 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found

    2009年03月19日18:00 カテゴリLightweight Languages 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ ああ、まただよ... かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜 正規表現って、プログラミング言語間の差が少ないサブ言語なのに、なぜ「PHP」がつくとダメ正規表現ばかり登場するのか。うんざりだ。 かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜メールアドレスは厳密にチェックしようとするとなかなか難しいのですが、簡単なチェックだったらこれでOKぽいですね。 /^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$

    「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found
    tohokuaiki
    tohokuaiki 2009/03/19
    PHPerさんへ $regexp = '@^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&\'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&\'*+/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&\'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&\'*+/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$@';
  • PHPのsort関数は相当おかしい - hnwの日記

    追記(2009/02/28 15:35):ソートする配列の要素が数値または数値形式の文字列のみの場合は、<、==、>が推移律を満たすので、この記事のような矛盾は起こりません。念のため。 オヤジギャグがこらえられなくなったら立派なオヤジだと思います。それはさておき、今日はPHPのsort関数が不思議な挙動をする例を紹介します。 sort関数の紹介 sort ― 配列をソートする 説明 bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] ) この関数は配列をソートします。この関数が正常に終了すると、 各要素は低位から高位へ並べ替えられます。 PHP: sort - Manual マニュアルをみる限り普通のソート関数です。省略可能な2番目の引数の意味は次の通りです。 sort_flags オプションの 2 番目のパラメータ s

    PHPのsort関数は相当おかしい - hnwの日記
  • 2009-02-22

    開発環境は、いつの間にか非効率になっていることがあり、定期的に見直す必要があると考えている。 普段、PHP のコードは Ubuntu 上の emacs を使って編集しているのだが、そのままだと何だか使いにくいが、あまり気にせず使っていた。 まずは、php-mode をインストールすることにする。 $ aptitude install php-elisp.emacs に以下を追加することで、pear のコーディング規約に準拠し、CakePHP のビュー (ctpファイル) も php-mode で表示させる。 (custom-set-variables '(php-mode-force-pear t)) (add-to-list 'auto-mode-alist '("\\.php\\|\\.ctp\\'" . php-mode)) マニュアルが整備されているので、これを見ながらちょっとずつ

    2009-02-22
  • mb_check_encodingは何をチェックするのか(その1 SJIS編) - hnwの日記

    (2009/02/15 17:20)「個人的な感想」を追記しました。また、下記はPHP5.2.1以降の挙動です。PHP5.2.0以前のmb_check_encodingは更にカオスなので、あまり使い物にならないと思います。 (2009/02/16 12:30)追記2:バグっぽいと思った件は当にバグで、修正がhttp://news.php.net/php.cvs/56276の通り取り込まれました。PHP5.2.9から修正される予定です。 (2009/02/22 16:20)追記3:他のエンコーディングについても調査しました。「(その2 EUC-JP編)」と「(その3 UTF-8編)」も合わせてご覧下さい。 PHPのmb_check_encoding関数が一体何のチェックをしているのか、エンコーディングごとに一通り調べてみます。 まずはSJISとSJIS-win(CP932)について調べてみ

    mb_check_encodingは何をチェックするのか(その1 SJIS編) - hnwの日記
    tohokuaiki
    tohokuaiki 2009/02/17
    こんな関数知らなかった
  • gnu dateを使って日付を求める

    今年のleap second祭りはけっこう盛り上がりましたね。個人的なMVPはうるう秒のNTT時報‐ニコニコ動画(ββ)だったと思います。 相対的な日付って さて、10日後っていつだっけ?って思ったときに % date -d "+10day" +%Y/%m/%d 2009/01/31とか % phsh <?php date('Y/m/d', strtotime('+10day')); string(10) "2009/01/31"などとみなさん日々やっていると思いますが、意外にできないのが、『今月の月末って何日?』問題です。個人的にphpでやる最適解は、『今月の1日の1ヶ月後の前日』ってことで <?php $base = time(); $date = date('Y/m/d', strtotime('+1month '.date('Ym', $base).'01') - 1); var_

    gnu dateを使って日付を求める
    tohokuaiki
    tohokuaiki 2009/01/21
    時間のなんとかかんとか
  • 現行版のPHPに任意メモリ参照バグ – 攻撃コード付き

    (Last Updated On: 2018年8月13日)随分前から共有型Webホスティングサービスでは安全性を確保できないので、安全性を重視するサイト(ECなど)は最低限でも仮想ホスト型の共有サービスを利用すべきである、と言っています。 今回のエントリはPHPをApacheモジュールで共有型ホスティングサービスを利用しているユーザに影響します。SSLを利用している場合は秘密鍵を盗まれます。このバグはPHP 5.2.8でも修正されていません。当然ですがPHP 4.4.9でも修正されていません。 Milw0rmのアドバイザリ http://www.milw0rm.com/exploits/7646 には、そのまま使える、任意のアドレスのデータを参照するコードまで付いています。秘密鍵を盗むことは簡単です。 誤解してはならない事ですが、これはPHPに限った問題ではありません。PHPでは度々このよ

    現行版のPHPに任意メモリ参照バグ – 攻撃コード付き
    tohokuaiki
    tohokuaiki 2009/01/05
    あとで、exploit読む
  • SQLインジェクションのサンプルが動かない - ockeghem's blog

    前回に引き続き、はじめてのPHPプログラミング 基編5.3対応のゆるいところ第四段は、SQLインジェクションのサンプルについてだ。 書にはプログラミングの入門書としては珍しくSQLインジェクションの説明がある。それはよいことなのだが、P242の以下の記述には少し問題がある。 また、「'; UPDATE addressbook SET address = '北海道」という文字列が代入されていたら…。お分かりですね。次のようなSQLになり、すべての住所が書き換えられてしまいます。 SELECT name, address FROM addressbook WHERE id = ''; UPDATE addressbook SET address = '北海道'「はじめてのPHPプログラミング基編5.3対応」P242より引用 SQLのSELECT文とUPDATE文がセミコロンで区切られてい

    SQLインジェクションのサンプルが動かない - ockeghem's blog
    tohokuaiki
    tohokuaiki 2008/11/12
    shimookaさんPostgresを念頭に置いてたのかなー。
  • 中級者の自分が、PHPとかプログラミングに対して思ってること : ウェビンブログ

    昨日のオフの流れで、「第1回 LOCAL PHP部 (aka PHP北海道) のつどい 」に行ってみました。 一時間遅れで行ったので、当に次回以降参加の下見でしたが。 後半は参加者の自己紹介となったのですが、 参加者の傾向が 「普段は他の言語を扱っていて、PHPも(言語としては微妙だが)勉強してみよっかな」 というプログラマと 「いやー、仕事で必要になっちゃってこれから勉強です」 というデザイナーにきっちり二分されていて、PHPらしく興味深かったです。 この状況を受けて主催の人は 「プログラミング初心者のデザイナーさんたちに、これからのPHP部の傾向に求めるものを聞いてみたい」 と言いました。でも、まだ教を読んでいる段階の人だと、そもそも自分が何に疑問を持っているのかというのもわからないものです。 私は、まだまとまったアプリケーションは作れませんが

    tohokuaiki
    tohokuaiki 2008/11/12
    書いてることすべて正解です。
  • PHP開発者が便利に使える10のスニペット集:phpspot開発日誌

    The html blog | 10 code snippets for PHP developers I've compiled a small list of some useful code snippets which might help you when writing your PHP scripts PHP開発者が便利に使える10のスニペット集が紹介されていました。 メールアドレスチェック簡単化 php-email-address-validation クラスを使ったメールアドレスチェック http://code.google.com/p/php-email-address-validation/ include('EmailAddressValidator.php'); $validator = new EmailAddressValidator; if ($valida

    tohokuaiki
    tohokuaiki 2008/11/11
    rand()じゃなくて、mt_rand()くらい使おうよ・・・。4倍速ですよ。
  • “$instance = new self;” とか | 眠る開発屋blog

  • MOONGIFT: » 必見!怖くなるくらい優秀なCMS「concrete5」:オープンソースを毎日紹介

    これまで多数のCMSを見てきたが、ここまで完成度が高いと言えるものに出会ったことはなかった…そう言えるくらい凄い。このどきどき感はDekiWikiに触れた時に感じたものに近い。 見たまま編集できるCMS CMSと言えば、ユーザ画面と管理画面に分かれていて、管理画面はモジュールやテーマの設定、各項目の並びを指定するのが通常だ。実際の出力結果はシステム任せで、その点が柔軟性に欠ける点でもあった。 しかしこれは違う。見たまま編集でき、さらに高い柔軟性を維持している。 今回紹介するオープンソース・ソフトウェアはconcrete5、デザイン、管理、コンテンツ作成全てが高度なCMSだ。 相当個人的な感情が入ってしまっているのは、同じようなシステムを構築する予定があったからだ。だがconcrete5は完成度も高く、多少の改造さえ施せば十分な気がする。やはり下手に開発コストをかけるよりもオープンソースで探

    MOONGIFT: » 必見!怖くなるくらい優秀なCMS「concrete5」:オープンソースを毎日紹介
    tohokuaiki
    tohokuaiki 2008/11/07
    デモサイトより先にソースコードを見てがっかりしてしまう自分が嫌だ・・・。
  • AngelicWing Diary - [毒 php] 「CodeIgniterが急激によくなってきた」というエントリが良くなってきている点を全く指摘していない件について

    Oct 9,2008 (Thu) 07:42 - [毒 php] 「CodeIgniterが急激によくなってきた」というエントリが良くなってきている点を全く指摘していない件について 「CodeIgniterが急激にいやになってきた」というエントリに対して「CodeIgniterが急激によくなってきた」というエントリがあがってるというのを聞いた。 で、ざっくり両者を読んでみたんですが言及されているエントリより、言及しているエントリのほうに違和感を強く覚えてしまったのでいろいろ書いてみる。 このエントリの存在を教えてくれた友人が「たまには技術エントリをかいてください、もう何ヶ月かいてないんですか!」って脅してきたからじゃないよ>< ちなみに自分の立ち位置としては、使ってきたフレームワークは 自作>mojavi2>自作>mojavi3>mojavi3+独自>symfony0.4>symfony

    tohokuaiki
    tohokuaiki 2008/10/09
    同意。そもそも1年前のエントリに反論してる時点でおかしいだろ。
  • おまいらもっとextract()使い倒せ!! - elf's blog

    http://www.machu.jp/diary/20080906.html#p01 いやいや.extract()は便利な関数です.使うのをやめるのはもったいない. もう少しだけ覚えることができちゃいますが,少しだけなのでそれを覚えてextract()をもっと使い倒しましょう. 決め事 1個だけルールを追加してしまいましょう.それができればextract使い放題です.下記はそのルールの一例です. 大文字アルファベット1文字とアンダーラインで始まる変数名(例えば「P_」,「G_」,「S_」)はextract専用 例えば「$S_foo」,「$S_bar」といった変数名はextract()で作成される変数の名前として予約し,自分で設定はしないようにします. 実際のコード 上記を併用し,extract()には第2引数に必ずEXTR_PREFIX_ALL,第3引数に大文字アルファベットを追加します

    おまいらもっとextract()使い倒せ!! - elf's blog
    tohokuaiki
    tohokuaiki 2008/09/09
    他人のコードで、「この変数どこで定義してんだー!」って探しまくってextract()されてたとこがあって、自分はするまいと心に誓ったあの日(遠い目)
  • SimpleXMLとXMLReaderのまとめ(PHP勉強会で話してきたコード) - 肉とビールとパンケーキ by @sotarok

    で。 第34回PHP勉強会資料 - 肉とご飯と甘いもの @ sotarok をUPしてこれでいいや、と満足していたら、即座にid:maru_ccさんからツッコミが入ってしまったので、 仕方ないので(ぉ、コードもUPします。 チューニング、というか、大規模なXMLファイルを扱うところ、もうちょっと色々検証してデータ出したいのですが、なんていうか気力がないので(ぉ、とりあえず先日はなした内容だけでも、と思ってUP。 SimpleXMLのインスタンス生成 SimpleXMLのインスタンスの生成方法は2種類×2種類あります。 文字列から、インスタンスを生成 文字列から生成する場合、一番楽なのは、以下のように、simplexml_load_string関数を使います。例えば、以下のようにします。 <?php // $xml_string に、XML文字列が入っているものとする $xml_string

    SimpleXMLとXMLReaderのまとめ(PHP勉強会で話してきたコード) - 肉とビールとパンケーキ by @sotarok
  • 新規

    盾集域名停放【dns1.dopa.com,dns2.dopa.com】精准化的网站链接服务!

    tohokuaiki
    tohokuaiki 2008/07/14
    大いにアリなんだけど、カスタマイズしたところと本体とのバージョンアップとどう整合性をとるかが大問題。
  • http://nagiesv.ddo.jp/PJ

    tohokuaiki
    tohokuaiki 2008/07/11
    JavaでPHPを記述
  • 「激論!PHPの次に学ぶ言語はこれだ」テーマ募集中 - ひがやすを技術ブログ

    Slashdot.jpでPHPカンファレンスのパネルディスカッションのテーマを募集していますね。 http://slashdot.jp/developers/article.pl?sid=08/07/09/0341255 タレコミ子の個人的な思いとしては、以下のようなものがあります。 PHPカンファレンスに来た人にPHP以外の文化を知ってほしい。 PHPカンファレンスに来た人にPHPに関してDISられて損をさせた気分のまま帰って頂きたくはない それでも無難な終わり方をするセッションにはしたくない こうした思いを議論に反映させたいと考えつつ、正直なところその内容に悩んでいます。また、タレコミ子一人の考えることより皆様のご意見をいただければよりよいパネルディスカッションとなると考えています。 アレゲな皆さんの視点からは、どのような話をパネラーにして貰いたいと思いますか? 「激論!PHPの次に学

    「激論!PHPの次に学ぶ言語はこれだ」テーマ募集中 - ひがやすを技術ブログ
    tohokuaiki
    tohokuaiki 2008/07/10
    クライアントと言えば、今はC#じゃないの?Mac?知らん。
  • モジュール版PHPで「If-Modified-Since」に対応する

    ページ情報 制作日 2004-01-25 最終更新日 2004-08-24 参照用URI http://www.arielworks.net/articles/2004/0125a 分野 PHP CGI版PHPではApacheがうまく計算してHTTPリクエストヘッダの「If-Modified-Since」に対応してくれるらしいが、モジュール版PHPでは自力で実装しない限り常に「200 OK」が返される。はてなアンテナなどのアンテナ類のなかには「If-Modified-Since」を元に更新の判定を行っているものがあるが、PHPで生成しているページでは上記の理由で結局全体をGETすることになってしまう。そこで今回はこれに対応するための関数を作ってみる。 Last-Modifiedヘッダを送信するだけならば、以下の手順は必要ない。『PHPで「Last-Modified」を送信する』を参照のこと

  • PHPの実行をPHPのソースコード(C言語)のレベルで見る方法 - suztomoのはてなダイアリー

    PHPはソースコードを読めばわかるとおりC言語で書いてあります。 そのC言語の中でPHPがどんな処理をしているのかをデバッガであるgdbを用いて見ることができるのでそれを紹介します。まぁ普通のgdbの使い方なんですが:p ソースをダウンロードしてコンパイル PHP-5.2.6のソースをダウンロードします。 まず./configureするとのMakefileができます。 このMakefileの中で-gオプションがついていることを確認しましょう。*1 これがデバッガ(gdb)用のオプションで、コンパイルされたバイナリファイルにソースコードとの対応付けができます。 次にmakeします。時間がかかります。 サンプルファイル makeしている間に次のようなPHPファイルを作成しましょう。 <?php $i = "12"; $k = intval($i); ?> これは文字列の"12"をintval関

    PHPの実行をPHPのソースコード(C言語)のレベルで見る方法 - suztomoのはてなダイアリー