タグ

ブックマーク / pasela.hatenablog.com (5)

  • 存在しない要素にアクセスしたときのNoticeがうざい - ぱせらんメモ

    [PHP] 存在しない配列のキーにアクセスしたときの挙動まとめPHP5で、配列ではない型の変数や、 配列でも存在しない識別子に対して $array["key"] の アクセスを行ったときの挙動のまとめです(from それなりブログ) あんな型やこんな型に対して添字アクセスを試みた結果がまとまってます。 string型の場合は、識別子をinteger型にキャストした上での各文字へのアクセスとなること 非array型に対して $array["key"] とやっても何もエラーが出ないくせに、array型で存在しない識別子にアクセスするとNotice Errorを吐くこと クラスインスタンスに対してのみ、Fatal Error を吐くこと 1番目と3番目は別にどうでもいいんだが、2番目に関して、自分は結構イライラさせられている。 <?php $data = get_something(); if

    存在しない要素にアクセスしたときのNoticeがうざい - ぱせらんメモ
    iww
    iww 2017/04/19
  • 異なる言語間での暗号化と復号 - ぱせらんメモ

    仕事でデータを暗号化して保存する必要が出てきたので色々調べてみた。 メインのシステムはPHPで作っているんだけど、Javaなども絡んでくるので、お互いが処理できる暗号方式でなければいけない。 仕様さえ明確にしてあればオレオレアルゴリズムでもいいんだけど、今回はかなり重要なデータを扱うので世間でそれなりに使われている暗号方式を使うことにした。 暗号の種類 自分も暗号にそんな詳しいわけではないけど、「データをパスワードで暗号化するんでしょ?」ぐらいにしか思ってない人はきっと大変な思いをする。 今の話で登場するのは 暗号化したいデータ 暗号の種類(アルゴリズム) パスワード(暗号処理に使うキー) の3つだけど、これからやろうとしてるブロック暗号では 暗号化したいデータ 暗号の種類(アルゴリズム) 暗号処理に使うキー(パスワードというかバイト列) 暗号利用モード(ブロック処理の種類) 初期化ベクト

    異なる言語間での暗号化と復号 - ぱせらんメモ
    iww
    iww 2016/04/11
    『PKCS#5 Padding: この方式は切り捨てるべきサイズ(=埋めるサイズ)の値を表すバイト値で足りない分を埋めるという方式。』
  • sudoでリダイレクトするときにハマること - ぱせらんメモ

    sudoで何か実行するとき、普通にリダイレクトするとリダイレクト処理自体は自分の権限になっててハマることがある。 sudo svnadmin dump hoge >hoge.dumpついつい上のようにやってしまいがちだけど、これをやるとhoge.dumpは自分の権限で書き込まれる。書き込み先に権限が無ければ当然エラーになる。 「sudo svnadmin dump hoge」の実行結果をリダイレクトって感じだろうか。 じゃあどうすればいいのかというと、方法は二種類。 sudo sh -c 'svnadmin dump hoge >hoge.dump'ひとつのシェルの実行として括ったものをsudoする方法。 やりたいことの中にクォートがあるとややこしそうだという欠点がある。 ちなみにこの方法はsudo(8)に書かれているやりかた。 もうひとつ。 sudo svnadmin dump hoge

    sudoでリダイレクトするときにハマること - ぱせらんメモ
    iww
    iww 2013/02/25
  • ctimeがファイルの作成時刻とは限らない - ぱせらんメモ

    statで取れる情報の中にはatime, mtime, ctimeがあって、ファイルのアクセス時刻や更新時刻がわかるわけだけど、ctimeって作成時刻だと思ってたら違ったよ! いや、どうやらOSによって異なってくるらしい。Windowsの場合は作成時刻で、Linuxの場合は状態変更時刻らしい。 エクスプローラでファイルのプロパティを見ると「作成日時」「更新日時」「アクセス日時」って並んでるし、多くの記事でも作成日時って書かれてたりするから、ctimeは作成日時なんだと思い込んでたよ! Linuxの場合 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/stat.2.html time_t st_atime; /* 最終アクセス時刻 */ time_t st_mtime; /* 最終修正時刻 */ time_t st_ctime; /* 最終

    ctimeがファイルの作成時刻とは限らない - ぱせらんメモ
  • foreachの$valueを参照で受けると思わぬバグを引き起こす - ぱせらんメモ

    PHP :: Bug #29992 :: foreach by reference corrupts the array <?php $array = array(1, 2, 3); foreach ($array as &$value) {} var_dump($array); foreach ($array as $value) {} var_dump($array); ?> PHP5からはforeachの$valueの部分を参照で受け取ることができるようになったんだが、このコードがいとも簡単に配列$arrayをぶち壊してしまうというお話。 上記コードの結果を予測できるかな? array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(3) } array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(2) //

    foreachの$valueを参照で受けると思わぬバグを引き起こす - ぱせらんメモ
    iww
    iww 2008/11/03
    なぞがとけた
  • 1