PHP

「PHPカンファレンス関西2017」参加してきました(いろいろまとめ)

2017.07.15(土) 、天候は晴れ。 場所は、グランフロント大阪(北館・タワーC8階/カンファレンスルーム)でした。 田舎者なので、近代的で巨大な建物にびっくりしてました。 今回のカンファレンスでは、基調講演でもあ […]


PHP 高速化: あいまいな判定の回避

あいまいな書き方とは PHP を早く書くための基本として、型を明示的にすること、あいまいな判定はしないこと、があげられると思います。 あいまいな判定でいうと、 === ではなく、== と書く。 または、 !== ではなく […]


Trello のクローン「php-simple-kanban」を英語にも対応しました

GitHub の ReadMe を英語で書いていたら、昨日、以下のメッセージが。 「英語バージョンはないの?」と…。 ということで、英語/日本語を config/define.php で切り替えられるようにしました。 以 […]


Trello のクローン「php-simple-kanban」に検索と画像表示機能を追加しました

自作の OSS の更新情報をお伝えします。 Github: https://github.com/mikiakira/php-simple-kanban 検索機能を追加 前から欲しかった機能です。 カードの件名と本文を対 […]


PHP の正規表現で preg_match がおかしい時は pcre.backtrack_limit の上限を増やしてみる

何が起きたか PHPの正規表現のパターンマッチ数には、上限があり、ローカルの nginx は 1,000,000 だが、Heroku はそれより少ない(おそらく 100,000) のため、例外が発生した pcre.bac […]


Slim と Twig を連携するとモデル抜きの軽量フレームワークができ、高速でサイトが作れる件について

機能自体は目新しいこともないのですが、 やってみるとやっぱり軽量で、導入も手軽なので嬉しいものです。 WordPress の設計もそうですが、PHP の優れた産物のひとつということで、 この組み合わせについて、考えをまと […]


フィードパースライブラリ SimplePie の使い方

RSSリーダを作りたいなと思っていて、ライブラリは SimplePie を使うと決めています。 このライブラリは、DokuWiki でも使われています。 記事を取得するだけなら、この記事の内容をコピペするだけでOKです。 […]


PDO 入門(データベース接続まで)

PDO は、PHP に用意されているデータベース接続クラスです。 SQL インジェクション攻撃に対する最大の防御ですので、これを使うことはデータベース管理において必須です。 ※ SQL が得意な人は、SQL を書きたがる […]


PHP 5.6 以降では、定数に配列が使えます

