(4/17追記)twitter経由でタレコミがありまして、恥ずかしいミスをコッソリ直しました(32bit整数の範囲について)。どなたかわかりませんが、ありがとうございます! PHPの整数(integer型)はCのlong型をそのまま利用しています。つまり、32bit環境であれば整数の範囲は-2^31から2^31-1までとなります。また、PHP 4.4.0以降および5.0.5以降、最大の整数を表す定数PHP_INT_MAXが利用できます。 ところで、最大の整数に1を足すと何が起こるのでしょうか。PHPマニュアルの「整数のオーバーフロー」にも記述がありますが、整数の範囲を超えるような演算の結果はfloat型となります。 <?php var_dump(PHP_INT_MAX); // int(2147483647) var_dump(PHP_INT_MAX+1); // float(214748
みたいなタイトルの記事を Digg 経由で発見。チートシート代わりにと思い超訳。*1 A Software Architect PHP 最適化 ベストプラクティス! 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo '文','字'; (カンマ区切り)の方が、'文'.'字' (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require でファイルはフルパスで指定しよう。 09
個人的には、PHP って、嫌いな言語じゃないんだけど、とかく宗教戦争に持ち込まれやすい。攻撃する側は、「言語としてなっとらん」みたいな主張が多くて、具体的にどこが? と思っていたんだけど、これほど面白い例は無い。 PHPの比較の素晴らしさ加減は正常 「16 進数の表記は整数に変換するけど、じゃぁ、8進数は」という辺りが傑作なのだが、この挙動、結構、奥が深かった。 PHPでは"0x0A"=="10"がtrue | 水無月ばけらのえび日記 上記ページを読むと、整数に変換するかどうかは、C のライブラリ関数である strtod に依存しているらしい。で、このページのコメントに書かれているように、その strtod 自体が、コンパイラがどの規格に準拠してコンパイルしたかによって、挙動が変わってしまう。C99 準拠してコンパイルすれば、16 進数の表記は整数に変換されるが、そうでなければ変換されない
PHP 4.4.0以降およびPHP 5.0.5以降では、最大の整数が定数PHP_INT_MAXとして定義されています。 $ php -r 'var_dump(PHP_INT_MAX);' int(2147483647) 64bit環境では次のような結果になります。 $ php -r 'var_dump(PHP_INT_MAX);' int(9223372036854775807) ところで、最小の整数が必要な場合はどうすればいいのでしょうか。実は最小の整数は定数定義されていないのですが、次のようにすれば取得できます。 $ php -r 'var_dump(~PHP_INT_MAX);' int(-2147483648) 64ビット環境でも同様です。 $ php -r 'var_dump(~PHP_INT_MAX);' int(-9223372036854775808) ここで利用した~とい
Category:Libraries -> Session (Originally discussed at http://codeigniter.com/forums/viewthread/44945/) This is a session library that uses native PHP sessions. It stores data server-side, instead of client-side (like regular CI sessions). This library also supports ‘flash’ variables, as described in this forum thread. These let you set a variable that will only exist for one page load, then be a
PHPには5.0.0以降SPL (Standard PHP Libray)という枠組みが導入されています。これにより、Iteratorインターフェースを実装したクラスのインスタンスであれば、foreach文で配列と同じように取り扱えます。自分でクラスを作るときもIteratorを実装すれば使うのが楽ですし、コードも読みやすくなると思います。 また、PHPに標準で組み込まれているクラスにはIteratorを実装しているものが多数あります。たとえば僕の手元のPHP5.2.9には24個のイテレータがあり、そのうちいくつかは十分に実用的なクラスです。ただ、日本語の資料が少ないせいか、かなり知名度は低いように思います。本記事では4つの便利な組み込みイテレータを紹介します。 SPLのクラスにはデザインパターンの考えが多く含まれています。特に、イテレータを元にイテレータを作るような使い方は、保守性の高い
早速ですが、はじめてのZendFrameworkのアプリケーションを作ってみましょう。 何事をはじめるにも最初は簡単なことからはじめるのが一番です。ゲストブックと呼ばれるアプリケーションを作ってみましょう。 ゲストブックとは 旅館やペンションにて、宿泊客が思い思いの感想を書くノートなどを見かけたことがありませんか? 感想を書いたことがある方もいることでしょう。このノートはゲストブックと呼ばれています。 ゲストブックは設計が非常にシンプルなのでコンピュータアプリケーションの入門アプリとして広く利用されています。この連載でも最初のアプリケーションはゲストブックにします。 フレームワークなしのゲストブックアプリ Zend Frameworkを利用したゲストブックアプリケーションを期待されているかもしれませんが、ちょっと我慢してください。まず最初に、通常のPHPアプリとして作られたゲストブックアプ
さて、前回記事「PHPでメモリ上に一時ファイルを作る」では、file_get_contents関数でCSVファイル全体を取得して文字エンコーディングの変換を行い、変換結果に対してfgetcsv関数を利用しました。しかし、CSVファイルが巨大な場合にはfile_get_contentsを使うとメモリ上限に引っかかってPHPが停止してしまいます。 もちろん、UTF-8のCSVファイルに対してfgetcsvを利用するのであれば、どんな大きなCSVファイルだろうと処理することが可能です。なぜなら、fgetcsvはファイルを1行単位で読み込む関数ですから、1行分のメモリ消費だけでファイル全体を読み込み続けられるからです(正確にはストリーム上のデータはバッファリングされるので、バッファサイズ分のメモリは消費しますが)。 それでは、巨大なSJISのCSVファイルをfgetcsvで処理したい場合はどうすれ
PHPをJava VMで動かしたいと思ったので、いろいろ調べてみた。 Java VM用のPHPとしては、現状でCaucho QuercusとPROJECT ZEROのP8があるようだ。 どちらもPHP5.2をターゲットにしているみたい。 P8 ここで、PROJECT ZEROのP8の方は、WebSpere sMeshの一部みたいで、単独では配布してなさそう。試してない。Tomcatで使えるんだろうか? けど、IBMがやってるということで、今後が期待できそう。 http://www.projectzero.org/ Quercus Quercusのほうは、Resin作ってるCauchoがやってる。前はResinじゃないと動かなかったようだけど、今はTomcatでも動く。ただしどこまで動くかは調べてない。 PHPの関数は全部Javaで書き直されてて、mbstringとかgdとかも実装されてる。
PHP: Hypertext Preprocessor PHP4は8月8日(米国時間)にサポート終了となった。以降、PHP4がアップグレードされることはない。セキュリティの観点からPHP4を採用している場合にはできるかぎり早いタイミングでPHP 5.2系へアップグレードする必要がある。しかし、とは言ってもPHP4からなかなか移行できないという場合も多い。PHP4から5への変更にともなう学習コストが懸念されるし、アプリケーションの更新も骨が折れる。 しかしアップデートしないわけにもいかない。Zend PHP 5 Certification BlogにDifferences Between PHP 4 and 5のタイトルのもとPHP4とPHP5の違いを簡単にまとめたものが公開されている。PHP5の学習を躊躇っている場合には概観を掴むためにもチェックしておきたい内容だ。簡単にまとめると次のよう
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
The html blog | 10 code snippets for PHP developers I've compiled a small list of some useful code snippets which might help you when writing your PHP scripts PHP開発者が便利に使える10のスニペット集が紹介されていました。 メールアドレスチェック簡単化 php-email-address-validation クラスを使ったメールアドレスチェック http://code.google.com/p/php-email-address-validation/ include('EmailAddressValidator.php'); $validator = new EmailAddressValidator; if ($valida
Ywcafe.net This Page Is Under Construction - Coming Soon! Why am I seeing this 'Under Construction' page? Related Searches: All Inclusive Vacation Packages Dental Plans Accident Lawyers Work from Home music videos Trademark Free Notice Review our Privacy Policy Service Agreement Legal Notice Privacy Policy|Do Not Sell or Share My Personal Information
YUI2.5.0の新機能、Flickr風の複数ファイルアップローダをPHPで実装してみる 2008年02月25日- YUI 2.5.0 Released ? Big upgrades to DataTable, new Layout Manager, Flickr-style multi-file Uploader, and more Yahoo! User Interface Blog The YUI Team just released version 2.5.0 of the library. We’ve added six new components ? Layout Manager, Uploader (multi-file upload engine combining Flash and JavaScript), Resize Utility, ImageCropper,
なんだかやけに長い説明ばかり検索に引っかかったので書きました。 Linuxのローカル環境でDockerコンテナ内のXアプリ(GUIアプリ)を利用するには $ xhost localhost + を実行した後に $ docker run --rm --net host -e "DISPLAY" container_image_name x_app_binary_path とすれば良いです。 もっと読む SSHなどよく知られたサービスポートで何も対策せずにいると数えきらないくらいの攻撃リクエストが来ます。不必要なログを増やしてリソースを無駄にし、もし不用意なユーザーやシステムがあると攻撃に成功する場合もあります。 SshguardはC作られており、flex/bisonのパーサールールを足せば拡張できますがカスタム版をメンテナンスするのも面倒です。必要なルールを足してプルリクエストを送ってもマー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く