[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

phpに関するshadow-toonのブックマーク (202)

  • 2017年のPHPフレームワーク——2強時代に何を学ぶべきか?

    動きの早いフロントエンド界隈や他の言語の躍進の話題に押されて、いつまでも古い知識のままPHPで開発していませんか? 知識のアップデートに役立つ、最近のフレームワークの動向を、ちょっと辛口な現状分析とともに。 私が約1年前に書いた記事の続きを書くことにしたのは次の質問を受けたからです。 Q:PHP MVCフレームワークについて近況を教えてください。(2017/2/24) A:PHPのフレームワークといえば、現時点ではLaravelとSymfonyに尽きます。これから新しいプロジェクトを始めるなら、わざわざCakePHP、Zend、CodeIgniter、Yiiなどを使う理由は見当たりません。これらのフレームワークを使い慣れているか開発経験のある開発者がいないのなら、使う理由はないでしょう。 実際に開発が始まったら、ツールやプラグインを集めたり、よくある問題への対処方法を調べたりする必要があり

    2017年のPHPフレームワーク——2強時代に何を学ぶべきか?
  • PHPのin_arrayは罠が多いので注意喚起が必要 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    PHPのin_arrayは罠が多いので注意喚起が必要 - Qiita
  • 正規表現がどれぐらい遅くなるか(計算量?)を調べてみた - 唯物是真 @Scaled_Wurm

    最近あんまりパフォーマンス的によくない正規表現を見かけたので、いくつかのパターンについて正規表現をいろんな言語で試してみて実行時間を測ってみた(ついでに最悪計算量についてゆるふわに考えてみた) 実際には正規表現エンジンの実装(NFAやDFAとか?)やバージョン、オプション(?)によると思いますしなんとなくの傾向という感じです やること 以下の正規表現についてパターンマッチされる対象の文字列の長さ\(L\)が増えたときに、1回マッチするか調べる時間がどれぐらい伸びるかを調べます .*a a.*b a.*b.*c a(a|aa)*b 計測方法 以下の言語についてIdeoneで実行してみて実際に測ってみた時間を載せます(括弧内はIdeoneに書かれていたバージョン) Ruby (ruby-2.1) Python (python 2.7.10) PHP (php 5.6.4) Java (sun-

    正規表現がどれぐらい遅くなるか(計算量?)を調べてみた - 唯物是真 @Scaled_Wurm
  • MAMPとComposerを使ったCakePHP3.xのローカル開発環境の構築 - Qiita

    はじめに CakePHP3.xを使ってWebアプリケーションを作るには、開発PC、Webサーバ、データベース、そしてもちろんPHPが必要です。これをあなたのPCにインストールする必要があります。ここでは開発PCとしてMacを使います。なぜならWeb開発者の大半はMacを使っているからです。なぜならMacは、Webサーバとして一般的に用いられるLinuxというOSに似ているからです(どちらもUNIXというOSをベースにしていますが、Windowsは全く別のOSです)。WebサーバにはApache HTTP Server(通称:Apache)がよく使われます。データベースにはPostgreSQLMySQLが使われますがここではMySQLを使います。なぜならMySQLは大抵のレンタルサーバで使えるからです。 MAMPのインストール というわけで、まずはあなたのMacに、Apache、MySQL

    MAMPとComposerを使ったCakePHP3.xのローカル開発環境の構築 - Qiita
  • PHP書いている人は、絶対にPHPStorm使うべき - koni blog

    こんにちは、小西です。 ここ5年ほど仕事でずっとPHPを書いてきたのですが、開発環境はPhpStormに落ち着きました。個人的にPhpStormが最強すぎて、「なんでみんなPhpStorm使わないんだろう」という感じですw そこで今日はPhpStormの乗り換えるべき理由をお伝えします。 PhpStormとは? Jetbrains社が出しているPHP用の統合開発環境(IDE)です。IntelliJとかWebStormとかAppCodeを出している会社です。 PhpStorm: The Lightning-Smart IDE for PHP Programming by JetBrains PhpStormはエディタというよりは、IDEです。PHPでプログラミングする人が最高のパフォーマンスを出せるように作られてソフトって感じです。 主な機能としては、以下になります。 エディタ 普通のエディ

    PHP書いている人は、絶対にPHPStorm使うべき - koni blog
  • フリーエンジニアのIT案件ならレバテックフリーランス

    2016年11月3日(木・祝)に開催された「PHPカンファレンス2016(#phpcon2016)」内で、レバテックは来場者に好きなPHPフレームワークを選んでもらう「PHPフレームワーク対決」を実施しました! 結果はすでにTwitter(@levtech_inc)で発表しましたが、大きな反響いただいたのでこの記事では結果と併せて投票者の声をまとめました。各フレームワークの好きなところ・嫌いなところなどPHPerのリアルな声が寄せられていますので、今後のフレームワーク選びの参考にしてみてください! ◆調査概要 調査方法:アンケート調査 調査対象:2016年11月3日(木・祝)に開催された「PHPカンファレンス2016」の来場者295人 PHP案件を提案してもらう 第1位 CakePHP 72票 CakePHPの好きなところ ・一番簡単に導入できるところ。コーディングが割と簡潔。 ・日語の

    フリーエンジニアのIT案件ならレバテックフリーランス
  • MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響

    攻撃に利用された場合、root権限で任意のコードを実行され、サーバを制御される可能性が指摘されている。 米Oracle傘下のオープンソースデータベース「MySQL」に未解決の脆弱性が見つかったとして、セキュリティ研究者が9月12日に概略やコンセプト実証コードを公開した。サイバー攻撃に利用された場合、root権限で任意のコードを実行され、サーバを制御される可能性が指摘されている。 研究者のDawid Golunski氏が公開した情報によれば、MySQLの脆弱性は複数発見され、、中でも特に深刻な1件については、リモートの攻撃者がMySQLの設定ファイルに不正な内容を仕込むSQLインジェクション攻撃に利用される恐れがある。 この脆弱性は、MySQLの最新版を含む5.7系、5.6系、5.5系の全バージョンに、デフォルトの状態で存在する。現時点でOracle MySQLサーバの脆弱性修正パッチは存在

    MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響
  • JavaScriptやPHPで開発できる超小型ボード「Onion Omega」 Web開発者もハード作りを容易に

    JavaScriptPHPなどでプログラミングできるハード開発プラットフォーム「Onion Omega」」がKickstarterに登場した。小型ボードを組み込んでさまざまな機器を開発できるもので、複数のプログラミング言語に対応することでハードルを下げている。 Onion Omegaのボードは28.2×42ミリと小さく、400MHz動作のAtheros AR9331(MIPS)と64Mバイトメモリ、16Mバイトストレージ、無線/有線LAN、USB 2.0を搭載する。インタフェースなどを拡張するためのアクセサリも用意されている。 Arduino互換だが、Linux環境が動作し、JavaScript(Node.JS)やPHPPythonRubyなど複数の言語による開発が可能な点が特徴。専用の「Onion Cloud」との統合、ブラウザなどから操作できるコンソール、アプリストア機能なども提

    JavaScriptやPHPで開発できる超小型ボード「Onion Omega」 Web開発者もハード作りを容易に
  • PHPに関するHTTPOXY脆弱性の問題と対応方法 - Code Day's Night

    外部から簡単にHTTP_PROXYという環境変数がセットでき、サーバ間通信や外部サイトと連携している場合に影響があるかもしれない脆弱性です。(HTTPoxy. CVE-2016-5385) PHPの場合はphp-fpm, mod_php, Guzzle4以上やいくつかのライブラリで影響あります。 対応方法は簡単です。 Apache側で対応する場合は、mod_headerを使える状況であれば、confファイルに下記の1行を追加。 RequestHeader unset Proxy FastCGIの場合は下記の1行を追加。 fastcgi_param HTTP_PROXY ""; Guzzleは6.2.1で対応されたようです。 Release 6.2.1 release · guzzle/guzzle · GitHub コミットログを見ると、CLIの時のみ、getenv('HTTP_PROXY

    PHPに関するHTTPOXY脆弱性の問題と対応方法 - Code Day's Night
  • PHPのround関数とは一体なんだったのか - hnwの日記

    (7/3 14:05追記)Javaに関する記述について誤認があったので盛大に書き換えました。Java 6、Java 7、Java 8それぞれで実装が変わっていたようです。 (7/13 23:55追記)記事中ではroundを四捨五入と言い切ってしまっています。これは筆者がC99のroundを基準に考えているためですが、言語によっては偶数丸めになっているround関数も珍しくありません。ご注意ください。 PHPのround関数について、ネット上で次のような記述を見つけました。 PHP 四捨五入の計算を間違える唯一の言語として畏れられていましたが、そのバグは治っているかもしれません(治ってないかもしれません) 主要なプログラミング言語8種をぐったり解説 - 鍋あり谷あり 各言語を面白おかしく紹介する内容とはいえ、ずいぶん雑な理解だなーという印象です。ゆるふわな話だけでPHPがdisられ続けるの

    PHPのround関数とは一体なんだったのか - hnwの日記
  • PHPのarray操作はどれが一番速いか - なんたらノート第三期ベータ

    なになに あまり有名ではないのでもしかしたらご存じないかもしれませんが、PHPには高速高機能なforeachってイテレーション機構が言語組み込みにあるので、わざわざarray_mapとか書かなくてもいいんですよ!!!!!— 零崎ぞぬ織 (@tadsan) 2016年5月25日 array_mapに渡していいのはcallableな値のみで、 array_map(function(){ ... とか書き始めたらそれは敗北フラグ。素直に foreach で書け!— 零崎ぞぬ織 (@tadsan) 2016年5月25日 けど配列のフェッチと新しい配列への格納でPHPオペコード増えるし、組み込み関数のほうが速いんじゃないの? 検証してみた: > php -d memory_limit=-1 array-spped-test.php Ginq + Closure: 782.2070ms x1.00 G

    PHPのarray操作はどれが一番速いか - なんたらノート第三期ベータ
  • 改ざんの標的となるCMS内のPHPファイル(2016-02-25) - JPCERT/CC Eyes

    調査の結果、これらのPHPファイルが改ざんされたことにより、Webサイトからのレスポンス内に不正なコードが、閲覧者のアクセス毎に動的に挿入されていたことが判明しました。 改ざんされたPHPファイルによって不正なコードが挿入される仕組み 改ざんされたPHPファイルには、「//istart」および「//iend」というコメントに挟まれた、図 1のような不正なPHPコードが挿入されていました(不正なPHPコードが難読化されている場合も確認しています)。 この不正なPHPコードは、外部から取得したコードを挿入する機能を持っており、特定のURLから不正なコードを受け取り、特定の位置に挿入します。 図 1: 「//istart」および「//iend」に挟まれた不正なPHPコード 挿入される不正なコード Webサイトに閲覧者がアクセスすると、改ざんされたPHPファイル中の不正なPHPコードは、図 2のよ

    改ざんの標的となるCMS内のPHPファイル(2016-02-25) - JPCERT/CC Eyes
  • PHP の壊れた mt_rand の品質を統計的に検証した - iwiwiの日記

    メルセンヌ・ツイスターと似て非なるアルゴリズムが実装されていたことが発覚して話題の PHP の mt_rand 関数の品質を統計的に検証しました.果たして,PHP の「壊れた」mt_rand は安心して使うことができるのでしょうか……? ちなみに,結論から言うと,PHP の壊れた mt_rand は,(少なくともこのテストの範囲では)家メルセンヌ・ツイスターと遜色ない品質を持っているようです.ただし,最後に PHP の乱数の別の懸念点についても紹介します. 壊れた mt_rand とは PHP の mt_rand は,ドキュメントによると,有名な乱数生成アルゴリズム「メルセンヌ・ツイスター」を利用して高品質の乱数を生成する関数です.ところが,どうやら一部では知られていたこととして,PHP の mt_rand の実装にはバグがあり,家メルセンヌ・ツイスターと挙動が一致していませんでした.

    PHP の壊れた mt_rand の品質を統計的に検証した - iwiwiの日記
  • PHP の mt_rand() は一貫して壊れている(consistently broken)らしい - 唯物是真 @Scaled_Wurm

    PHPでMersenne Twister法で擬似乱数を生成する関数のmt_rand()にバグがあり出力がおかしい、という話が流れてきておもしろかったので簡単にまとめておく kusanoさんがmt_rand()の実装に9年以上前から1文字違いでバグがあったことを見つけて、数ヶ月後にマージされる(追記: 正確には、PHP版の実装が他と異なっているのは前から知られていたらしい*1 ) PHPに送った1文字修正するプルリクエストがマージされた🎉 mt_rand()の返す値が元のメルセンヌツイスタと異なっていた。https://t.co/Z5WJhHVyNd— kusanoさん@がんばらない (@kusano_k) February 17, 2016 その後、生成される擬似乱数列が変わってしまうので、後方互換性を壊す変更は議論してからmergeすべきということでrevertされるこの前マージされた

    PHP の mt_rand() は一貫して壊れている(consistently broken)らしい - 唯物是真 @Scaled_Wurm
  • PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp

    PHPの生みの親⁠⁠、ラスマス⁠⁠・ラードフ氏インタビュー 2015年12月に無事公開されたPHP7。その公開に先立ってPHPの生みの親であるラスマス・ラードフ氏に話を伺う機会がありました。英語で行われた一時間のインタビューは長大ですがラスマス氏の思想がよく分かる話題が多く、可能な限りそのままの形でお伝えすべく、その模様すべてをお届けします。 なお、インタビューは10月に開催されたPHPカンファレンス2015の講演終了後に行われ、リリースに関する話題などはその時点でのものです。 現在の仕事と生い立ち ―――― まずは、PHPを作ってくださってありがとうございます。今日の基調講演もすばらしかったです。 ラスマス:ありがとうございます。 ―――― いきなりですが、個人的な質問から始めてもいいでしょうか。 ラスマス:どうぞ。 ―――― Etsyではどのようなお仕事をなさっているんですか? ラスマ

    PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp
  • 最もシンプルなカレンダー生成ロジック - Qiita

    HTMLのマークアップをロジックに組み込んでしまうと可読性が大きく下がるので、カレンダーを 2次元配列 として表現することにします。また、 2038年問題 に対応するために 日付・時刻関数 の代わりに DateTime クラスを用いることにします。 手続き型コーディング 誰もが理解できる最もオーソドックスな方法です。たぶん。 $date = new DateTimeImmutable('指定年-指定月-1 00:00:00'); $day = (int)$date->format('w'); // 曜日オフセット(※生成過程で書き換えられます) $week = 0; // 週オフセット(※生成過程で書き換えられます) $max = (int)$date->format('t'); // 合計日数 for ($i = $day; $i > 0; --$i) { // 1日のオフセット分空白セ

    最もシンプルなカレンダー生成ロジック - Qiita
  • PHPのunserialize関数に外部由来の値を処理させると脆弱性の原因になる

    既にいくつかの記事で指摘がありますが、PHPのunserialize関数に外部由来の値を処理させると脆弱性の原因になります。 しかし、ブログ記事等を見ていると、外部由来の値をunserialize関数に処理させているケースが多くあります。 ユースケースの一例としては、「複数の値をクッキーにセットする方法」として用いる場合です。 PHP クッキーに複数の値を一括登録する方法という記事では、以下の方法で複数の値をクッキーにセットしています。 $status = array( "height" => 167, "weight" => 50, "sight" => 1.2 ); setcookie("status", serialize($status)); クッキーの受け取り側は以下のコードです。 print_r(unserialize($_COOKIE['status'])); 出力結果は以下

  • PHP7で変わること ——言語仕様とエンジンの改善ポイント

    1. What’s new in PHP7 PHP7で変わること ̶̶言語仕様とエンジンの改善ポイント hnw PHPカンファレンス関西2015 (2015/5/30)発表資料

    PHP7で変わること ——言語仕様とエンジンの改善ポイント
  • PHPでGDを使って画像を鮮明(シャープ)にする | MyLittleNotes

    PHPでGDを使って画像を鮮明(シャープ)にする PHP 5.1.0以上で使えるimageconvolution関数を使って画像を鮮明にする。サムネイルなど小さな画像は多少鮮明にすると見やすくなる。 // test.jpgを読み込む $image = imagecreatefromjpeg('test.jpg'); if ($image !== false) { $matrix = array( array(0.0, -1.0, 0.0), array(-1.0, 9.0, -1.0), array(0.0, -1.0, 0.0) ); $divisor = array_sum(array_map('array_sum', $matrix)); imageconvolution($image, $matrix, $divisor, 0); // out.jpgに出力 imagejpeg($

  • PHPのunset : 春夏秋冬

    2008年12月21日23:47 カテゴリプログラミングPHP PHPのunset このサイトには検索ワードの『PHP unset』で訪れる人も多い。 PHPでunsetの挙動を調べたいと考える人のパターンは大抵次の通りだろう。 ・変数の初期化をしたいからunsetを使おうと思う ・メモリー不足でスクリプトが止まったから明示的に開放したい 朝から晩まで、猛烈にPHPでコーディングし続けている私の経験に基づき、これらの要求の是非を検討してみよう。 ○変数の初期化をしたいからunsetを使おうと思う PHPでは値未入力の変数をis_nullで判定できる。unsetした変数はnull状態になり、is_nullで判定できるようになるため、C言語的にローカル変数の使用前に初期化するというコーディングスタイルの場合に、その初期化関数として用いる事になる。 C言語などの開発経験があると、いきなり変数を使

    PHPのunset : 春夏秋冬