An explanation of your regex will be automatically generated as you type.
PHPカンファレンス関西2016の基調講演です。
2007年8月から、PHPユーザ会のWebサイトは新しいコンテンツに移行いたしました。古いコンテンツは oldwww.php.gr.jp より閲覧していただけます。 PHP とは PHP は、オープンソースの汎用スクリプト言語です。 特に、サーバサイドで動作する Web アプリケーションの開発に適しています。 言語構造は簡単で理解しやすく、C 言語の基本構文に多くを拠っています。 手続き型のプログラミングに加え、(完全ではありませんが)オブジェクト指向のプログラミングも行うことができます。 Linux や FreeBSD 等の多くの Unix 系システム, Microsoft Windows, Mac OS X など主要な OS で動作します。 また、Apache や Microsoft IIS を始めとした多くのウェブサーバをサポートします。 オープンソース なライセンスでリリースされて
弊社本社の麻布十番移転に伴い、本社近くの麻布図書館を利用しています。麻布図書館は土地柄のイメージにあう瀟洒な建物で、蔵書がない場合は港区の他の図書館から取り寄せ(無料です)ができますので、よく利用しています。今回は、山田祥寛さんの「10日でおぼえるPHP入門教室 第4版 」を借りて読んでみました。一読して、本書がセキュリティにもよく配慮されていることがわかりましたので、以下にご紹介したいと思います。 クロスサイトスクリプティング(XSS) 表示の際にHTMLエスケープするという原則を忠実に守っています。そのため、下記の e() という関数を定義して呼び出しています。 function e($str, $charset = 'UTF-8') { return htmlspecialchars($str, ENT_QUOTES, $charset); } その他にもXSS対策として重要な下記の
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog saegusa2017-04-16Yoshihiro was a network engineer at LINE, responsible for all levels of LINE's infrastructure. Since being named Infra Platform Department manager, he is finding ways to apply LINE's technology and business goals to the platform. こんにちは。LINEでネットワークやデータセンターを担当している三枝です。2017年1月にJANOG39で登壇する機会を頂きましたので、今回
携帯サイトはキャリア・端末ごとに仕様が異なることを説明してきました。そのため多くの場合、プログラムにより各キャリア・端末にあわせた方法で、出し分けを行っていく必要があります。携帯サイトを作る上でまず大切になるのが、アクセスしてきている携帯の、キャリアと端末を判別するところと言えるでしょう。その判別方法について見ていきたいと思います。 キャリアを判別する方法 まずキャリアの判別について見ていくことにしましょう。キャリアの判別には大きく2つの方法があります。 ユーザーエージェントでキャリアを判別する方法 IPアドレスでキャリアを判別する方法 このどちらかを使って判別をすることになります。 ユーザーエージェントで判別する方法 ユーザーエージェントの情報からアクセスしてきている携帯キャリアを判別する方法です。携帯端末はHTTPリクエストのユーザーエージェントにアクセス端末の情報を記述してきます。こ
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
* NaN でなく PHP_INT_MIN から PHP_INT_MAX までの範囲内の値に限る ** 数値形の文字列のみ。数値形の文字列に他の文字が続く場合も使えるが、 Notice が出る *** __toString メソッドを持つもののみ 弱い型検査モードで行われる暗黙の型変換は、PHP が従来他の構文(算術演算子や条件式、組み込み関数の呼び出しなど)で行ってきたのと同等のものです。 厳密モード 一方、厳密な型検査のモードを使う場合は、関数は宣言されたのと正確に一致する型のみを受け付けるようになります(int → float の拡大変換をのぞく)。 ファイルの先頭に declare(strict_types=1); と書くことで、そのファイル内での関数呼び出しの際に厳密モードでの型検査が行われるようになります*1。 以下のように使います。 <?php declare(strict_
CSRF(Cross Site Request Forgeries)は数年前にその危険性が広く認知された攻撃手法です。Webページを見ただけで、普段自分が利用しているログインが必要なサイトに意図しないリクエストが送信されたりする問題です。 CSRFの動作原理 CSRFは攻撃用の情報を含んだWebページやEメールを利用して攻撃します。被害者が攻撃用のページを表示したり、URLをクリックすると、攻撃対象のWebサイトに利用者が意図していないリクエストを送信します。 図1 CSRF攻撃 CSRFによる不正なリクエストは被害者からリクエストなので、ログインが必要なサイトであっても既にユーザがログイン済みの場合、正規のユーザからのリクエストとして攻撃対象のWebサーバはリクエストを受け付けてしまいます。 ログインが必要ない公開サイトであっても、問い合わせフォームから大量の不正な情報が登録される、など
8. Objective-C - (void)viewDidLoad { [super viewDidLoad]; MonsterList* ml = [[MonsterList alloc] initWithListName:@"EVOLUTION"]; NSMutableArray* evolutionIds = [[NSMutableArray alloc] init]; for (NSDictionary* item in ml.items){ if (! [[item allKeys] containsObject:@"evolution_id"]){ continue; } [evolutionIds addObject:item[@"evolution_id"]]; } _materials = [DBUtil evolutionMaterialsWithEvolutionI
PHPは実用的な言語 こんにちは。新原と申します。本連載では、PHPプログラミング診断室ということで、世のPHPコードが健全になるべく、診断していきたいと思います。よろしくお願いします。 PHPを開発したRasmus Lerdorf氏は、「PHPは歯ブラシのようなものだ」とPHPを表しています。歯ブラシは毎日使うもので、それは仕事であり、シンプルな道具である、と。筆者はこの発言を知ったときにPHPを端的に表した良い表現だと感じました。そう、PHPはシンプルな道具ゆえに誰もが簡単に使い始めることができます。HTMLの中に埋め込んで、動的にHTMLを生成するのはとても簡単です。また、コードも柔軟に書くことができ、ユニークな書き方をしてもそれなりに動いてくれます。 PHPは、これまでとても多くのユーザを獲得してきました。特に特徴的なのが、プログラミングを行う人(プログラマですね)だけではなく、
こんにちは。新原です。PHPプログラミング診断室はじまりました。巷に溢れる病めるPHPコードを診断していきたいと思います。 PHPのコードと聞くとどういったイメージを想像されるでしょう? 昔からPHPを知っている方であれば、まずイメージするのが、HTMLとPHPが混在するコードではないでしょうか。HTMLの中にPHPが書けるのは大きなメリットでもあります。ただ、すべての処理がHTMLの中に混在すると、これはなかなか理解しづらいコードになっていきます。もしかすると、そんなコードを見て、PHPに良くないイメージを持った人がいるかもしれません。 初めての診断は、まさにHTMLとPHPが混在するコードです。では、お入りください。 関数定義がなく、流れるようなコードの妙技 今回のPHPコードは、2002年ごろに書かれたものです。とあるWebサイトで稼働していました。内容は、よくあるメールマガジンの申
こんにちは、エンジニアの王です。 今回はデザインパターンと、デザインパターンの中の「Strategy」について紹介したいと思います。 デザインパターンとは? 端的にいうと、「よくある問題へのよくある解決策」です。 ここでは、あくまでもソフトウェア設計の場合に限定しているのですが、さまざまなコンテキストで活かせる概念です。 「今までの経験上、この手の問題なら、この方法(パターン)でやればうまくいくよ!」という経験則は誰にでもあると思います。それがゲームの場合なら「攻略法」、料理の場合なら「レシピ」、語学の場合なら「定型文」だったりします。 ソフトウェア設計の場合、特にオブジェクト指向プログラミングにおいて言うなら、「デザインパターン」とは、過去のソフトウェア設計者が失敗に失敗を重ね、試行錯誤の中から導き出した再利用しやすいノウハウの集大成のようなものです。 そう、要するに、柔軟性、拡張性、再
p <<PHP_VERSION <?php PHP_VERSION ;print "\033[1F\033[1M"; //.tap{ define_method :range, -> s,e { s.upto e } } //.tap{ define_method :array_map, -> f,seq { seq.map{ |x| f.(x) } } } //.tap{ define_method :function, -> x,&b { -> x { $x=x;b.call } } } array_map(function($x){ print $x % 15 == 0 ? 'FizzBuzz' : ($x % 3 == 0 ? 'Fizz' : ($x % 5 == 0 ? 'Buzz' : $x)); print "\n"; }, range(1,100)); ruby php.
普段 Scala でトレイトを使いまくってるけれども PHP にも 5.4 からトレイトが入った。 trait の良いところは多重継承のできない言語で多重継承っぽいことができることだ。 use, use とつけていけば、いくらでも追加できる。DRY に書けてよいことだ。 対して悪いところはいとも簡単に複雑で暗黙的な依存関係が生まれることだ。 例えばこんなの <?php trait Greeting { public function say() { if ($this->location == 'ja') { echo 'こんにちは' . PHP_EOL; } else { echo 'Hello' . PHP_EOL; } } } class Location { } class US extends Location { use Greeting; private $location
(Last Updated On: 2018年8月13日)PHP7が今年の秋リリースされる予定です。まだまだ多くの変更が行われる予定ですが、現状を簡単にまとめてみたいと思います。代表的な物のみ取り上げています。 ご存知ない方の為に書いておきます。現在リリースされているPHPはPHP5です。次のPHPはPHP7になり、PHP6はリリースされません。PHP6をUnicodeをネイティブ文字列としてサポートするバージョンとして開発されましたが、文字エンコーディングチェックを内部で自動的に行おうとするなど、無駄が多く遅いため破棄されました。(文字エンコーディングのバリデーションは本来アプリでするものです)このため、PHP6はスキップされ次のPHPはPHP7になります。 追記:PHP7.0は既にリリースされています。概要はPHP 7.0の概要・新機能・互換性、詳しくはマイグレーションドキュメントをご
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く