タグ

解説とphpに関するiwwのブックマーク (36)

  • PHPのstream wrapperをさわってみた - おぎろぐはてブロ

    PHPには、ストリームラッパーというファイルなどへのアクセスを抽象化するしくみがあります。普段よく使う http:// とかがそうです。 組み込みで提供されるストリームラッパーは以下です。 ファイルシステム HTTP と HTTPS FTP と FTPS PHP 入出力ストリーム 圧縮ストリーム データ (RFC 2397) Glob Phar PHP: Supported Protocols and Wrappers - Manual それぞれどういうふうに使うものなのか試してみました。 ファイルシステム /path/to/file.ext relative/path/to/file.ext fileInCwd.ext C:/path/to/winfile.ext C:\path\to\winfile.ext \\smbserver\share\path\to\winfile.ext f

    PHPのstream wrapperをさわってみた - おぎろぐはてブロ
  • PHPコード最適化Tipsのウソと本当(解説) - カタコト日記

    PHP コード最適化 Best Practices 63+ - カタコト日記 前回は、元記事に一定の敬意を表して、項目とかはあえてそのままにしてたんですが、 自分としても気になる部分が多々あったので、少しだけ調べ直して優先度&解説つけました。 独断と偏見ですが。ヽ(´ー`)ノ 検証はしてません。ごめんなさいごめんなさい。 優先度A、B、C、不明、非推奨に分けてみました。どうぞつっこんでください。 長いよ、今回は。 優先度A. 頻度も高いし使えそう - 6つ 01. static にできるメソッドは static として宣言しよう。(4倍速い) 正しくは、static なメソッドには、OOP のルールに従ってちゃんと static 宣言をつけよう! ってとこでしょうか。来そうでないものを無理に static にしちゃえって話ではないはず。*1 × <?php public function

    PHPコード最適化Tipsのウソと本当(解説) - カタコト日記
  • file_get_contents的な事がやりてえんだよ! - uzullaがブログ

    前置き メモです。 PHPでさくさくとファイル読み書きしていて、Perlだとなんでこんなクソ面倒くさいことをしないといけないんだ!って悩んでる人も参考になると思います。 情報提供makamakaさんです。 file_(get|put)_contents相当なのは use File::Slurp; #read $res = read_file('path/to/file.ext'); #write write_file("/path/to/file.ext", $some_data); 「俺はHTTPでゲットして保存したいんだよ!」 use File::Slurp; use Furl; $furl = new Furl(); $res = $furl->get('http://example.co.jp/file.jpg'); die $res->status_line unless $re

    file_get_contents的な事がやりてえんだよ! - uzullaがブログ
  • Twitter時代の文字の数え方 | 配電盤

    入力「×」のブラウザでは、「𠮷」が2文字とみなされるため、2文字目まで、つまり「𠮷野」までしか入力できません。 Mozillaの文書には、Unicode code pointsで数えると書いてあるので、そのうち改善されるのかもしれませんが、現時点ではTwitterのために「maxlength="140"」を使うことはできません。 pattern属性 Firefox 21とChrome 27、IE 10、Opera 12.15は、「pattern=".{0,3}"」(任意の文字からなる0から3文字)のような正規表現を使った検証にも対応していますが、やはり「𠮷野家」は4文字とみなされてしまいます。 JavaScript 追記:javascript – でBMP以外のUnicode文字をきちんと扱う(404 Blog Not Found) JavaScriptでは、文字列strの長さをst

  • PHPで==の代わりにstrcmp関数を使うことによる問題点 - hnwの日記

    補足(2010/12/01 03:00):floatからstringへのキャストで丸められる桁数についてですが、php.iniの設定値「precision」の影響を受けるようです。 僕は以前から「PHPの==はキモいから===を使おうよ」と言っているつもりです(参考:「PHPの==がキモい件」)。しかし、ネット上には==を使った比較での不慮の事故を防ぐ目的で、「安全な==」としてstrcmp関数を使って比較している人が居るようです。このやり方について問題点を指摘します。 strcmpで比較するというのはstring型にキャストをして比較するのと同じですから、キャストして何が起こるか熟知していないと比較結果は想像がつきません。僕は全ての型からstring型へのキャストで何が起こるかスラスラ言えるわけではありませんから、何でもstrcmpするのは==を使うのと同じように怖いと感じます。 今回、

    PHPで==の代わりにstrcmp関数を使うことによる問題点 - hnwの日記
    iww
    iww 2012/12/27
    わざわざ===を使わずstrcmpにしてた。キャストの問題があるのか
  • PHPでPNGファイルの各種情報を手軽に得る - id:anatooのブログ

    PNGファイルが偽装されていたり壊れていない事が前提。 <?php function png_info($bin) { return unpack('Nwidth/Nheight/Cbit/Ccolor/Ccompress/Cfilter/Cinterlace', substr($bin, 16, 13)); } var_dump(png_info(file_get_contents('hoge.png'))); 結果 array(7) { ["width"]=> int(7) ["height"]=> int(4) ["bit"]=> int(8) ["color"]=> int(2) ["compress"]=> int(0) ["filter"]=> int(0) ["interlace"]=> int(0) }画像の幅や高さ、カラータイプ、圧縮方式、インターレースかどうかなどの情報

    PHPでPNGファイルの各種情報を手軽に得る - id:anatooのブログ
  • PHP: スコープ定義演算子 (::) - Manual

    スコープ定義演算子 (::) スコープ定義演算子 (またの名を Paamayim Nekudotayim)、 平たく言うと「ダブルコロン」は、トークンのひとつです。 定数 static プロパティ、 クラスの static メソッド、 や親クラスのそれにアクセスできます。 さらに、static メソッドやプロパティは 遅延静的束縛 (Late Static Bindings) 経由でオーバーライドできます。 これらの要素をクラス定義の外から参照する際には、 クラスの名前を使用してください。 変数を用いてクラスを参照することも可能です。 変数の値に (self や parent、 static といった) キーワードを指定することはできません。 なぜダブルコロンに Paamayim Nekudotayim という名前をつけたのか、 ちょっと奇妙に感じられるかもしれません。 しかし、Zend

    PHP: スコープ定義演算子 (::) - Manual
    iww
    iww 2011/09/14
    「実はダブルコロンを意味するヘブライ語なのです!(ドヤッ」
  • magic_quotes_gpc = On の対策 - [PHP + PHP] ぺんたん info

    [参考]GPC(GET/POST/cookie)以外の情報を送るアラワザ php.iniで以下の設定があるとき magic_quotes_gpc = On クライアントより<form>フォームで送られた文字列データが全てエスケープされ、 「" → ¥"」「¥ → ¥¥」など変換処理が行われます。 またクッキーも同様です。 ここで問題になってくるのが、Shift-JISを扱うときです。5C文字化けに遭遇します。 『ソ』、『噂』、『圭介』、『能』という字も、エスケープされます。 エスケープしないようにするためには、Magic quotesの設定をOffにするのが単純な方法ですが、 設定変更できない場合などあります。 またこれが設定されているかされていないかで、いちいち意識するのも面倒であったりします。 たとえば開発環境のサーバーではできてたのに、番環境のサーバーではできなかったり。 そんなと

    iww
    iww 2010/04/16
    バックスラッシュがついたりつかなかったりするときの話
  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • hnwの日記 - PHPの奇妙なround関数

    (2012/11/01追記) 4年ほど前の記事「PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった - hnwの日記」でお伝えした通り、PHP 5.3.0から別の実装が採用されており、ページで指摘しているような挙動のPHPは既に絶滅危惧種です。念のため。 さて、プログラミングの話題もたまには書いてみます。今回はPHPのround関数の挙動が変だ!という話題です。 round()は浮動小数点数を四捨五入する関数で、大抵の言語に同じ名前で実装されているかと思います。ではPHPのround関数の何が問題なのか、ちょっと試してみましょう。 $ uname -sro Linux 2.6.9-42.0.10.plus.c4smp GNU/Linux $ php --version PHP 5.1.6 (cli) (built: Feb 23 2007 06:56:38)

    hnwの日記 - PHPの奇妙なround関数
  • 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
    なぞがとけた
  • 「セキュアなPHPアプリケーションを作成するための7つの習慣」のサンプルがとんでもなく酷い - ockeghem's blog

    はてブで250以上のブックマークを得ている以下のエントリ。 PHP アプリケーションを作成する際には、可能な限りセキュアなアプリケーションにするために、次の 7 つの習慣を守る必要があります。 入力を検証する ファイルシステムを保護する データベースを保護する セッション・データを保護する XSS (Cross-Site Scripting: クロスサイト・スクリプティング) の脆弱性から保護する フォームへの投稿を検証する CSRF (Cross-Site Request Forgeries: クロスサイト・リクエスト・フォージェリー) から保護する ほう。しかし、内容はどうだろうか。 読んでびっくりした。説明も微妙なところが多いが、サンプルが酷い。こんなサンプルでは悪い習慣が身についてしまう。全部は書ききれないと思うので、目についたところからピックアップして紹介する。 パストラバーサル

    「セキュアなPHPアプリケーションを作成するための7つの習慣」のサンプルがとんでもなく酷い - ockeghem's blog
  • はてなブログ | 無料ブログを作成しよう

    賃貸暮らしのわが家の地震対策【揺れから命を守る編】 以前のブログでも記載した、防災の優先順位に基づいて対策を進めています。まだ手をつけられていない部分もありますが、ある程度まとまってきたのでざっくりとご紹介していきます。 優先順位別に改善していっているため、今回は主に地震の揺れ対策がメインになります。…

    はてなブログ | 無料ブログを作成しよう
  • JavaScriptとPHPでつくるAjaxインクリメンタル検索:CodeZine

    はじめに Ajax(エイジャックス:Asynchronous JavaScript+XMLの略称)はウェブ上のサービスを中心に普及してきました。 皆さんの開発現場でAjaxは活用されているでしょうか? 最近はいろいろなJavaScriptフレームワークが出てきているため、Ajaxのサンプルもウェブ上に多く掲載されています。しかし、特定のJavaScriptフレームワークやWebアプリケーションフレームワークに依存したサンプルは制約も多いため、活用を躊躇しているITエンジニアも多いのではないでしょうか? この記事では、特定のフレームワークを利用せずにAjaxによるインクリメンタル検索を実装してみることで、Webアプリケーションの基礎を振り返ってみたいと思います。 今回作成するインクリメンタル検索アプリは、蔵書の検索です。完成イメージを以下に示します。 記事は、以下の順序で進みます。 全体の

  • CakePHP プログラマーズ リファレンスガイド

    これは CakePHP の公式マニュアルです。Cake Software Foundation Inc. *** 注)これは、1.1用のマニュアルです。1.2用の最新版マニュアルは http://book.cakephp.org/ja/にあります。*** Author and Editor: John Anderson Author and Technical Editor: Larry E Masters