タグ

phpに関するsutara_lumpurのブックマーク (165)

  • PHPUnitの使い方まとめ2016 - Qiita

    前置き 地味にこの記事が読まれ続けているみたいなのですが、内容がよい加減に古くて心苦しいので、もうちょっと現代的な内容にマイグレーションしたものを投稿しようと思います。当時と違ってQiitaにもよい記事増えているのに今更感あるのですが、あの記事に辿りついてしまった人のため……という感じで書いておきます。 大前提 PHPUnitを使ったからといって、どんなソースコードもテストできる訳ではありません。テストをし易いようにクラスを設計している必要があります。また、そのように設計していてもUnitテストに入れることの出来ない箇所は出てきます。Unitテストに入れることの出来ない箇所は出来ないと割り切らなければなりません。むしろ、どれだけのコードをUnitテストに入れることが出来るか? というのが設計者の腕の見せどころになるでしょう。極論を言うと 「どんなクラスでも疎結合に実装していなければならない

    PHPUnitの使い方まとめ2016 - Qiita
  • PHPLint

    PHPLint

  • Loading...

  • [書評] CakePHPで学ぶ継続的インテグレーション

    著者の @kaz_29 さんから「CakePHPで学ぶ継続的インテグレーション」を献して頂きました。日頃から関心のある分野なので、早速読ませて頂きました。 PHP で学ぶ継続的インテグレーション 書のタイトルは「CakePHPで学ぶ継続的インテグレーション」です。実際、書の中では、CakePHPアプリケーションを題材に継続的インテグレーションを行う手法が解説されています。 ただ、ここで紹介されている継続的インテグレーションの手法は、CakePHP 固有のものではなく、他のフレームワークでも転用可能なものです。 勝手なお世話ですが、書籍のタイトルとしては、「PHPで学ぶ継続的インテグレーション」の方が、良かったかもしれませんね:D 分散された情報がこの一冊に 継続的インテグレーション(CI)を行うには、あるツールさえ入れておけばできるというものではなく、多くのツールを組み合わせる必要が

  • The PHP Benchmark

    PHPBench.com was constructed as a way to open people's eyes to the fact that not every PHP code snippet will run at the same speed. You may be surprised at the results that this page generates, but that is ok. This page was also created so that you would be able to find discovery in these statistics and then maybe re-run these tests in your own server environment to play around with this idea your

    sutara_lumpur
    sutara_lumpur 2015/10/14
    microtime(true) で計測するのか。
  • htmlspecialchars関数やhtmlentities関数で使用されるフラグの検証 - Qiita

    $types = [ 'ENT_COMPAT', 'ENT_QUOTES', 'ENT_NOQUOTES', 'ENT_IGNORE', 'ENT_SUBSTITUTE', 'ENT_DISALLOWED', 'ENT_HTML401', 'ENT_XML1', 'ENT_XHTML', 'ENT_HTML5', ]; foreach ($types as $type) { printf('% 14s: %08b' . PHP_EOL, $type, constant($type)); } ENT_COMPAT: 00000010 ENT_QUOTES: 00000011 ENT_NOQUOTES: 00000000 ENT_IGNORE: 00000100 ENT_SUBSTITUTE: 00001000 ENT_DISALLOWED: 10000000 ENT_HTML401: 000

    htmlspecialchars関数やhtmlentities関数で使用されるフラグの検証 - Qiita
  • PHPでファイルを作成する [touch] - PHP memo

    <?PHP // 作成するファイル名の指定 $file_name = 'file.txt'; // ファイルの存在確認 if( !file_exists($file_name) ){ // ファイル作成 touch( $file_name ); }else{ // すでにファイルが存在する為エラーとする echo('Warning - ファイルが存在しています。 file name:['.$file_name.']'); exit(); } // ファイルのパーティションの変更 chmod( $file_name, 0666 ); echo('Info - ファイル作成完了。 file name:['.$file_name.']'); ?>

    sutara_lumpur
    sutara_lumpur 2015/10/10
    #PHP touch()って関数があるんですね m(_ _)m
  • [PHP] 文字列の前後から指定した数の文字を削除する | きほんのき

    PHPで文字列の前後から指定した数の文字を削除する方法のメモ。 2バイト文字が混じっていない場合はsubstr()とstrlen()を使う。全角を含む場合はmb_substr()とmb_strlen()を使う。 文字列の最後から1文字をカットしたい場合。 $str = "abcdefghijklmnopqrstuvwxyz";//文字列 $cut = 1;//カットしたい文字数 $replace = substr( $str , 0 , strlen($str)-$cut ); echo $replace;//abcdefghijklmnopqrstuvwxy 文字列の始まりの1文字をカットしたい場合。 $str = "abcdefghijklmnopqrstuvwxyz";//文字列 $cut = 1;//カットしたい文字数 $replace = substr( $str , $cut

  • How to fix PHP Warning: file_get_contents?

    I'm getting following warning: Warning: file_get_contents(C:\xampp\htdocs\test/wp-content/themes/test\images) [function.file-get-contents]: failed to open stream: Permission denied in ..\plugins\theme-check\main.php on line 29 The line 29 of main.php reads as: $other[$filename] = file_get_contents( $filename ); Here is code related to $files: $files = listdir( $theme ); $files = array_merge( listd

    How to fix PHP Warning: file_get_contents?
    sutara_lumpur
    sutara_lumpur 2015/10/08
    SimplePieのbuild/compile.phpでエラーが出る原因がこれでした。file_get_contents()にフォルダが指定されてた。if(!is_dir()) で解決。
  • GitHub - mikaeljorhult/brackets-php-code-quality-tools: Brackets/Edge Code extension that lint PHP files using several code analysis tools.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - mikaeljorhult/brackets-php-code-quality-tools: Brackets/Edge Code extension that lint PHP files using several code analysis tools.
  • PHPの設定ファイル(php.ini)を編集する

    PHP に関する設定は php.ini ファイルを使って設定します。ここでは現在 php.ini ファイルで設定されている内容を確認し、修正を行う方法について解説します。 php.iniを編集する XAMPP をインストールした場合、 PHP に関する設定ファイルである php.ini は XAMPP をインストールしたディレクトリの下にある php\php.ini にあります。 php.ini ファイルはテキストファイルですので、テキストエディタを使って表示したり編集したりすることができます。ここでは php.ini で設定されている内容の一部を確認し、編集を行います。 default_charset 最初に default_charset です。 default_charset は PHP で使用するデフォルトの文字エンコーディングを設定します。 現在は次のように設定されています。 ;

    PHPの設定ファイル(php.ini)を編集する
  • SimplePie: Super-fast, easy-to-use, RSS and Atom Parsing.

    We need developer help! Fork it, fix it, we'll pull it — on GitHub. SimplePie is a very fast and easy-to-use feed parser, written in PHP, that puts the 'simple' back into 'really simple syndication'. Flexible enough to suit beginners and veterans alike, SimplePie is focused on speed, ease of use, compatibility and standards compliance. Show some love! Wishlists for Geoffrey, Ryan P., and Ryan M. S

  • GHOST脆弱性を用いてPHPをクラッシュできることを確認した

    GHOST脆弱性について、コード実行の影響を受けるソフトウェアとしてEximが知られていますが、PHPにもgethostbynameという関数があり、libcのgethostbyname関数をパラメータ未チェックのまま呼んでいます。そこで、PHPのgethostbynameを用いることでPHPをクラッシュできる場合があるのではないかと考えました。 試行錯誤的に調べた結果、以下のスクリプトでPHPをクラッシュできることを確認しています。CentOS6(32bit/64bitとも)、Ubuntu12.04LTS(32bit/64bitとも)のパッケージとして導入したPHPにて確認しましたが、phpallで確認した限りPHP 4.0.2以降のすべてのバージョンのPHPで再現するようです。なぜかPHP 4.0.0と4.0.1では再現しませんでした。 <?php gethostbyname(str_

  • [PHP]多階層ディレクトリ内のファイル一覧を取得する | PHP Archive

    ディレクトリ内にあるファイル一覧を表示するには scandir() や DirectoryIterator クラスを使えばできますが、ディレクトリ内にさらにサブディレクトリが有る場合は再帰的に処理するための工夫が必要です。 方法は2つあり、RecursiveIteratorIterator() と RecursiveDirectoryIterator() を組み合わせる方法と、再帰関数を利用した従来の方法です。 RecursiveIteratorIterator() と RecursiveDirectoryIterator() を使った方法 <?php //検索するディレクトリ $dir = dirname(__FILE__) . '/directory/'; $result = list_files($dir); print_r($result); function list_files

    sutara_lumpur
    sutara_lumpur 2015/01/01
    scandir()を再帰的に実行してディレクトリツリーを取得する方法。
  • クッキーのSecure属性不備 - ぷ~ろぐ

    概要 クッキーにはSecureという属性があり、これを指定したクッキーはHTTPSの場合のみブラウザからサーバに送信される。アプリケーションがHTTPS通信を利用していても、Secure属性のついていないクッキーは平文で送信される場合があり盗聴される可能性がある。 HTTPとHTTPSの混在するサイトでは、セッションIDに対してクッキーのSecure属性を設定するとアプリケーションが動かなくなる場合がある。その場合、セッションIDとは別にトークンをSecure属性付きクッキーとして発行して、ページ毎に確認する方法がある。 攻撃手法 次の手順で平文のクッキーがネットワーク上に流れる。 まず、HTTPSでかつSecure属性のつかないクッキーを発行するページを閲覧し、ブラウザーにクッキーをセットする。例としてURLは https://www.example.jp/set_non_secure_

    クッキーのSecure属性不備 - ぷ~ろぐ
  • PHP Badparts 4.catch節(というよりタイプヒンティング) - MANA-DOT

    いきなりですが問題。次のコードを実行するとどんな出力がされるでしょうか。 (前提知識として、DateTimeクラスのコンストラクタに不正な値を渡すと、Exceptionが投げられます。) <?php namespace Hoge; try { new \DateTime("buggg"); } catch (Exception $e) { echo 'error!!'; } 正解は以下のとおり。 PHP Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (buggg) at position 0 (b): The timezone could not be found in the database' in /home/

    PHP Badparts 4.catch節(というよりタイプヒンティング) - MANA-DOT
  • PHP: タイプヒンティング - Manual

    People often ask about scalar/basic typehints.  Here is a drop in class that I use in my MVC framework that will enable typehints through the use of a custom error handler. Note: You should include this code above all other code in your include headers and if you are the using set_error_handler() function you should be aware that this uses it as well.  You may need to chain your set_error_handlers

    sutara_lumpur
    sutara_lumpur 2014/12/12
    #PHP 私が勉強を始めた頃はphp5が出たばかりだったと思う。オライリー本のプログラミングPHP(第2版)にも記載はない。とはいえ、今日まで知らなかったのは勉強不足orz
  • 初心者向け タイプヒンティングとはなんなのかというお話

    by @dekokun on 2013/12/14 15:33 Tagged as: PHP. どうも、PHP Advent Calendar 2013の14日目の記事です。 昨日は@ockeghemPHPセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみたでしたね。 最近、仕事を一緒にし始めた後輩がPHPに慣れておらず、PHPのタイプヒンティングのことを知らなかったので(そして、さっき一緒にお酒を飲んだ別の後輩もタイプヒンティングを知らなかったので)、彼らに向けて、タイプヒンティングとはなにか、なぜタイプヒンティングを使うのかを解説する記事となります。 PHPのことをよく知っている皆様におかれましては特に得るものはないお話なのかなと思います。ご了承ください。なお、下記のような流れを経て、このブログの内容は当初の予定から変遷しました。 「returnとrequir

    初心者向け タイプヒンティングとはなんなのかというお話
    sutara_lumpur
    sutara_lumpur 2014/12/12
    #php 呼び方を知らなかった。"型指定引数"などでググってました。
  • PHPでWarningエラーが!!

    不動産専門ホームページ制作会社で働くエンジニアのブログです。日々、業務の中で得られた知識や技術、時々はプライベートなネタも投稿していきます。 menu PHPでこんなエラーが↓ PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/・・・/extensions/current/pdo_mysql.so' - /usr/local/・・・/extensions/current/pdo_mysql.so: undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0 PHP Warning:  Module 'PDO' already loaded in Unknown on line 0 エラーの内容を見る限り、 「pdo_mysql.so」を読み込めて

    PHPでWarningエラーが!!
  • PECLのXDebugでデバッグを簡単に(前編)

    もう1つの標準ライブラリPECL PECLとは、「PEAR Extended Code Language」の略であり、前回紹介したPEARライブラリの一部です。PEARと同様に、公式サイトを開くとパッケージを一覧できます(図1)。PEARのライブラリはPHP言語で記述したもので、PHPプログラムから簡単に呼び出すことができました。一方、PECLのパッケージは「PHPエクステンション」という形式になっています。 前回紹介したPEARのライブラリは、インストールは簡単でしたが、PHP言語が備える機能を拡張することまではできません。一方、PECLのライブラリであるPHPエクステンションは、PHP言語が備える機能を拡張することも可能です。さらにPHPエクステンションは、PHP言語ではなくC言語で記述してあり、PEARよりも高速に動作するといいます。 PHPは、言語の「コア」と呼ぶ部分と、数多くのP

    PECLのXDebugでデバッグを簡単に(前編)