タグ

phpに関するmapk0yのブックマーク (144)

  • 新言語Hackで最強PHPerになろう! - Qiita

    新言語 Hack とは こんにちは、新言語 Hack が Facebook より OSS としてリリースされましたね。 詳細は以下の通り。 https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/ 新言語 Hack は HHVM 向けの開発言語で静的型付き言語の性質を取り入れ PHP での素早い開発を実施し、PHPとの互換性があります http://hacklang.org/ http://hhvm.com/ HHVM (HipHop Virtual Machine for PHP) とは、Facebook が OSS で開発している PHP 用の JIT コンパイラです。 HHVM は PHP のコードをダイナミックにバイナリコードへと変換することで高速実行の実現を目

    新言語Hackで最強PHPerになろう! - Qiita
  • 知らないうちにphpspecがすごいことになっていた件 - iakioの日記

    昔あったphpspecが進化したものなのかそれとも別のものなのかは知りませんが。 すごい。軽くキモい。17分の動画です。 Laracasts | PHPSpec is So Good まず、いきなり「MovieCollectionにMovieをadd()するとcountが1になること」というのスペックを書きます。MovieCollectionクラスもMovieクラスもまだ作ってません。 phpspec runを実行すると当然失敗して、「MovieCollectionクラスが無いけど作ってほしい?」と尋ねてきます。Yなら空のMovieCollectionクラスが作られます。 関係ないけどこういうスクリーンキャストを作ったりライブコーディングする人は、ターミナルの色の設定したほうがいいですね。GitHubにいろいろカラーテーマがあるので。 その後いろいろ説明を省きますが、今度は「MovieCo

    知らないうちにphpspecがすごいことになっていた件 - iakioの日記
  • composer install をどこで実行するか

    最近の PHPer が集まれば、一度は話題に上がるのが、この composer install をどこで実行するのか問題。 これまで聞いた話をまとめると、大きく分けて、以下の2パターンになります。どちらの方法を取っているか教えて下さい 😀 0. 前提 前提ですが、以下のような方法で、Composer 関連のファイルは管理しているとします。おそらく多くはこのような形になっていると思います。 PHP コードは、Git などの VCS で管理する。 composer.json, composer.lock は、VCS で管理する。 composer.phar, vendor/ は、VCS で管理しない。 また、今回対象としているのはアプリケーションで、Packagist に登録して、配布するようなフレームワークやライブラリは対象外です。 1. 番サーバで実行 PHPサーバ上で compo

  • Marc J. Schmidt

    Marc J. Schmidt, freelance software and machine learning engineer from Germany.

    Marc J. Schmidt
  • phpMyAdmin3.5.8以前に任意のスクリプト実行を許す脆弱性(CVE-2013-3238)

    脆弱性の発生するメカニズム 脆弱性の原因はlibraries/mult_submits.inc.php の以下の部分です。 case 'replace_prefix_tbl': $current = $selected[$i]; $newtablename = preg_replace("/^" . $from_prefix . "/", $to_prefix, $current); 上記再現手順の場合、preg_replace関数の呼び出しは以下の引数となります。 preg_replace("/^/e\0/", "phpinfo();", "test"); preg_replace関数(PHP5.4.6以前)の第1引数はバイナリセーフでないため、NULLバイト以降が無視され、結局以下の引数で呼び出されたのと同じになります。 preg_replace("/^/e", "phpinfo();

    phpMyAdmin3.5.8以前に任意のスクリプト実行を許す脆弱性(CVE-2013-3238)
  • PHP+PDO+MySQLの組み合わせではSQLインジェクション攻撃で複文呼び出しが可能

    基礎からのPHPという書籍を読んでおりましたら、SQLインジェクションの攻撃例として、以下のSQL文ができあがる例が紹介されていました。PHP+PDO+MySQLという組み合わせです。 SELECT * FROM tb2 WHERE ban=1;delete from tb2 2つのSQL文がセミコロンで区切って1つにまとめられていますが、これを「複文(multiple statement)」と言います。私は、SQLインジェクション攻撃の文脈で複文が使える組み合わせを調べたことがあり、PHPMySQLという組み合わせでは、複文は使えないと思っていましたので、この攻撃は成立しないのではないかと思いました。 しかし、決めつけも良くないと思い手元の環境で動かしてみたところ、あっさり動くではありませんか。 PDOを用いてMySQLを呼び出す場合は複文が実行できると気づきましたが、なぜPDOの場合

  • Composerを使った簡単Travis CI設定 - FLOG SPLASH

    これは PHP Advent Calendar 2013 - Qiita [キータ] の5日目の記事です。 みなさんこんにちは。fivestarことクロコスの小川です。 Composerを使うと簡単に依存ライブラリを管理することが可能です。Composer とはなんぞや、という方は下記の記事あたりに目を通してみてください。 Composerを活用したモダンな開発手法をPHPカンファレンス2013で発表してきた。 #phpcon2013 | Engine Yard Blog JP Composerでは例えば次のようにcomposer.jsonファイルを書くことで依存ライブラリを指定できます。この例だとFacebookのPHP SDKが使えるようになります。 { "require": { "facebook/php-sdk": "dev-master" } } Composerとオートロード

  • この先生きのこるには

    ちょっとずつ複雑なことをやっていっているのですが、正直まだ自分で作っていくイメージがついていません。 加速と減速=イージングタイムラインパネルのフレーム数がでてるとこの下のスライダーでワークエリアの幅を操作できるグラフエディターというのが存在する。値グラフと速度グラフ。グラフを編集するときに触るのはハンドルだけイージングの速度が早くてコマが見える時はモーションブラーをかける(13:40)モーションブラーは色々ごまかせてしまうので最後につけたほうがいい。処理が重いから最初のほうでつけるとプレビューのときにしんどいとかもある(ただプレビューのときだけオフにするとかもできる)

    この先生きのこるには
    mapk0y
    mapk0y 2013/08/12
  • PHP 5.3 でネイティブ関数の引数型エラー時の返り値が変更になったけど大丈夫? - co3k.org

    PHP 5.5.0 リリースおめでとうございます。 タイミング的に PHP 5.5 の話だと読み間違えた方 (もしくは「こいつ間違って PHP 5.3 って書いてやがるプギャー」と思った方) におかれましては、このテキーラはサービスだから、まず飲んで落ち着いてほしい。 はい。ということで、驚くべきことに、いまから、真顔で、 PHP 5.3 の変更点の話をします。でも PHP 5.5 が出るにあたってコードを見直す方もいるでしょうし、なんというかついでに気に掛けていただければと。 何の話か PHP 5.3 の「下位互換性のない変更点」として、マニュアルに以下のように示されている件についての話です。 引数を解釈する内部API が、PHP 5.3.x に同梱されている全ての拡張機能に 適用されるようになりました。つまり、互換性のないパラメーターが渡された場合、 この引数を解釈するAPIは NUL

  • PHP5.5で強化されたcURL拡張でHTTP Pipeliningを試す

    先日、PHP5.5.0がリリースされましたね。さっそくビルドしてニヨニヨしているところです。 5.5の新機能と言えばGeneratorやfinallyなどですが、個人的に注目しているのがcURLの機能強化です。詳しい内容がまだ公式ドキュメントに書かれていないのですが、結構おもしろいので紹介してみます。 cURLとは何か かーると発音する人が多いようです。C言語で書かれたHTTPのclientライブラリであり、WebAPIスクレイピング、クローラなどを扱うときに非常に便利です。PHP版のバインディングは標準でPHP体にバンドルされているため、大抵のレンタルサーバーでも使えるようになっています。 ただ、オリジナルのlibcurlそのままの関数風インターフェースを踏襲しており、オブジェクト指向型のラッパーなどは用意されていないため、あまり使いやすくはありません。が、並列リクエストが可能であっ

    PHP5.5で強化されたcURL拡張でHTTP Pipeliningを試す
  • VimをPHP用にカスタマイズする | Basicinc Enjoy Hacking!

    今更ながらプログラマーならVimが使えないとやっぱりダメだよなーと思ったので、Vimを使うようになってきました。 そこでせっかくなのでいろいろカスタマイズできるVimPHP用にしてみました。 PHPの関数を補完してくれるようにする まずはPHPの関数を補完してくれるようにします。 php用の辞書の用意 まず、下記のコマンドを実行します。 php -r '$f=get_defined_functions();echo join("\n",$f["internal"]);'|sort > ~/.vim/dict/php.dict get_defined_functionsでPHPに定義されている関数を出力してくれるので、こいつをvimの辞書ファイルにぶち込みます。 補完してくれるようにする .vimrcに autocmd FileType php,ctp :set dictionary=~/

    VimをPHP用にカスタマイズする | Basicinc Enjoy Hacking!
    mapk0y
    mapk0y 2013/06/23
  • PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回

    こんにちは、久保田です。 皆さん正規表現は使っていますか? PHPに限らずどんな言語を使っていても、正規表現にお世話になっていないプログラマはいないと思います。しかし、その正規表現がどのように実装されているかについては知らない方が多いのではないのでしょうか。 この記事では、その正規表現エンジンの実装方法の一つである仮想マシンによる正規表現エンジンの実装方法を解説しつつ実際に簡単な正規表現エンジンを作っていきたいと思います。 正規表現エンジンの実装方法 正規表現エンジンの実装方法はいくつかあるのですが、それの一つに仮想マシンによって正規表現のマッチング処理を実行するやり方があります。PHPで利用している正規表現エンジンであるPCREはこの方式を採用しています。 仮想マシンによる実装方法は、正規表現というよりもプログラミング言語の実装方法の一つとして知られています。Rubyの最もメジャーな実装

  • GCMを使用してAndroid-PHPでPUSH通知を実装する | TechBooster

    GCM(Google Cloud Messaging Service)はAndroidでPUSH通知を行うためのGoogleのサービスです。 ※記事はGoogle Cloud Messaging for Android の非推奨化に伴ってGoogle Play servicesに対応した版に@mhidakaが加筆、改定しました。 対応したプロジェクトファイルはGCMSampleからダウンロード可能です GCMを使用するとLINEなどのメッセージングアプリが実装しているPUSH通知機能を簡単に実装できます。PUSH通知は情報をリアルタイムで送信できることから、昨今のアプリ開発では重要視されている機能です。 この記事ではサーバーではポピュラーな言語であるPHPを使ってサーバー実装を紹介します。 詳細は以下から。 サンプルコードは下記からダウンロードできます。 GCMSample1.zip

    GCMを使用してAndroid-PHPでPUSH通知を実装する | TechBooster
  • あなたのコード、激遅ぷんぷん丸?今すぐできる7つのチェック項目 PHP編 | GeNERACE labo

    みなさん、こんにちは。 GeNERACEのピンキリエンジニアこと、ひろゆきです。 ここのところPHPを書いてるんですが、同じ処理を書くとしても、どの関数を使えば良いのか分からないことがありました。 たとえば、繰り返し処理を書くにしてもfor, foreach, whileと3種類もあります。 いったいどれを使えば良いの?(´・ω・`) 分からないなら調べれば良い。 ということで、弊社環境にて処理速度の検証してみました。 (この辺ってググってみても、ソースが古かったりしてたので、あえて調べました) 実行環境: PHP 5.3.3 AWS EC2 m1.small 1.ループ処理を比較 まずは基中の基。 for, foreach, whileのどれを使うべきなのか。 $this->testArray = range(0, 10000000); $x = 0; foreach ($this-

  • ffmpegで数秒ごとに画像を切り抜いてGIFアニメーション化 - PHP,MySQL,Flex,JSな日々+イラストとか

    ffmpegで数秒ごとに画像を切り抜いてGIFアニメーション化します。 <?php //作業ディレクトの設定 $workpath = "/home/yourname"; //ffmpegで動画情報をPHPへ出力 $cmd_2 = "ffmpeg -i {$workpath}/move.mp4 2>&1 "; exec( $cmd_2 , $output); //出力結果を調査(Duration=秒数) foreach( $output as $value ){ $tmp = split( ":" , $value ); if( trim( $tmp[0] ) == "Duration" ){ $duration = $value; } } $param = split( "," ,$duration ); $param[0] = trim( $param[0] ); $time["h"]

    ffmpegで数秒ごとに画像を切り抜いてGIFアニメーション化 - PHP,MySQL,Flex,JSな日々+イラストとか
  • レスポンシブだけじゃいられない?時と場合によるユーザーエージェント判別の方法

    レスポンシブだけじゃいられない?時と場合によるユーザーエージェント判別の方法 2013.06.14 | 初心者向け | 覚えておきたい 先週、某iPhoneアプリをリリースした際に公式サイトを担当したネイビーです。 iPhoneアプリだから公式サイトはiPhoneで見れればいい!というわけではないんですね。知りませんでした。だったらレスポンシブで!と行きたいものの、ニョーンと伸び縮みするスタイルが万人受けするものでもありません。 iPhone向けとPC向けのページを作ってユーザーエージェントで振り分ける方針が決まりつつ、いつどこで判別したらよいものか?リリース前日まで悩んでしまいました。 PHPによる判別 スマホ向けとPC向けのコンテンツを振り分ける際にまず思いつくのは、サーバ側のプログラムでユーザーエージェントを判別して処理を分岐する方法です。端末によってコンテンツの種類や量を調節したり

    レスポンシブだけじゃいられない?時と場合によるユーザーエージェント判別の方法
  • Table Of Contents — PHP Internals Book

    The repository for this book is available on GitHub. The PHP internals book is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • 「JSON文字列へのインジェクション」と「パラメータの追加」

    「JSON文字列へのインジェクション」と「パラメータの追加」:NoSQLを使うなら知っておきたいセキュリティの話(2)(1/2 ページ) MongoDBを用いたWebアプリケーションで生じる可能性がある4種類の脆弱性のうち、今回は「JSON文字列へのインジェクション」と「パラメータの追加」のメカニズムと対策について説明します。 前回の「『演算子のインジェクション』と『SSJI』」では、MongoDBを用いたWebアプリケーションで生じうる脆弱性のうち「演算子のインジェクション」と「SSJI」について、攻撃の実例と対策について解説しました。今回はさらに、「JSON文字列へのインジェクション」と「パラメータの追加」について説明します。 JSON文字列へのインジェクション これまで見てきたように、PHP言語においては連想配列を指定してデータの登録処理や検索処理を実行できます。しかし型の扱いが厳格

    「JSON文字列へのインジェクション」と「パラメータの追加」
  • 一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~

    Coverage 100%への道のり 1. --coverage-htmlして現状を確認 2. time()やmt_rand()などを使うコードもテスト 3. 複雑なオブジェクトを使うコードもテスト 4. ファイルシステムを使うコードもテストRead less

    一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~
  • PHPからTwilioを使って電話を操作する発表をしました - cakephperの日記(CakePHP, Laravel, PHP)

    FukuokaPHP第7回 1周年記念というめでたい日に、Twilioという電話APIサービスを使ってPHPから電話をかけたり、受けたりする話をしてきました。 fukuokaphp7 PHP x twilio from ichikaway 当日のUstreamの動画はこちら http://www.ustream.tv/recorded/33479457 懇親会は自分がよく行く舞鶴のビールバーでした。 クラフトビール 福岡 GASTRO PUB ALES 伊勢角屋ペールエールが美味しかったです。飲み干してもう無いけど。 Fukuoka.phpを1年前にAkase244さんと立ち上げてスタッフ5人ぐらいで楽しくやってきました。2年目もこんな感じで楽しくやっていきたいですね。 下記は、Fukuoka.phpの立ち上げのきっかけになったツイートです

    PHPからTwilioを使って電話を操作する発表をしました - cakephperの日記(CakePHP, Laravel, PHP)