新しいことを勉強して、久々に心底感動しました。 Facebookである方が「もうすぐCodeIgniterカンファレンスが開催される」といったつぶやきをしているのを拝見し、この時初めてその存在を知りました。。 PHPのフレームワークで、習得が早く、動作速度が爆速だということだったので、ちょっと触ってみるかとダウンロードしてドキュメントを読みながら Hello World!を作ってみる。すると・・・ こ・・これはすごい・・ なにがすごいって、これまで私は「CakePHP」を超愛用していました。CakePHPは、もちろんそのほとんどがすごくいいのですが、若干だけ不満があったのです。しかし、codeIgniterではCakePHPの好きなところはそのままに、不満が全部吹っ飛んでいたのです。 では、その全貌をご覧入れましょう。 モデル・ビューが不要 CakePHPもcodeIgniterも、MV
補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2010年9月27日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり PHPカンファレンス2010にて「文字コードに起因する脆弱性とその対策」というタイトルで喋らせていただきました。プレゼンテーション資料をPDF形式とslideshare.netで公開しています。 文字コードのセキュリティというと、ややこしいイメージが強くて、スピーカーの前夜祭でも「聴衆の半分は置いてきぼりになるかもね」みたいな話をしていたのですが、意外にも「分かりやすかった」等の好意的な反応をtwitter等でいただき、驚くと共に喜んでいます。土曜にPHPカンファレンスに来られるような方は意識が高いというの
$ wget http://jp2.php.net/get/php-5.3.0.tar.gz/from/jp.php.net/mirror $ tar zxvf php-5.3.0.tar.gz $ sudo mv php-5.3.0 /usr/local/lib $ cd /usr/local/lib/php-5.3.0 $ ./configure $ make $ sudo make install Ubuntuにインストールしたのですがconfigureで「configure: error: xml2-config not found. Please check your libxml2 installation.」というエラーが出たので一応対処法も。 $ cd /usr/lib $ sudo ln -s libxml2.so.2 libxml2.so $ sudo aptitude
memcachedのget_multiが使えるようになったPHP拡張「pecl::memcached」 2009年06月26日- memcachedのget_multiが使えるようになったPHP拡張「pecl::memcached」。 「New Memcached Extension for PHP - techPortal」というエントリにてpecl::memcacheならぬ、pecl::memcached という新しいPHPの拡張が紹介されていました。 調べると、digg.com によって今年1月に公開されているみたいでしたが、知りませんでしたので、知らない人もいるかと思い、ご紹介。 pecl にて検索すると2件ヒットしますが、memcached が新しい方。 pecl::memcache拡張の方では、使えなかった、複数キーを指定してパラメータを取得できる、get_multi の AP
さて、前回記事「PHPでメモリ上に一時ファイルを作る」では、file_get_contents関数でCSVファイル全体を取得して文字エンコーディングの変換を行い、変換結果に対してfgetcsv関数を利用しました。しかし、CSVファイルが巨大な場合にはfile_get_contentsを使うとメモリ上限に引っかかってPHPが停止してしまいます。 もちろん、UTF-8のCSVファイルに対してfgetcsvを利用するのであれば、どんな大きなCSVファイルだろうと処理することが可能です。なぜなら、fgetcsvはファイルを1行単位で読み込む関数ですから、1行分のメモリ消費だけでファイル全体を読み込み続けられるからです(正確にはストリーム上のデータはバッファリングされるので、バッファサイズ分のメモリは消費しますが)。 それでは、巨大なSJISのCSVファイルをfgetcsvで処理したい場合はどうすれ
「blog.plastik.jp » PHP5 の fgetcsv() で読み込み内容が腐る現象」という記事を読みました。fgetcsv()だとSJISのCSVファイルがうまく読めないので、UTF-8に直してテンポラリファイルに保存してfgetcsvで読み込む、という筋書きのようです。 ちゃんとtmpfile()を使っていたりしてナイスなコードだと思います。でも、すぐ不要になるデータをディスクに書き込むのはイマイチじゃないでしょうか。ここはメモリに書いた方がカッコいいと思うんです。僕なら下記のようにします。 <?php $data = file_get_contents("example.csv"); $data = mb_convert_encoding($data, "UTF-8", "Shift_JIS"); $fp = fopen('php://memory', 'r+'); fw
IPアドレスから所在地を調べたいと思ったことはありませんか?今回は,IPアドレスからその場所がどこなのかPHPで調べる方法をご紹介します。 それには,GeoIPライブラリが必要になります。PHPからこのライブラリの機能を使うには, PEARのNet_GeoIPをインストール Peclの拡張モジュールをインストール Apacheのモジュールとしてインストール という3種類の方法があります。 今回はPeclの拡張モジュールを使います。対象はLinux系OSになります。 1.GeoIPライブラリををインストール MaxMind社のホームページから,GeoIPライブラリをダウンロードし,インストールします。 cd /usr/local/src wget http://www.maxmind.com/download/geoip/api/c/GeoIP.tar.gz tar xzvf GeoIP.t
こんにちは。ライフスタイル事業部のアリタと申します。 Yahoo!のサービスも裏側ではWebAPIが多用されています。1つのページを構成するのに5、6個のAPIを使うこともざらですが、それではさすがにパフォーマンスが問題となってきます。その原因と対策例を紹介していきましょう。 ■モデルケース 例として、3つのAPIから取得したデータをマッシュアップしたページがあるとします。(ここではサンプルコードを簡単にするため、APIの代わりに以下のRSSで説明としました) Yahoo!トピックス エンターテインメントRSS http://dailynews.yahoo.co.jp/fc/entertainment/rss.xml Yahoo!ミュージックマガジン最新情報RSS http://magazine.music.yahoo.co.jp/rss/ALL/rss.xml Yahoo!検索トレンドR
(2009/06/29)追記4:本記事のmb_trim関数が動かない環境があったので、詳細を「PCREはUnicode文字プロパティをサポートするとは限らない」にまとめました。よりポータブルなmb_trim関数も紹介していますので、併せてご覧ください。 追記:「mb_ereg_match('^[\0[:space:]]+$', $str);」で、今回pregで作った正規表現'/^[\s\0\x0b\p{Zs}\p{Zl}\p{Zp}]+$/u'と同一になりました。mb_regex_encoding関数が使える分だけmb_ereg版の方が使い勝手も上です。ちょっとショック。 (2009/02/24 17:00)追記2:もっと簡潔に、「mb_ereg_match('^[\0\s]+$', $str);」でいいことがわかりました。POSIX正規表現風の表記がキモいな、と思っていたので、これは素晴
ここでは、PHP用グラフィックライブラリGDを使ってスクリプトを書く方法を説明したいと思います。 GDを使ったCMSを作ると、画像をサーバにアップロードして自動的にサムネイルを作ったり出来ます。 また、GDを使うと任意の絵を作成できるので、例えばAJAXと組み合わせて色々作ると楽しいかも知れません。 その他、色々と使いどころはありそうです。 基本 GDの使い方 GDライブラリの設定情報を確認する 四角く塗りつぶす 画像の読み込み PNGの出力 JPEGの出力 画像の拡大と縮小 画像の回転 TrueType Fontを使った文字列出力 TrueType Fontを使った文字列出力(傾きあり) TrueType Fontで文字列を記述した場合の大きさを測る TrueColor画像(1) TrueColor画像(2) 画像上に文字列を表示 画像上にロゴをオーバーレイ 画像フィルタ 明度 カラーバ
Read PDF and Word DOC Files Using PHP PHPでWordのdocファイルやPDFをテキストとして読み取る方法が紹介されていました。 XPDF package、Antiword というプログラムをshell_execで外部起動するだけなのですが、WordやPDF用の検索のインデックスを作成する時など、なかなかこれは便利そうです。 PDFの場合は、XPDFパッケージをインストールして入るコマンドのpdftotext にファイル名を渡します。最後の - も必要みたい。 $content = shell_exec('/usr/local/bin/pdftotext '.$filename.' -'); //dash at the end to output content これで $content にpdfのテキストが入る Wordの場合も同様に、Antiwor
正直に言えば、相当なめてかかっていた。ダウンロードして解凍してできたファイルはたったの二つ。これで何ができるのかという思いだった。アップロードして、ファイルにアクセスする。出てきたのはユーザ情報設定画面のみ。そしてログインをする。 利用可能なテンプレート 次に表示されるのはWebサイトのテンプレートが列挙された画面だ。たった二つのファイルでこのような情報が、と思わせる内容だ。そしてテンプレートを選んだ所から凄い衝撃が襲いかかった。 今回紹介するオープンソース・ソフトウェアはZimplit、見たまま編集するWebサイト構築ツールだ。ライセンスはAGPLだが、商用向けには有償でライセンス提供している。 ZimplitはテンプレートになるデザインをどこかのWebサーバからダウンロードして展開する(恐らくZimplitの公式サイトから)。そしてユーザが見るであろう画面の上にウィンドウを表示して、そ
final class MyClass { private static final MyClass instance = new MyClass(); private MyClass(){}; public static MyClass getInstance(){ return instance; } public void hogehoge(){ System.out.println("hogehogeメソッド"); } } class Test{ public static void main(String aa[]){ MyClass m = MyClass.getInstance(); m.hogehoge(); } } javaの場合定数の初期化は一度しか行われないのが保障されているので必ず一度しかインスタンス化はおこなわれないです。 しかしコンストラクターが呼び出せてしまう
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
pChart 2.x is born, you can start moving your script to this new version. The new website is at www.pchart.net. pChart is a PHP class oriented framework designed to create aliased charts. Most of todays chart libraries have a cost, our project is intended to be free. Data can be retrieved from SQL queries, CSV files, or manually provided. This project is still under development and new features or
なんだかやけに長い説明ばかり検索に引っかかったので書きました。 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ページを開く