PHP

1/2ページ

軽量なルーティングライブラリ【AltoRouter】

  • 2019.04.26

AltoRouterは軽量でパワフルなライブラリです。 単一ファイルで、依存するライブラリもないため、本格的なシステムの構築から、カジュアルなアプリケーションの作成まで幅広く活躍してくれます。 動作確認環境 PHP 5.3+ インストール Using Composer Without Composer 使い方 .htaccess index.php Laravelライクに使う AltoRouter […]

PHPでのSingletonの実装と使い方

  • 2019.04.19

Singletonとは インスタンスが一つしか存在しないことを保証するデザインパターンです。 使用するインスタンスを1つだけにすることで、インスタンスの初期化の省略やパラメータの共有などを行うことができます。 実装例 使用例 Modelで使用するPDOをインスタンスを作成する毎に毎回初期化するのは、コストの無駄なのでPDOのWrapperクラスをSingletonし共有する

危険なXSS対策

ネットで見かけたXSS対策 最近ネットで、次のようなコードでXSS対策を行なっているサイトを見かけました。 皆さんはこの実装を見てどう思いましたか? 正直、僕はゾッとしました。 今回は、一部サンプルコードなので、ごく一部のタグしか置換していませんが、 皆さんは全ての危険なタグを消去する完璧な正規表現を書く自信はありますか? 僕はないです。 仮に<scriptのような形で全てのタグを置換できた […]

なぜXSS対策が大事なのか?

最近ネットでは、XSS攻撃がし放題のSNS(?)があり話題となていますが、なぜXSS対策を怠ってはいけないのでしょうか? XSS攻撃とは XSS(クロスサイトスクリプティング) は、JavaScriptをサイト内に埋め込み、任意のコードを実行してユーザーを攻撃する手法です。 XSS対策を行っていないと任意のJSをサイト内に埋め込むことができてしまうので、ユーザーを任意のサイトに飛ばすだけではなく、 […]

cURLの様々な使い方

基本 $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $url ); // option... $result = curl_exec( $ch ); curl_close( $ch ); POST $params = [ 'key'=>'value', ]; curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, […]

PHPでガチャ実装

  • 2018.10.11

今回は、PHPでソシャゲーのガチャを実装する方法を紹介したいと思います。 ガチャを実装するロジックはいろいろと考えられると思いますが、 僕は、まず、排出レアリティを確定からそのレアリティ内でランダムに選ぶのが簡単で初心者にはいいと思います。 ガチャのレアリティと排出率 今回実装するガチャのレアリティと排出率はシンプルに下の3つで行きたいと思います。 レアリティ 排出率 SSR 3% SR 12% […]

PHP7 define()とconstの違い

  • 2018.10.04

PHP7には、定数を定義することができる構文が2つ存在します。 <?php define('foo', 1); const bar = 1; defineよりもconstの方が関数を呼び出さないので高速に処理をすることができますが、その分制約がいくつかあります。 constではできないこと constの右辺には、式や関数を書くことができません。 <?php const foo = 1+ […]

filter_inputのフィルタでよく使うもの

  • 2018.08.06

filter_inputのフィルタは、すぐに忘れてしまうので、個人的によく使用するものをここにまとめておきます。 検証フィルタ フィルタ 内容 FILTER_VALIDATE_INT int型 FILTER_VALIDATE_FLOAT float型 FILTER_VALIDATE_BOOLEAN bool型 FILTER_VALIDATE_URL url FILTER_VALIDATE_EMAI […]

既存のソースを殆ど変えずにfile_get_contents()をcURLにする

PHPで外部ファイルを読み込むとき用に用意されている、file_get_contents関数ですが、一部の外部サイトを上手く読み込めなかったり、タイムアウトを指定していてもタイムアウトされなかったりとAPIなどのデータを取得するには向いていない関数です。 なので、file_get_contents関数よりも速くで、file_get_contents関数で上手く読み込めないサイトを読み込めたりできる […]

PHPを書くときに使っているATOMのpackage5選

ぼくがPHPを書くときに使用しているATOMのpackage5選です。 packageはATOMを開いて「File -> Settings -> Install」からインストール可能です。 less-than-slash </と入力するだけで、HTMLの閉じタグを補完してくれるpackageです。 頭も使わずにただ、タン!タン!ターン!とタグが閉じれるので、楽しいしラクに閉じタグ […]