タグ

phpに関するshishimarubyのブックマーク (31)

  • PHPを使う理由

    今年もやって参りました年末を彩る PHP Advent Calendar 2012 です。3年目ということですっかり恒例行事となってきましたね。今年も完走目指してみんなで頑張りましょう! 参加枠があとわずかですが残っていますので、いっちょやってみようという方は参加表明をお願いします。 PHP Advent Calendar さて、初日は前から書いてみたかったテーマです。 PHPをWebシステム開発言語として使い出してかれこれ12年が経ちました。これだけ長い間使い続けているとうことは何か理由があるわけです。そこで、あらためてその理由を考えてみました。 1. 安定して動作する まず、なんと言っても大きいのが安定して動作し続けているということです。 規模の大小に関わらず数多くのWebサイトがPHPで動作しているのは周知のとおりです。私がこれまでPHPで構築してきたWebシステムが現在でも動作して

  • 何故 FuelPHP は流行っているのか? - A Day in Serenity @ kenjis

    Google グループの参加者が 200人を突破し、そろそろ巷でも流行っていると言われ始めた FuelPHP です。 (17:44 追記) CodeIgniter からの移行ユーザが多いのは事実ですが、それだけではありません。あと、この記事は CodeIgniter との違いを指摘したものです。 (12:48 追記) まったく流行っていない地域もあるようです。 FuelPHP は何故流行っているのか? その理由の 1つには、他のフレームワーク、とりわけ、CodeIgniter、Kohana、Yii とは違い、多くのユーザが全国的にいろいろな場所で FuelPHP に関する発表を行なっていることがあります。 slideshare から、おおざっぱに抜粋してみました。slideshare にもこれ以外のものもありますし、他の場所にもあります。貼り付けるスライドが多すぎると表示の確認で Fire

  • 「8時間耐久 PHP構築の教室」を開催しました。 : candycane development blog

    今回も怒涛の8時間耐久という感じで、いつになくハードな内容になりました。 VPSを借りたりするとブログなどをみて見よう見まねで構築をする事もあるかと思いますが、ソースからPHPをビルドしてインストールするという流れを通じてPHPの動作原理や、はやりのnginx + php-fpmの構成を構築してWordPressを動かすというスパルタな感じの勉強会でした。途中、仮想マシンのMACアドレスの問題やmbstringの問題でapacheがクラッシュするなどの問題に直面しましたが、ひとまず西川さんがnginx + php-fpmWordPressを動かすというゴールには到達する事ができました。また副産物としてCでHello Worldを動かすという作業もしてみたのでビルドしてバイナリを作るという流れが身についたのかなと思います。これで4つ目の8時間耐久シリーズになったわけですが、希望があれば内容

  • PHPでのスクレイピングやDOM操作をjQueryっぽく超簡単便利にできる「phpQuery」:phpspot開発日誌

    phpmaster | Server-Side HTML Handling Using phpQuery PHPでのスクレイピングやDOM操作をjQueryっぽく超簡単便利にできる「phpQuery」。 紹介記事を読んで使ってみました。 phpQuery はjQueryのPHP版でDOMの操作をjQueryっぽくできるライブラリです。 HTMLスクレイピングはもちろん、HTMLを追加したり要素に属性を追加等のDOMを操作も簡単に行えます。 jQueryの便利さがPHP上でも十分に使えますので知っておくと確実に面倒な処理を楽に書けるようになるでしょう。 スクレイピング HTMLスクレイピングをする場合には超簡単かつ、jQueryを使ったことがある方なら抵抗なくすぐに習得できます。 ちょっとコードを書いて実験してみました。 と書くと <div id="two"></div>の中身である t

  • [3]Linuxカーネルの“巨大なロック”が原因と判明

    大規模サイトの性能改善作業とは、どういうものなのか――。リクルートの中古車情報サイト「カーセンサーnet」を全面リニューアルした体験を基に、その実態をレポートする。第1回、第2回はミドルウエアのチューニングを行った。後半はLinuxカーネルに原因があると判明するまでの調査に進む。様々なツールを組み合わせて追跡していった。 中古車情報サイト「カーセンサーnet」の性能試験が格的に始まって10日目。試験の開始当初は、ブラウザーの表示に10秒もかかるなど目標性能に遠く及ばなかった。しかし前回までで紹介したように、ファイル共有システム「NFS」の設定変更、Webサーバー「Apache」のパラメーター修正、PHPアプリケーションの見直しによって、性能は劇的に向上した。 リクルート入社3年目の私は、今回の性能検証プロジェクトのリーダーとして、得意分野を持つチームメンバーと一緒に対策を進めていた。カッ

    [3]Linuxカーネルの“巨大なロック”が原因と判明
  • PHP classの教室

    PHPで関数は使えるけれどオブジェクト指向はよくわからないという人向けの勉強会の資料です。 Ustream録画 (1/5) http://www.ustream.tv/recorded/21256905 67分 (2/5) http://www.ustream.tv/recorded/21253084 80分 (3/5) http://www.ustream.tv/recorded/21254139 60分 (4/5) http://www.ustream.tv/recorded/21254817 24分 (5/5) http://www.ustream.tv/recorded/21255084 6分 Read less

    PHP classの教室
  • 小規模なWebサイトにぴったり。PHP製のメールフォーム·TransmitMail MOONGIFT

    TransmitMailは日製の汎用型メールフォールソフトウェアです。 Webサイトにメールフォームの設置というのはよくあることです。そんな時に使える日語対応のメールフォームソフトウェアがTransmitMailです。 デモです。多数の入力項目、入力チェックに対応しています。 必須チェックのエラーです。画面上と項目の横と二つ表示されます。 メールアドレスフォーマットのチェックもできます。 半角英数などの文字種チェックもあります。 入力の後、確認画面が表示されます。 完了ページです。 確認メールも送信されて、入力内容の確認ができます。 TransmitMailはPHP5.2以上で動作します。また、マークアップエンジニアが開発したとのことで、Dreamweaverやマークアップエンジニアにとって優しい作りになっています。セッションによって重複送信を防ぐ仕組みがあります。静的サイトにメールフ

    小規模なWebサイトにぴったり。PHP製のメールフォーム·TransmitMail MOONGIFT
  • 味のりとこんにゃくゼリーのエンジニアブログ: phpを高速化する60の方法

    2012年3月15日木曜日 phpを高速化する60の方法 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo ‘文’,'字’; (カンマ区切り)の方が、’文’.'字’ (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require でファイルはフルパスで指定しよう。 09. スクリプト開始時間は time() でなく $_SERVER['REQUEST_TIME

  • PHPUnit – The PHP Testing Framework

    Welcome to PHPUnit! PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.

  • 5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!

    こんにちはこんにちは!! Webプログラミングしてますか! よく「PHPセキュリティがダメ」とか言われてるよね。 でもそれって、べつにPHPが悪いんじゃなくて、 たぶん、セキュリティとかが、まだよくわからない人が多いだけなんじゃないかな。 がんばって勉強しようと思っても、なんだか難しい理屈が並んでいたりするしね…。 なので今日は、セキュリティ対策について、 「これだけやっとけば、わりと安全になるよ」ってことを、初心者むけに、大雑把に書いてみます! 理屈がわからなくても、最初はコピペでも、 なにもやらないより、やったほうがきっとマシになる! 1. XSS対策 動的なものを表示するとき、全部エスケープすればokです! (NG) あなたの名前は <?= $name ?> ですね! ↓ (OK) あなたの名前は <?= htmlspecialchars($name, ENT_QUOTES) ?>

    5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!
  • 脆弱性を突かれて Web サイトを改ざんされてウィルス呼び出しコードを埋めこまれたファイルの調べ方と除去と対応作業と申請手続きについて

    改ざんされてウィルス配布コード埋めこまれてから復旧までの作業や申請の手続きについてまとめていきます。 追記: 「改ざんされた場合そのものの対処方法」という意味で書かせて頂きました。phpMyAdmin の脆弱性についてではなく全般的な内容となっております。誤解を与える表現となってしまい申し訳御座いません。 今回埋めこまれた不正なコード 実際のコードは改行やスペースがなくなって一行のコードとなっておりますので非常に気づきにくいです。 <?php @error_reporting(0); if (!isset($eva1fYlbakBcVSir)) { $eva1fYlbakBcVSir = "7kyJ7kSKioDTWVWeRB3TiciL1UjcmRiLn4SKiAETs90cuZlTz5mROtHWHdWfRt0ZupmVRNTU2Y2MVZkT8h1Rn1XULdmbqxGU7h1Rn

  • "PHP Apocalypse"を開催しました! | GREE Engineering

    どうも。GREE開発部の吉川(@tsuyoshikawa)です。 この記事はGREEエンジニアブログではありますが、PHP AdventCalender2011の12/21の回ともなっています。 去る12/17(土)に、弊社会場、主催私で"PHP Apocalypse"なるイベントを開催しましたので、それのふりかえりとご紹介をさせて頂こうかと思います。 イベントの概要 - ATND "PHP Apocalypse"とは このイベントはいわゆる技術勉強会ではありますが、直接的には過去にはてなブックマークで300くらいのユーザを集めた“PHP のよいところとよくないところ - id:k-z-h”というエントリーへのリアクションがきっかけになって起こっています。 エントリーの内容はPHPの批判が含まれるものとなっていますが、その批判自体にどうこうというより、エントリーを書いたid:k-z-h

    "PHP Apocalypse"を開催しました! | GREE Engineering
  • PHPのセッションアダプション脆弱性克服への道のり

    (Last Updated On: 2018年8月13日)PHP Advent Calender用のエントリです。 PHPのセッション管理は非常に簡単です。セッションをsession_start()で開始して$_SESSION配列を使うだけです。便利で簡単なセッションモジュールですがセッションアダプションに脆弱であるため、一般に言われてる「ログインする時にはsession_regenerate_id()を呼ぶ」コーディングではセッションアダプションに脆弱になってしまいます。 まずは危険性と対策を紹介します。 セッションアダプションの危険性 セッションアダプションとは外部などから設定されたセッションIDを受け入れ初期化する脆弱性です。一番分かりやすい例はTrans SIDを有効にして http://example.com/index.php?PHPSESSID=1234567890 とアクセ

    PHPのセッションアダプション脆弱性克服への道のり
  • ウェブアプリのセキュリティをちゃんと知ろう

    7. ウェブアプリの入力、処理、出力入出力ウェブサーバウェブアプリ(PHP など)外部 API サーバ(Facebook API 、決済会社など)入出力処理入出力データベースサーバ(MySQL など)ウェブブラウザ 10. ウェブサーバーを通したウェブブラウザからの入力の仕様を考えようPHP に入ってくる値は何かを知る可変長のバイト列 (文字列ではない!!)GET パラメータPOST パラメータアップロードファイルリクエストヘッダ (Cookie など)実際の処理に渡すべき値は何かを考える文字列か、バイト列か?文字コードは何か?(ウェブサーバーでバイト列を処理することってあまりないので、 PHP では基的に文字コードのバリデーションは必要だと思って良い)長さはどうか?どういう文法や構造を持つデータ?入力された値を実際の処理に渡すべき値かどうかを確認することを「バリデーション」という 11

    ウェブアプリのセキュリティをちゃんと知ろう
  • サーバーを作ろう

    4. TCP/IP送ったら送った順に届く$fp = stream_socket_client('tcp://www.nicovideo.jp:80');fwrite($fp, "GET / HTTP/1.0");fwrite($fp, "Host: www.nicovideo.jp");echo stream_get_contents($fp);fclose($fp); 6. TCP/IPちゃんと届けられる$fp = stream_socket_client('tcp://www.nicovideo.jp:80', $errno, $errstr);if ($fp=== false) { throw new Exception($errstr);}if (fwrite($fp, "GET / HTTP/1.0") === false) { throw new Exception($php_

    サーバーを作ろう
  • PHP5.3.7のcrypt関数のバグはこうして生まれた

    昨日のブログエントリ「PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)」にて、crypt関数の重大な脆弱性について報告しました。脆弱性の出方が近年まれに見るほどのものだったので、twitterやブクマなどを見ても、「どうしてこうなった」という疑問を多数目にしました。 そこで、このエントリでは、この脆弱性がどのように混入したのかを追ってみたいと思います。 PHPのレポジトリのログや公開されているソースの状況から、PHP5.3.7RC4までこのバグはなく、PHP5.3.7RC5でこのバグが混入した模様です。RC5はPHP5.3.7最後のRelease Candidateですから、まさに正式リリースの直前でバグが入ったことになります。 バグの入る直前のソースは、ここの関数php_md5_crypt_rから参照することができます。以下に、おおまかな流れを図示します。まずはバ

    PHP5.3.7のcrypt関数のバグはこうして生まれた
  • 色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)

    PHPフレームワークの速度比較では、HelloWorldを表示するのみの単純なアプリを用いた計測を元に比較表が作られることが多いです。特に後発のフレームワークは分かりやすい特徴付けとして速度をアピールする傾向にあるため、その比較表を元に N倍速いというアピールをしています。 PHPフレームワークを使うということは、DBまで絡めたWebアプリを作ることがほとんどなため、HelloWorldアプリの比較よりは、DBからレコード取得して表示するまでの処理速度を比較したほうがより現実に近い指標になると思います。特にCakePHP1系ではDBのデータ取得も独自ドライバになっていますし、モデルの処理も重いのでそこまで含めて他と比較したほうが良いと思ってます。 今回はDBから1レコード取得して表示するという簡単なアプリで各フレームワークの速度を評価しました。フレームワークに備わっているViewキャッシュ

    色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)
  • PHP しか書けなかった僕が Ruby を始めたころに思ったこと10点 « blog.udzura.jp

    RubyKaigi とか色々あって、ふと、僕がプログラミングを始めたころのことを何となく思い出したので走り書きしておきます。特に PHP に関しては記憶が曖昧なところがおおいので、 PHPer モヒカン族によるツッコミを歓迎します。 配列とハッシュが違う PHP においては、配列も連想配列もすべて array() と言う関数で生成する。むしろ、配列というものがキーを数字にしているだけの連想配列と言う位置づけだと思う。 Ruby ではもちろん、主たるコレクションには Array と Hash の二種類が存在し、区別される。最初はこの区別に若干戸惑いを覚えた。 ちなみに Python だとリスト・タプル・辞書ともっと増えるわけで、Javaのコレクションクラスに至ってはさらに多いし、この辺はどの実装が正しいとか適切とかではなく慣習なのかなあ、と思ったりする。 型(クラス)がより厳格 PHP では

  • ぼくはこうしてプログラミングを覚えた

    オリジナルはココです。フェイスブックのエンジニアでで史上ベスト3に入るといわれるEvan Priestley氏への質問「どうやってプログラミングを覚えましたか」に対する人からの答えです。 手短かに言えば 何年もの歳月の賜物というか。ぼくはただひたすらプログラミングが大好きで、(フェイスブックで働いていた)過去4年間、ほとんど他のことをしていない。その前も2.5年ほどプログラマーとして働いていたし、そのさらに前も6年くらい趣味でプログラミングをしていた。ぼくは高校も大学も中退しているので、それで空いた時間もプログラミングに費やした。つい最近フェイスブックを辞めたけど、未だに起きている時間のほとんどはプログラミングだ。 もっと詳しく言えば 月並みだが、ぼくはちっちゃい頃からコンピューターが好きで、我が家にあったヤツで(最初はMac Plusで途中からIIsiになった)で散々遊んだ。8歳か9歳

  • なぜRubyをPythonよりもPHPよりも高速化できたか - 方向

    最も有名なベンチマークサイト "The Computer Language Benchmarks Game" における最新のランキングRuby 1.9 は Python3, PHP, JRuby を追い抜きスクリプト言語としてトップクラスの値を叩き出しました。 5/4の時点では最下位に近かったので大きく前進しています。 1つのパッチで520%の高速化を達成 この高速化は私がfastaというベンチマークのプログラムを改善したことにより実現しました。 少し前Rubyのベンチマークを書くことにハマっていました。 他の人のプログラムや統計を眺めていたとき、fastaに関してPythonが異常に速いことに気づきました。 他のスクリプト言語のおよそ50倍速く、アルゴリズムが改良されていました。 fasta #6 fasta #7 この2つのコードを比較するとわかるのですが、処理が重複している箇所に

    なぜRubyをPythonよりもPHPよりも高速化できたか - 方向