タグ

PHPに関するpokutunaのブックマーク (11)

  • 『PHPとかいう糞言語』

    数々の糞仕様の発見で驚きを提供してくれる人気プログラム言語PHP 今日また新たな糞仕様を知ったよ 今回使ったPHPのバージョン $ php --version PHP 5.3.6-13ubuntu3.3 with Suhosin-Patch (cli) (built: Dec 13 2011 18:18:37) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies <?php $array = array(1,2,3); $ref = &$array[1]; $copy = $array; $copy[0] = 'a'; $copy[1] = 'b'; $copy[2] = 'c'; foreach( $array as $v ) { print

    『PHPとかいう糞言語』
    pokutuna
    pokutuna 2013/12/12
  • PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ

    この投稿はPHP Advent Calendar 2013の12日目の記事です。 PHP恒例行事の参照と三項演算子のdisりですが、そろそろあさってな議論はやめませんかという話です。 今年のPHP-dis大賞といえばこちら。 PHPとかいう糞言語|いんまのブログ ※ 追記: これ書かれたのは2012年でしたすんません。 なんで君たちそんなコードが必要なのかね、と。結論から先言うと、きみたちがPHPが使えないって思うのは、そんな挙動に左右されるようなコードを書くからでしょ、だからCとかRubyとかそういう簡単な言語でわかった気になっている初心者はまったくもう...というわけでPHPの言語文法の基礎んとこ、いきますね。 まず、PHPのarrayは「値」です。もちろん文字列も「値」です。値は値なんだけど、それはミュータブルです。PHPのarrayもしくは文字列の代入は、一見すると、ポインタを使わ

    PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ
    pokutuna
    pokutuna 2013/12/12
  • komagataのブログ

    ログイン処理のコードレビューにおいて、認証部分が自作されていて、md5をつかっていたので、なぜ自作するのか?なぜmd5を使うのか?という点について議論になりました。 CodeIgniter-Ion-Authを使う blowfishを使う(phpならpassword_hash関数、PASSWORD_BCRYPTオプションが良さそう) 僕は自前認証かつmd5を使う意味がわからなかったのでちょっと辛辣な表現になってしまいました。(その方が安全で楽なのに何故しないのか?的な) ちょっと揉めてしまいまして、 「中途半端に(その実装を)採用しちゃったせいで、なんかあったら駒形さん直してくれんの?土日でも対応してくれんの?」 という感じになり、最終的には、 「レビューはあくまで"サジェスト"に留めて欲しい。」 ということになりました。コードレビューにおいて、 「ここはAAAではまずいのでBBBにすべきで

    pokutuna
    pokutuna 2012/09/21
    おもしろい
  • すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita

    ある条件でソートされているIDのリストを与えられて、なんとなく近い範囲でマッチングさせたいという要件があった。配列からの任意の要素の取り出しは O(n) だけど、末尾や末尾から固定した範囲の要素に限って言えば O(1) なので、後ろの方からマッチングさせながら要素を取り出していけば O(n) でマッチングできるはず。 なんにも難しいことは無い話で、 Python で書けばこうなる。 list.pop() が末尾からのインデックス (-1 が最後の要素を表す) を許すのが地味に便利だ。 # coding: utf-8 def match(seq, r=100): from random import randint # 奇数個の時に先頭周辺の要素がボッチになるのが嫌なら、先に後ろの方の # 要素を取り除いて偶数にしておくこと. while len(seq) >= 2: # 引数を省略すると末

    すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita
  • PHP5.3.7のcrypt関数のバグはこうして生まれた

    昨日のブログエントリ「PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)」にて、crypt関数の重大な脆弱性について報告しました。脆弱性の出方が近年まれに見るほどのものだったので、twitterやブクマなどを見ても、「どうしてこうなった」という疑問を多数目にしました。 そこで、このエントリでは、この脆弱性がどのように混入したのかを追ってみたいと思います。 PHPのレポジトリのログや公開されているソースの状況から、PHP5.3.7RC4までこのバグはなく、PHP5.3.7RC5でこのバグが混入した模様です。RC5はPHP5.3.7最後のRelease Candidateですから、まさに正式リリースの直前でバグが入ったことになります。 バグの入る直前のソースは、ここの関数php_md5_crypt_rから参照することができます。以下に、おおまかな流れを図示します。まずはバ

    PHP5.3.7のcrypt関数のバグはこうして生まれた
    pokutuna
    pokutuna 2011/08/24
  • PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)

    PHP5.3.7のcrypt関数には致命的な脆弱性があります。最悪のケースでは、任意のパスワードでログインできてしまうという事態が発生します。該当する利用者は、至急、後述する回避策を実施することを推奨します。 概要 PHPのcrypt関数は、ソルト付きハッシュ値を簡単に求めることができます(公式リファレンス)。crypt関数のハッシュアルゴリズムとしてMD5を指定した場合、ソルトのみが出力され、ハッシュ値が空になります。これは、crypt関数の結果がソルトのみに依存し、パスワードには影響されないことを意味し、crypt関数を認証に用いている場合、任意のパスワードでログインに成功する可能性があります。 影響を受けるアプリケーション crypt関数を用い、ハッシュアルゴリズムとしてMD5を指定しているアプリケーション。 環境にも依存しますが、デフォルトがMD5の場合もあります。筆者のテスト環境

    pokutuna
    pokutuna 2011/08/23
    ロック
  • YouTube - 伊藤直也 - Perl プログラマが PHP大規模開発の会社に入って 1/2

    next http://www.youtube.com/watch?v=7uN-zNn32Ng YAPC::Asia Tokyo 2010 (c)伊藤直也 CC-BY-NC

    YouTube - 伊藤直也 - Perl プログラマが PHP大規模開発の会社に入って 1/2
  • http://twitter.com/kentosho/status/20873410973

    http://twitter.com/kentosho/status/20873410973
    pokutuna
    pokutuna 2010/08/12
    PHPの人怖い
  • ayacnews2nd.com - このウェブサイトは販売用です! - ayacnews2nd リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    ayacnews2nd.com - このウェブサイトは販売用です! - ayacnews2nd リソースおよび情報
    pokutuna
    pokutuna 2010/08/03
  • RejectKaigi で発表した require 'php' のソースをアップしました - 星一の日記

    RubyKaigi2009 お疲れ様でした! スタッフをはじめ、皆様どうもありがとうございました! さて、僕は今回 RejectKaigi にて「require 'php'」というタイトルで発表いたしました。内容は以下のような Ruby プログラムを実現するライブラリの紹介です。 p 42 == '42' # => false require 'php' p 42 == '42' # => true 開始早々にトラブルが起きて*1プレゼン資料が表示できず、デモだけで強引に乗り切りました。しかしながら、スライドを用いないで発表することでむしろ良かったなあと思える点があって、それは、我々の共通語である Ruby 語のみを用いることで、自ずと国際的な発表になったんじゃないかなあということです。海外の方からも「病的だ」「身の毛もよだつ」という評判をいただきました。ありがとうございました。 php.

    RejectKaigi で発表した require 'php' のソースをアップしました - 星一の日記
    pokutuna
    pokutuna 2009/07/20
    うける
  • PHPの比較の素晴らしさ加減は正常

    if ("0x0A" == "10") { print '(´ε` )チュッ'; } チュッ。されちゃいます。 文字列であっても整数と解釈できる文字列の場合は勝手に型変換しやがる今世紀最大の愚行を犯してしまうってのは有名な話だよね。 文字列であっても整数と解釈できる文字列の場合は自動的に整数に型変換してくれる超便利機能があるってのは有名な話だよね。 だけどなんでコレが一致するかわけがわからんかった。 0x0Aは10進数で10になるので一致する。と、言いたいところなんですがそう単純な話じゃないんだ。 以下の例を目ん玉見開いて見て欲しい。 var_dump(0x0A); var_dump("0x0A"); var_dump((int)"0x0A"); var_dump((float)"0x0A"); var_dump(intval("0x0A")); 実行結果 int(10) string(4

    PHPの比較の素晴らしさ加減は正常
    pokutuna
    pokutuna 2009/06/17
    PHPさんマジうける
  • 1