タグ

phpに関するtiadeen2のブックマーク (97)

  • PHPのOpenSSL関数を利用して暗号化する例

    (Last Updated On: 2021年2月15日) 色々やることがあってブログを更新できていませんでした。久々のブログはPHPのOpenSSL関数を使ってAES-256-CBCを使って暗号化する例です。今時のハードウェアとソフトウェアならハードウェアAESが利用できるので普通はAES-256-CBCで構わないでしょう。 ”パスワード”だけで暗号化する例 暗号を利用する場合のポイントは以下の通りです。 IV(Initialization Vector ソースでは$iv)にはランダムな「バイト」を利用する。IVに16進数のハッシュ「テキスト」を使うと折角のIVの空間を半分にしてしまいます。IVには毎回ランダムバイトを設定する。鍵($key)には「バイト」を利用する。IVと同様にハッシュ「テキスト」などを使うと鍵空間が半分になってしまう。人に256ビットの鍵を要求するのは非現実的なので、

    PHPのOpenSSL関数を利用して暗号化する例
  • SwiftMailerを使ってメール送信する - 本日も乙

    皆さんは、PHPでメール送信する際に何を使っていますか? mail(), mb_send_mail(), PEAR::Mailなど様々な関数やライブラリがありますが、最近のモダンなライブラリとして SwiftMailer があります。 SwiftMailerはPHP5.2以上で動作するメールライブラリで、PEARやComposer などで簡単にインストールでき、Symfony2 にも組み込まれています。 今回は SwiftMailerをComposerでインストールして簡単なメール送信プログラムを作成してみます。 今回の目標 SwiftMailerをComposerでインストールする SwiftMailerを使って簡単なメール送信をしてみる サーバ環境 CentOS 6.4 Postfix 2.6.6 PHP 5.4.16 composerでインストール Composerのインストール c

    SwiftMailerを使ってメール送信する - 本日も乙
  • Slim Framework

    Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs. <?php use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Factory\AppFactory; require __DIR__ . '/../vendor/autoload.php'; $app = AppFactory::create(); $app->get('/hello/{name}', function (Request $request, Response $response, ar

  • ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 脆弱性について 参考リンク PHPにおけるファイルアップロードの脆弱性CVE-2011-2202 PHP 5.4.1リリースのポイント 上記に対する補足説明 PHP 5.4.1以降 PHP 5.3.11以降 どちらかを満たしているならば,脆弱性は(今のところ)無い.どちらも満たしていないと, $_FILES 変数の構造を崩す攻撃 ../ をファイル名に含めて送信する攻撃 (ディレクトリトラバーサル) の何れか,もしくは両方の脆弱性を所持していることになるので要注意. 脆弱性対策と注意事項 $_FILES Corruption 対策 改竄されたフォームからの複数ファイル配列送信対策 脆弱性が修正された環境でも 改竄フォーム対策 も兼ねて

    ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita
  • Speeding up the Web with PHP 7

    PHPCon2015 Tokyo Oct.3, 2015 http://talks.php.net/tokyo15 Rasmus Lerdorf @rasmus 20 Years of PHP!?? PHP Announcement June 8, 1995 Posted to comp.infosystems.www.authoring.cgi Subject: Announce: Personal Home Page Tools (PHP Tools) Announcing the Personal Home Page Tools (PHP Tools) version 1.0. These tools are a set of small tight cgi binaries written in C. They perform a number of functions inclu

    tiadeen2
    tiadeen2 2015/10/05
    後半はベンチマーク。HHVMは指標となっているWordPress,MediaWikiには強いがPHP7は全般的に早いよ。ただしMagento/ZenCartなどDBアクセスが多いアプリには効き目が薄い。
  • PHP 5.5.x から PHP 5.6.x への移行 のまとめ - Qiita

    PHPマニュアルの内容をまとめただけです。(勝手な感想も書いてますが・・・) 下位互換性のない変更点

    PHP 5.5.x から PHP 5.6.x への移行 のまとめ - Qiita
  • 【朗報】PHP NGは、PHP 5.6の2倍近く高速化 - WordPressも捗る! | ソフトアンテナ

    次世代PHPとして開発が進められているPHP NG (Next Generation)のパフォーマンスがPHP 5.6の2倍近くに到達していることが、ブログ記事「PHP NG now nearly TWICE as fast as PHP 5.6」で判明し話題となっています(Hacker News、Reddit)。 命令削減で高速化 ブログによるとPHP NGはまだ開発のアルファ段階ながら、5.6と比較してパフォーマンス上のブレークスルーを起こしつつあるということ。例えばWordPressのフロントページのレンダリング速度で以下のように2倍近く高速化されています。 PHP 5.6: 1000回レンダリング / 26.756秒 PHP NG: 1000回レンダリング / 14.810秒 パフォーマンス向上の秘訣は、60%のCPUインストラクションが、より効率的なコードによって廃止されたこと。

    【朗報】PHP NGは、PHP 5.6の2倍近く高速化 - WordPressも捗る! | ソフトアンテナ
    tiadeen2
    tiadeen2 2014/09/03
    「WordPressのフロントページのレンダリング速度で2倍近く高速化」PHPの何らかのフレームワークを使うようなサイトなら恩恵受けられそうかも?NextGenerationか…(5.7とは言ってない)
  • [PHP] runkit を使って time() のような環境に依存する値を返す組み込み関数が埋め込まれたコードを変更せずにテストする - Qiita

    [PHP] runkit を使って time() のような環境に依存する値を返す組み込み関数が埋め込まれたコードを変更せずにテストするPHPPHPUnittesting PHP の標準関数のスタブする方法はないか探していたところ runkit というものが見つかりました。機能が強力であるため黒魔術的な紹介をされていることが多いのですが、現実というのは残酷なもので黒魔術に頼らないといけない場面もあるのではないかなと思います。 例えば下記のように time() が直接埋め込まれたメソッドがあったとします。現在のタイムスタンプが指定の値を超えていたら true、超えていなかったら false を返すメソッドです。

    [PHP] runkit を使って time() のような環境に依存する値を返す組み込み関数が埋め込まれたコードを変更せずにテストする - Qiita
  • JenkinsでPHPプログラムをデバッグしてみよう!!

    先日社内でJenkinsについての勉強会を行ないました。 勉強会を行った際に、JenkinsでPHPプログラムをデバッグしてみましたので 今回はJenkinsを用いてPHPプログラムをデバッグするまでの設定方法について書きたいと思います。 PHPでJenkinsを使ってみたいが、設定がわからないという方は参考にしてください。 Ⅰ:環境 以下の環境で設定を行ないました。 ・OS:Centos6 ・PHP:5.3 ・フレームワーク:ZendFramework ・JenkinsURL:http://jenkins.example.com:8080 (URLはJenkinsをインストールしたマシンのアドレスに変更してください) Ⅱ:サーバ上に準備するもの 1:必要なソフト一覧 ①:Phing phpcs,phpmd,phpcpd,phpDocumentor,phpunitを一括管理することができる

    JenkinsでPHPプログラムをデバッグしてみよう!!
  • 最新のプログラミング知識へのアップデート - Qiita

    自分が現役でプログラミングをやっていた時期はPHP4全盛期で、クラスも使わず、データベースもmysql_関数を直接使うような時代でした。もちろんテンプレートエンジンやフレームワークも使わず、HTMLPHPのロジックを直書きです。JavaScriptもほとんど使っていなかったと思います。 それから数年プログラミングの世界から離れていて、つい最近舞い戻ってきたのですが、あまりにも技術が進歩していて、加齢プログラマにはついてゆくのが大変です。 新しい技術は、前提として知っていなければならない知識が多いのですね。 そんなわけで、カムバックしてから学んだことをまとめました。 PHP系 他の言語、具体的にはRuby on Railsも何度か挑戦したのですが、PHPで出来ることばかりなので、なんとなくモチベーションが上がらなくて最近はやってません。でもRuby界隈は楽しそうで羨ましい。 PDO データ

    最新のプログラミング知識へのアップデート - Qiita
  • herokuのPHP正式サポートに伴い、Wordpressを構築する上での最低限の設定方法

    今までもビルドパックを駆使したりしてherokuWordpressを運用する方法がありましたが、この度正式にPHPをサポートしたっぽいので新しい方法でwordpressを構築してみました。 ※ ちなみにherokuでのWordpress構築方法(DBの設定や、Wordpressの初期設定)についてはこちら( http://blog.mah-lab.com/2013/05/01/wordpress-on-heroku/ )のサイトが非常にわかりやすいのでこちらを参照ください。Webサーバーについての設定(.htaccessとかnginx.conf.erb)は不要です。ここではアプリの作成と最低限の設定のみ紹介します。 アプリを作成 ビルドパックなどを利用しないので、アプリ名だけ入れてください。 heroku create [アプリ名] composer.jsonの設定 herokuアプリ内

    herokuのPHP正式サポートに伴い、Wordpressを構築する上での最低限の設定方法
  • Selenium + PHPUnitで簡単エンドツーエンドテストを実現する

    ここではSeleniumとPHPUnitを使って簡単にスモークテストを実現する方法を解説します。 基礎的な内容ですが、復習ということで。 下準備FirefoxにSelenium IDEをインストールするSelenium Serverを導入する(※ダウンロードへの直リンクはこちら)どちらもhttp://seleniumhq.org/download/からダウンロード可能です。Selenium IDEを使ったテストケースの作成もうこれはあちこちのサイトで説明されているので特に説明の必要はないでしょう(笑) 簡単に言えば、Firefoxを起動し、さらにSelenium IDEをたちあげて、操作を記録していけば良いだけです。 参考サイト SeleniumでWebアプリケーションテストを自動化 (ちょっと古いですが内容は役にたちます)Selenium IDE日語ドキュメントテストケースを自動で実行

    Selenium + PHPUnitで簡単エンドツーエンドテストを実現する
  • PHP WebアプリケーションのテストにSeleniumを使う - その2:PHPからテストを実行する - オープンソースこねこね

    前回のお話 PHP WebアプリケーションのテストにSeleniumを使う - その1:SeleniumIDE編 に引き続きSeleniumについて。今回はSelenium Serverを立てて、PHPUnitと連携させてみます。 これができるとユニットテストでは難しいMVCのコントローラのテストや、エンドツーエンドテストができて、 クラス全体の構成を大きく変えるような粒度の大きいリファクタリングを安全に行うことができるようになります。 なお、以下のオペレーションはすべてCentOS6上を想定しています。 Selenium Server PHPUnitとSeleniumの連携については公式ドキュメント(日語訳あり)があります。Selenium Serverのインストール方法もここに記載されています。 http://phpunit.de/manual/current/ja/selenium

    PHP WebアプリケーションのテストにSeleniumを使う - その2:PHPからテストを実行する - オープンソースこねこね
  • フェイスブックが独自のプログラミング言語「Hack」をオープンソース化|グロースハックジャパン|Growth Hack Japan

    Edited by Ryutaro Mori(グロースハックジャパン書いてる人) 最新記事『「グロースハックとは」 FB、Twitterの成長請負人が語るあなたの考えを覆すグロースの真実』 この度Facebookは、独自のプログラミング言語「Hack」をオープンソース化しました。 Business Insiderの元記事を基に、最新情報をお伝えします。 growth hack japan最新情報をTwitterで受け取る growth hack japan最新情報をFacebookで受け取る 「Hack」とは Facebookがこのほどリリースした「Hack」は、静的プログラミング言語と動的プログラミング言語両方の要素を持ち合わせ、迅速にコーディングを行いながら(動的の特徴)、簡単にエラーを回避出来る(静的の特徴)ことに特徴付けられます。PHPファイルとの互換性もHackの魅力の1つです。

    フェイスブックが独自のプログラミング言語「Hack」をオープンソース化|グロースハックジャパン|Growth Hack Japan
    tiadeen2
    tiadeen2 2014/03/24
    チュートリアル見てきた。PHPに関数/クラスの型定義が厳格になったモノみたいですね。なんかJavaに近づいて行っててスクリプト言語とは何だったのかみたいなw
  • そろそろ Simple HTML DOM Parser を使うのはやめたほうがいい - localdisk

    Simple HTML DOM Parser といえば定番のスクレイピングライブラリで、僕も随分お世話になったわけだけど遅いし重いので Goutte 使ったほうがいいという話です。某サイトをスクレイピングするのに比較したら特にメモリ消費に大きな差がでました。 比較したスクリプトは Github においてありますので自由に使ってください。なおプロファイラは @koriym さんが Qiita にポストしたものを使用させていただきました。 PHPの簡単ベンチマーク プログラム スクレイピング対象のサイトはこのブログにしました。あざといですね。タイトルのリストを出力するプログラムです。 Simple HTML DOM Parser <?php require_once './vendor/autoload.php'; require_once './profiler.php'; $html =

    そろそろ Simple HTML DOM Parser を使うのはやめたほうがいい - localdisk
  • PHPの開発に使えるVagrantfileのまとめ | Engine Yard Blog JP

    このエントリはPHP Advent Calendar 2013 - Qiita [キータ]の1日目です。 PHPの開発に幅広く利用されるようになったVagrantですが、公開されているVagrantfileがGitHub上だけでも300件以上と色々とあるのでまとめておこうと思います。 Search · Vagrant php yandod/php5-nginx-vagrant-sample こちらは手前味噌ですが、自分が使っているVagrantfileです。素のPHPPHPUnit、各種フレームワークの動作検証に使うためにPHP5.5とNginxを構築しています。 またデータベースとしてMySQLとPostgreSQLを両方セットアップしてあり、ImageMagickも入っているあたりも特徴かと思います。 10up/varying-vagrant-vagrants 通称、「VVV」と呼

    PHPの開発に使えるVagrantfileのまとめ | Engine Yard Blog JP
  • PHP5.4のhtmlspecialcharsに非互換問題

    第3引数を指定していない場合の影響前述のように、htmlspecialchars関数の第3引数を指定していない場合、PHP5.3までは、文字エンコーディングがISO-8859-1が指定されたとみなされます。この場合、入力内容にかかわらず不正な文字エンコーディングと判定されることはありません。したがって、文字エンコーディングのチェックが働かない代わりに、エラーになることもありませんでした。 これに対して、PHP5.4の仕様により文字エンコーディングがUTF-8とみなされた場合に、Shift_JISやEUC-JPの2バイト文字が入力されると、高い確率で「UTF-8として不正」というエラーになり、htmlspecialchars関数の出力は空になります。つまり、プログラムが正常に動作しません。 htmlspecialchars関数の第3引数を指定しておらず、内部文字エンコーディングがShift_

    tiadeen2
    tiadeen2 2013/11/18
  • PHPのJSONのエスケープ

    (Last Updated On: 2023年12月8日) 追記:最近のOWASPガイドの更新でJavaScript文字列はUnicodeエンコードで安全性を確保するよう変更されました。元々このブログでもUnicodeエスケープのまま利用するように書いています。他の言語のユーザーはUnicodeエスケープを利用しましょう。PHPもASCII領域の文字をUnicodeエスケープするようにした方が良いと思います。これは提案して実現するように努力します。 JSONはJavaScriptのオブジェクトや配列を表現する方式でRFC 4627で定義されています。メディアタイプはapplication/json、ファイル拡張子はjsonと定義されています。 PHPにJSON形式のデータに変換するjson_encode関数とjson_decode関数をサポートしています。 JSON関数がサポートされている

    PHPのJSONのエスケープ
    tiadeen2
    tiadeen2 2013/11/18
    「MIMEタイプをapplication/jsonまたはtext/javascriptに設定すればJavaScriptとしてのみ評価」ということでMIMEを返さずにJSONを出力する時のjson_encode関数のオプションについて。(MIMEを返しててもやった方がいいかも)
  • What is Dependency Injection? |Articles - Fabien Potencier

    This article is part of a series on Dependency Injection in general and on a lightweight implementation of a Container in PHP in particular: Part 1: What is Dependency Injection? Part 2: Do you need a Dependency Injection Container? Part 3: Introduction to the Symfony Service Container Part 4: Symfony Service Container: Using a Builder to create Services Part 5: Symfony Service Container: Using XM

  • ComposerとPackagistでPHPライブラリを開発、テスト、公開する(1/2)

    PHP: The Right Wayを読んで、そのコンセプトに共感したので、今回、ComposerとPackagistでライブラリを開発、テスト、公開する手順をまとめておこうと思います。 Composerって Composerは、PHPのライブラリ依存管理ツールです。RubyBundlerのように依存するライブラリを設定ファイルに書いてコマンドたたけばライブラリのインストールと利用準備が整います。 また、Composer用のリポジトリだけでなく、PEARやGithubのリポジトリもComposer経由で取得できるので、とても便利です。 基的な使い方 インストール プロジェクトのカレントディレクトリにcomposer.pharをダウンロードする。これだけ。

    ComposerとPackagistでPHPライブラリを開発、テスト、公開する(1/2)