これは知らなかったので、ちょっとショックです。 試しに調べてみたら、ドキュメント(「定数」)にちゃんと書いてあったので、すぐに分かりました。 const ANIMALS = array(‘dog’, ‘cat’, ‘bi […]


PHP ビルトインサーバの使い方

ここ二、三年、PHPを使ったことのない人に紹介すると驚かれるのですが、PHPは単体でウェブサーバの機能を実行することができます。 PHPさえインストールしていれば実行できるので、大変便利ですし、開発環境として重宝します。 […]


PHP5 系から PHP7 への移行チェックツール php7cc を使ってみました

概要 ・GitHub https://github.com/sstalle/php7cc GitHubの概要をざっと訳すと、下記になります。 php7cc は、PHP 5.3 ~ 5.6 から、PHP 7への移行を容易に […]


DokuWiki が PHP7.1 に対応しました(2017.02.19)

人気の高いPHPのオープンソースのひとつである「DokuWiki」。 私も昨年度より、仕事に、プライベートにとフル活用しています。 標準テンプレートでモバイルにも対応しているし、データベース不要で、高速な全文検索。 コー […]


PHPエラー: Namespace declaration statement has to be the very first statement

PHP で名前空間を使うようになると遭遇するエラーかと思います。 namespace の宣言の前で require で外部ファイルを読んでいたのが原因でした。 公式のドキュメントによりますと、 「名前空間を含むファイルで […]


PHP のサポート期間とバージョンごとの一覧表

PHP は、数年でサポートが切れるサイクルを繰り返しています。 仕事で使っている大事な言語なので、どのようなバージョン管理になっているか、確認してみました。 ※ Qiita に同様の記事を投稿しています。 アクティブサポ […]


Trello のクローンを PHP で作りました

※ Qiita にも同じ記事を掲載しています。 ※ 2017.02.14 MOONGIFT さんでご紹介されました。 ※ 2017/04/27 検索機能を […]


PHP Composer を高速化する方法を簡単にまとめました

便利ですが、重たい PHP のパッケージマネージャの Composer を、とても早くできる方法をまとめました。 結論から言うと、ご紹介するコマンドを2回たたくだけで、次のことが可能になります。 ↓ ・Composer […]


ほぼPHPでGulpやGruntのようなタスクランナーを自作する

今回は、サーバサイドのエンジニアとして、タスクランナーについて考えていたことをまとめてみました。 一時期、タスクランナーにはまったことがありました。 最初はGruntで、次はGulpでした。 どちらも素晴らしいのですが、 […]


Notepad++ で tail -f する方法

※ (2016.12.11更新) v7.2.2 になって、「表示」メニューに「ファイル監視 (tail -f)」が追加されました。 以下の記事は、標準メニューにファイル監視がないバージョンでの対応方法になります。 Her […]


[PHP x Ajax] 非同期でセッションを複数処理する場合の注意点

発生した問題点: 時間のかかる非同期処理を実行 -> その処理が終了する前に画面遷移 画面遷移後、セッションを更新していると、前の画面の処理が終わった瞬間、セッション情報が古くなってエラーが発生 どうやら、非同期処 […]


PHP 配列を初期化しながらセットすると Undefined offset になる事例

PHP x Phalcon で遭遇した事例です。 Postgres のストアドクロシージャの処理をPHPに移植する案件ではまりました。 ↑ こんな環境も珍しいでしょうが…。 配列を初期化したあと、指定した回数回して、自分 […]


1年間 Phalcon2 を使ってみた感想(2016~2017)

PHP のフレームワークの中でも高速と言われている「Phalcon」の2系を1年ほど使ってみました。 いったいどんなものなのか? CakePHP や Yii2 などと比べてどうなのか、という所感を述べてみます。 自分でい […]


Phalcon セッション管理まとめ

public/index.php use Phalcon\Session\Adapter\Files as Session; // 依存性コンテナへの登録 $di->setShared(‘session’, fun […]


(Windows)PHPインストール手順まとめ

# windows の場合 PHPのダウンロード http://windows.php.net/download/ ・形式を選択する ○「Thread Safe」 (マルチスレッド対応) → Apache2系など ○「N […]


ディレクトリ・トラバーサル(パス・トラバーサル)について調べてみた

ディレクトリ・トラバーサル(パス・トラバーサル)とは 本来、公開されていないURLにアクセスすることを 「ディレクトリ・トラバーサル」 (あるいは、パス・トラバーサル)と言います。 アクセス許可がされていないページやファ […]


PHP での SQLite の基本的な使い方まとめ

sqliteのファイルは設置したディレクトリに書き込み権限を付与しておかないと 更新系の処理を実行できないので注意 バイナリモードで転送すること。 sqliteのファイルと、設置するフォルダ -> 757 ① GUIの管 […]


PHPer のための SQLite についての概要まとめ

(1) 基本概要 ・PHP5以上でバンドルされている ・小さくて軽いDBエンジン ・1ファイルで管理できるため、可搬性がある。 ・一般のDBと比較して、存在しない機能がある  ストアドプロシージャ、トリガ、外部キー制約 […]


PHPで文字数カウント

■ 半角での文字数をカウント strlen($str); ■ 半角も全角も1文字でカウントする場合(マルチバイトの場合) mb_strlen($str);


フレームワークとウィザード / 健全なプログラミングとは?

作業を効率化するために プログラムの部分とテンプレートを分けたことがありました。 テンプレート・エンジンの「Smarty」を使うと ロジックの部分とデザインとを切り離すことができるというのは かなり魅力的に思えましたし、 […]


OpenNoteのインストール方法(文字化け対策)

MOONGIFTさんのところで紹介されていたオープンソースの「OpenNote」。 Evernote や Dropbox は便利ですが、会社によっては使用禁止になっていたり、 そもそも未来永劫続くか分からない会社に、こつ […]


jQuery File Upload で日本語ファイルをアップロードするとファイル名が消える

(1) 現象 半角英数名のファイルのアップロードはまったく問題ありませんが、 日本語名が混じると、ファイル名が消え、拡張子だけが残ります。 「.gif」や、「.jpg」という状態です。 この不自然なファイル名が取得される […]



トップに戻る