タグ

phpに関するzuborawkaのブックマーク (60)

  • PHPのissetの罠 - Qiita

    fが返りました。このfはなんでしょう? 実は$hogeに格納された文字列の1文字目です。 つまり、$hoge["fuga"]の"fuga"が数値にキャストされ0になり、$hoge[0]が評価され文字列の1文字目が取り出されたわけです。で、最初の話に戻ってisset($hoge["fuga"])がtrueになったわけです。PHPの豆腐のような柔軟性にはほとほと困ったものです。 ですが、流石にPHPの中の人も「流石にねーわ」と思ったのか、PHP5.4.0からは挙動が変わりました。

    PHPのissetの罠 - Qiita
    zuborawka
    zuborawka 2018/04/19
    先日5.3のサーバを触る機会がありこれに遭遇した
  • PHP - The Wrong Way

    概要 PHPプログラミングの世界では、ある一定のトレンドが「モダンPHP」として、一部の人によって (彼らの書籍やウェブサイト上で) 強烈に広められ、他のアプローチは、遅れていたり、愚かだったり、あるいは単に間違いだとみなされて、眉をひそめられています。 それらの人々は、彼らの物事のやり方を他人に追従させようと、飽くなき努力を続けているように見えます。 このウェブサイトは、PHP プログラミングに関する現実的な見解を示すために作られました。流行りのトレンド、理論、学問的な教示ではなく、経験と実践の帰着を書き記した視点です。 ウェブサイト PHP - The Wrong Way は生きたドキュメントですので、より多くの情報が明らかになるにしたがって更新され続けます。 お気軽にコントリビュートしてください。 翻訳 ドイツ語 英語 フランス語 日語 インドネシア語 トルコ語 ペルシャ語 ポルト

  • PHP: asort - Manual

    配列のキーと要素との関係を維持しつつ、 array を昇順にソートします。 この関数は、 主に実際の要素の並び方が重要である連想配列をソートするために使われます。 注意: 比較結果が等しくなる二つの要素があった場合、それらの並び順は保持されます。PHP 8.0.0 より前のバージョンでは、ソートした配列におけるそれらの並び順は不定でした。 注意: この関数をコールすると、配列の内部ポインタは最初の要素にリセットされます。 パラメータ array 入力の配列。 flags オプションの第二引数 flags によりソートの動作を修正可能です。 使える値は下記の通りです: ソートタイプのフラグ: SORT_REGULAR - 通常通りに項目を比較します。 詳細は 比較演算子 で説明されています。 SORT_NUMERIC - 数値として項目を比較します。 SORT_STRING - 文字列として

    PHP: asort - Manual
    zuborawka
    zuborawka 2016/08/07
    はまってしまった・・・“比較結果が等しくなる二つのメンバーがあった場合、ソートした配列におけるそれらの並び順は未定義となります”
  • 外部プログラムを起動するには [symfony/process] - 超PHPerになろう

    PHPスクリプトから他のプログラムを起動して、その出力結果を得たいことがあります。PHPではexecやproc_openがあります。しかし、標準出力(stdout)と標準エラー出力(stderr)をうまく制御して出力を取得するのは、実はなかなか面倒だし、マニュアルを読みながら自分で一から実装するのは不毛です。 symfony/processを利用すれば、簡単で安全に外部プログラムを利用できるようになります。 パッケージ名 Packagist: symfony/process 作者 fabpot (Fabien Potencier) ライセンス MIT License バージョン v2.7.6 (2015-10-27) インストール Composerでインストールできます。 cd /your/project composer.phar require symfony/process 特徴 標

    外部プログラムを起動するには [symfony/process] - 超PHPerになろう
  • Shin x blog

    PHPでWEB+DBシステムの開発をやっています。

  • 体感速度 0.00000001 秒。cakephp 2.x で session と cache を redis にして超絶爆速に。 | まとめーたー

    photoBy: http://redis.io/images/redis-300dpi.pngもうMYSQLやファイルキャッシュなんてやめましょうdebug を オンにしてる時、Redisセッションだとsetflashが消えてしまうなどうまく動かない。 なので 番運営モード 0 かデバッグモードか で php セッション、 Redis セッションをどちらを使うか振り分ける。 VPSとかじゃないと使えないかもしれませんが、Redisは素晴らしい。 MYSQLなどのキャッシュと較べて速度は圧倒的に速くなります。 cakephpで使ってみるRedisがインストールされていて、phpredisも入っていることが前提です。 手動で sessionstart(); とかのコマンドを使っていると有効にならないので注意 cakephpがインストールされていることが前提 boostrap.php 70行

    zuborawka
    zuborawka 2014/11/22
    やってみたが上手く行かなかったので、いつか改めて落ち着いてやってみる。
  • PHPExcel の使い方 | Sun Limited Mt.

    PHPExcel とは PHP でエクセルファイルを生成することができるライブラリです。PHPExcel を初めて使ったので今後のために使い方をメモしておきます。 インストール PHPExcel を下記よりダウンロードした zip ファイルを解凍して中にある Classes ディレクトリを任意の場所に置きます。 PHPExcel – OpenXML – Create Excel2007 documents in PHPSpreadsheet engine – Home あとは PHPExcel を使う PHP でこの Classes ディレクトリにパスを通して使用するクラスをインクルードします。 set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/Classes/'); include 'PHPExcel.

  • Asynchronous PHP and Real-time Messaging

    The document discusses asynchronous programming in PHP using non-blocking I/O and event loops. It covers using asynchronous techniques like ReactPHP to scrape web pages concurrently without blocking. Promises and streams are also discussed as ways to handle asynchronous operations and pass data between components. Finally, messaging techniques like websockets and WAMP are presented as ways to buil

    Asynchronous PHP and Real-time Messaging
    zuborawka
    zuborawka 2014/09/10
    非同期通信PHP/stream_socket_client()/REACT PHP/React\EventLoop/Html5 WebSocket/HTML5 Server Sent Ecents/
  • PHP: switch - Manual

    switch (PHP 4, PHP 5, PHP 7, PHP 8) switch文は、同じ式を用いてIF文を並べたのに似ています。 同じ変数を異なる値と比較し、値に応じて異なったコードを実行したいと 思うことがしばしばあるかと思います。 switch文は、まさにこのためにあるのです。 注意: 他の言語とは違って、 continue命令は switch にも適用され、breakと同じ動作をします。 ループの内部で switch を使用しており、 外側のループの処理を続行させたい場合には、continue 2 を使用してください。 注意: switch/case が行うのは、 緩やかな比較 であることに注意しましょう。 次の二つの例は、同じことを二つの異なった方法で書いたものです。 一つは、if と elseif文を、 もう一つはswitch文を使っています。 どちらも、出力は同じです。

    PHP: switch - Manual
    zuborawka
    zuborawka 2014/09/07
    “ 他の言語とは違って、 continue命令は switchにも適用され、breakと同じ動作をします。 ループの内部でswitchを使用しており、 外側のループの処理を続行させたい場合には、continue 2 を使用してください。”
  • PHP NG now nearly TWICE as fast as PHP 5.6

    PHP NG now nearly TWICE as fast as PHP 5.6 correction: php core developers have urged that it is improper to call this version “5.7” (despite the versioning file stating so) PHP 5.7 PHP NG is still in alpha development, however it is starting to show breathtaking performance improvements over 5.6 while maintaining virtually complete compatibility. Dmitry Stogov has been hard at work since his firs

    PHP NG now nearly TWICE as fast as PHP 5.6
    zuborawka
    zuborawka 2014/07/16
    PHPが二倍早くなるかも?
  • PHPで復号化可能な暗号化を簡単に行えるクラス - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。実装の公開は GitHub のみにしました。 mpyw/EasyCrypt: A class that provides simple interface for decryptable encryption. Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    PHPで復号化可能な暗号化を簡単に行えるクラス - Qiita
  • phpで可逆暗号化をしてみて躓いた部分 - Qiita

    urlのパラメータを暗号化してみようとして、思わぬところで躓く。 下記は PHP 可逆暗号化 等で検索したら一番上に出てくるの暗号化方法 しかし、そのまま使うと・・・ function encryptedParam($input,$key = KEY_DEFAULT) $key = md5($key); //暗号化モジュール使用開始 $td = mcrypt_module_open('tripledes', '', 'ecb', ''); $key = substr($key, 0, mcrypt_enc_get_key_size($td)); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); if (mcrypt_generic_init($td, $key, $iv) < 0) { exit('error

    phpで可逆暗号化をしてみて躓いた部分 - Qiita
  • PHP の array_merge() や array_recursive() 等の違いをまとめました | Tips Note by TAM

    2013.12.17 PHP の array_merge() や array_recursive() 等の違いをまとめました 以前、JavaScript でのオブジェクトのマージについてまとめましたが、 今回は似たような話で PHP の配列のマージについてまとめます。 PHP の配列のマージ方法には大きく3つあり、 "+" 演算子 array_merge() 関数 array_merge_recursive() 関数 あと、個人的に CakePHP をよく使っているので CakePHP の Hash::merge() メソッド この4つの方法について、挙動の違いを調べました。 一次元配列 実際にコードを動かしてみて、2つの配列をマージした結果を見てみます。 対象データはこちら。 <?php // 対象データ $a = array( 0 => 'blue', 1 => 'red', 'a'

    PHP の array_merge() や array_recursive() 等の違いをまとめました | Tips Note by TAM
  • 基調講演「全てを結ぶ力」

    PHPカンファレンス関西で基調講演の機会をいただく事ができました。私のタイトルは「全てを結ぶ力」というもので、結ぶ(ハイパーリンク)という原則を持つWWWとそれに関わる技術や私たち開発者の話しをしました。 国内外含めてカンファレンスに登壇するのはこれが二度目です。最初のカンファレンスは世界レベルのエンジニア達をインスパイアさせたいという 夢を持ち、最上級のカテゴリで応募しました。二回目の今回は基調講演として聴衆者を限定しないで多くの人々に話がしたいと思いました。 2014/06/28 10:30 AM 大阪産業創造館 最小のネットーワーク 最大のネットワーク 最初のウェブサイト 最初のPHP 最初のアプリケーションサーバー 最初のつぶやき 決意 インターネットの原則 ソフトウエアの背後にいる人々 私たち開発者 メディアシフト エピローグ 情報という宇宙でWebサイトという星を1つ作る。それ

    基調講演「全てを結ぶ力」
    zuborawka
    zuborawka 2014/07/01
    凄く良かったという評判。動画を見てみたいなぁ。
  • お前は PHP の歴史的な理由の数を覚えているのか

    PHP といえば印象的なのは「歴史的な理由」 (≒黒歴史) の数々ですね。 このセッションでは、普段闇にこもっていてスポットの当たることの少ない「歴史的な理由」たちを引きずり出し、徹底追及し、頭を抱えていこうと思います。Read less

    お前は PHP の歴史的な理由の数を覚えているのか
    zuborawka
    zuborawka 2014/03/16
    おもろかったっす
  • Radar - O’Reilly

    Now, next, and beyond: Tracking need-to-know trends at the intersection of business and technology AI/ML Few technologies have the potential to change the nature of work and how we live as artificial intelligence (AI) and machine learning (ML). Future of the Firm Everything from new organizational structures and payment schemes to new expectations, skills, and tools will shape the future of the fi

    Radar - O’Reilly
  • 第75回PHP勉強会が開催されました #phpstudy

    昨日、恒例の第75回PHP勉強会が開催されました。今回はPHPStormセキュリティのビッグネームによる講演がありいつもより興奮度の高い勉強会になりました。 当日のツイートのまとめはこちら 第75回 PHP勉強会へのツイート #phpstudy - Togetterまとめ その他のブログ記事は見つけ次第、こちらに。 - 第74回 PHP勉強会レポート@恵比寿 | TECH BLOG 20分枠 セッションの内容の録画です。スライドが見づらい際は下記の資料もあわせてご覧ください。 0:00 「それPHPStormでできるよ」 18:38 「文字コードの脆弱性はこの3年間でどの程度対策されたか?」 「それPHPStormでできるよ」 遠山さんからはPHPStormで何ができるのかをわかりやすく解説するセッションをして頂きました。参加者の中でも利用者が多いPHPStormですが、具体的な活用

    第75回PHP勉強会が開催されました #phpstudy
  • PHPフレームワーク私的で感覚的な比較

    比較するPHPフレームワーク 追記 codeigniterのライセンス元を追記 & ライセンスを詳しく調べていただいる方がいるのでそちらへリンク追加しました。 FuelPHP1.6, CodeIgniter2.0, CakePHP2.3のコントローラ部分と、DBへのクエリ部分を比較するためにとりあえず並べてみました。 Controller FuelPHP class Controller_Example extends Controller { public function action_index() { $data['css'] = Asset::css(array('reset.css','960.css','main.css')); return Response::forge(View::forge('welcome/index')); } } CodeIgniter clas

    PHPフレームワーク私的で感覚的な比較
  • PHP: bccomp - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: bccomp - Manual
    zuborawka
    zuborawka 2014/02/13
    浮動小数点の比較
  • PHP: BC Math - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: BC Math - Manual