タグ

programmingとphpに関するasiamothのブックマーク (21)

  • Performance Comparison Saaze vs. Hugo vs. Zola - Elmar Klausmeier's Blog on Computers, Programming, and Mathematics

    asiamoth
    asiamoth 2023/01/23
    静的サイト・ジェネレータの速度比較。初めて聞いたPHP製のSaazeが圧勝。ただ、知名度No.1のHugoと比べても千記事で数秒の差。困ったことがあった時、解決までの時間を考えるとHugoで良いか、ってなる。
  • PHPの閉じタグは心の臓に悪いから使わないで - Unknown::Programming

    閉じタグってのは「?>」のことね。未だに閉じタグ使ってるコードを見ると一瞬ドキッとするんだよね。(自分の昔のコードも含むw) いや、ちゃんとわかってて確実に使いこなしてるならいいんだけどたまに -- ここがファイルの先頭 -- <?php class Foo { // いろいろ } ?> -- ここがファイルの後尾 -- みたいな感じで閉じタグの後に改行コードが一つ入ってたりするのを見ると「あわわわ」ってなっちゃう。 実際には改行一つだけなら問題は出ない、PHPは閉じタグの直後の改行を消してくれるからね。 問題は改行が二つ以上あった場合だ。これは悲惨なことになる。PHPは閉じタグ以降のデータ(というか範囲外のデータ)は全部HTMLとして出力される仕様なので、改行コードが表示されちゃう事態に。 表示されちゃうっていうのは語弊があるか、元々PHPHTMLに埋め込むための言語なのでの範囲外の文

    PHPの閉じタグは心の臓に悪いから使わないで - Unknown::Programming
    asiamoth
    asiamoth 2009/08/02
    知らなかった! 性格的に最後の改行は気持ち悪いので消していただ、閉じタグ自体を使わないようにしよう。
  • PHPでコンストラクタからメソッドチェーンする方法 - id:anatooのブログ

    PHPでは他の言語のようにコンストラクタからメソッドチェーンできない。例えば"new Hoge->doSomething();"というようなことができない(やってみるとパーサエラーになる)。 オブジェクトを生成して何かひとつメソッドを呼び出して終わり、という例の時に <?php $obj = new Hoge; $obj->doSomething(); とやるのは変数に何か名前をつけるコストやタイプ数などの観点から見てめんどうくさい。 そこで以下のような関数を定義する。 <?php function ref($obj) { return $obj; } この関数はみたとおり渡された値をそのまま返す関数だが、これを使うことで以下のようにメソッドチェーンできるようになる。 <?php ref(new Hoge)->doSomething(); というバッドノウハウっぽい話。

    PHPでコンストラクタからメソッドチェーンする方法 - id:anatooのブログ
    asiamoth
    asiamoth 2009/04/01
    良さげなテクニックだけど、バッドノウハウなのかな? Perl5 の「自家製 say」みたいな感じ。
  • PHP_CodeSnifferのstandardオプションにはフルパスが使える - Do You PHP はてブロ

    ちょっとしたネタ。PHP_CodeSnifferのコードを見ていて気づいたんですが。。。 コーディング規約の指定 PHP_CodeSniffer は、複数のプロジェクトで使用するために、 複数のコーディング規約をインストールすることができます。 PHP コードをチェックする際に、どのコーディング規約を使用するかを PHP_CodeSniffer に指定することができます。これを行うのが、コマンドライン引数 --standard です。 standardオプションには規約名だけじゃなく、規約を定義したディレクトリへのフルパスが使えるようです。 たとえば、PEAR :: Manual :: コーディング規約のチュートリアルにある規約MyStandardをカレントディレクトリ以下に作った場合、以下のようにフルパスを指定すればOKです。 $ ls MyStandard Test.php $ php

    PHP_CodeSnifferのstandardオプションにはフルパスが使える - Do You PHP はてブロ
    asiamoth
    asiamoth 2008/06/18
    PHP_CodeSniffer自体、初めて知った。tidyみたいなかんじかな。コーディング規約って、機械的に処理できるので、どの言語でもプログラムがチェックして欲しい。
  • Perlが初めての人に教えてあげたいちょっとしたこと - Unknown::Programming

    タイトルは釣りです。 実際のタイトルは「Perlのオブジェクト指向がムズカシイだって?んなバカな。だったらPHPで再現してやんよ!」でございます。 ヘイヘイヘイ。そこの君。Perlのオブジェクト指向が難しいだなんていったい誰が言ったんだい? Perlのオブジェクト指向ほど、シンプル且つ柔軟なものはないよ! 単なるパッケージ(名前空間)とリファレンス(データ)をblessという関数で紐付けただけのもなんだから。 第一引数に必ず$selfが来るっていうのも結局の話たんなる関数呼び出しとなんら変わらないのだから。 package Foo; sub new { my $class = shift; return bless { @_ } , ref $class || $class; } sub plus { my $self = shift; my $int = shift; return $s

    Perlが初めての人に教えてあげたいちょっとしたこと - Unknown::Programming
    asiamoth
    asiamoth 2008/06/18
    PerlのオブジェクトシステムをPHPで実装!
  • PHPの実行をPHPのソースコード(C言語)のレベルで見る方法 - suztomoのはてなダイアリー

    PHPはソースコードを読めばわかるとおりC言語で書いてあります。 そのC言語の中でPHPがどんな処理をしているのかをデバッガであるgdbを用いて見ることができるのでそれを紹介します。まぁ普通のgdbの使い方なんですが:p ソースをダウンロードしてコンパイル PHP-5.2.6のソースをダウンロードします。 まず./configureするとのMakefileができます。 このMakefileの中で-gオプションがついていることを確認しましょう。*1 これがデバッガ(gdb)用のオプションで、コンパイルされたバイナリファイルにソースコードとの対応付けができます。 次にmakeします。時間がかかります。 サンプルファイル makeしている間に次のようなPHPファイルを作成しましょう。 <?php $i = "12"; $k = intval($i); ?> これは文字列の"12"をintval関

    PHPの実行をPHPのソースコード(C言語)のレベルで見る方法 - suztomoのはてなダイアリー
    asiamoth
    asiamoth 2008/06/10
    おお、いろいろと面白いことが分かりそう。/ 最初、「ちょw suzutomoさんの部屋が画面に映り込んでるよwww プギャー(AA略)」と思ってしまった(笑)。
  • はてなブログ | 無料ブログを作成しよう

    2024/12/27 ベイスターズのドキュメンタリー映画「勝ち切る覚悟」を見た! シーズン終盤~日シリーズ優勝までの舞台裏を抑えたドキュメンタリーで、ベンチ裏での映像がメインとなっている。ナレーションは無く、説明がほとんど無いので「いつ何があったか」があらかじめわかって…

    はてなブログ | 無料ブログを作成しよう
    asiamoth
    asiamoth 2008/05/25
    そして、この記事も検証せずに鵜呑みにするオレ(とアナタ)がいる。/ 高木先生「うんこがサニタイズされていない」 ワロタwww
  • http://www.cpa-lab.com/tech/032

    asiamoth
    asiamoth 2008/05/23
    PHPの変数管理について。PHPの「参照」ってそういうことだったのか、と勉強になった。
  • PHP コード最適化 Best Practices 63+ - カタコト日記

    みたいなタイトルの記事を 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 コード最適化 Best Practices 63+ - カタコト日記
    asiamoth
    asiamoth 2008/05/22
    知らない関数がたくさんあった……。ちゃんと覚えよう。
  • PHPマニュアルに名前空間の記述が追加された - Do You PHP はてブロ

    高木さんキター!ホントにありがたいことです。最近全然お手伝いできなくてすみません。。。 PHP 5.3.0以降で導入予定の名前空間についての解説が、公式マニュアルに追加されました。 名前空間の他、遅延静的束縛 (Late Static Bindings)についても記載がありますね。たとえば <?php class A { public static function who() { echo __CLASS__; } public static function test() { self::who(); } } class B extends A { public static function who() { echo __CLASS__; } } B::test(); というコードがあったときに「A」が表示されるのか?「B」が表示されるのか?ということですが、 PHP5.3以前:A

    PHPマニュアルに名前空間の記述が追加された - Do You PHP はてブロ
    asiamoth
    asiamoth 2008/01/31
    PHP5.3以降は、selfの代わりにstaticを使う。注意が必要。
  • 「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い : 404 Blog Not Found

    2008年01月29日16:00 カテゴリLightweight Languages 「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い Matzさんの意見に、想定内の反応が返って来ている。 Matzにっき(2008-01-26) - [言語] Attacking PHP PHPがいかに駄目な言語か、という話。 どの言語で書いてもおかしなコードを書く奴は書く。perlでもjavaでもrubyでも、どの言語で書いてもSQLインジェクションやらXSS脆弱性やらを作りこむ奴は作りこむ。ただそれだけの話というか、別な話だろう。 両方とも事実だし、foo言語のuserがbar言語がいかに駄目かを語るというのは有史以前(コンピューター言語以前に自然言語でもある)からの話題なのだが、しかし"PHP sucks"には他とかなり異なる点が一つあるように見受けられる。 それは、PHP

    「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い : 404 Blog Not Found
    asiamoth
    asiamoth 2008/01/30
    PHPはWeb作成に特化した言語であって、それ以上でもそれ以下でもない。なのでPerlなどとは立ち位置が違うだけだと思う。/あと、PECL(C言語から学んでる)のことを、たまには みなさん思い出してね。><
  • PHP: preg_replace - Manual

    preg_replace( string|array $pattern, string|array $replacement, string|array $subject, int $limit = -1, int &$count = null ): string|array|null パラメータ pattern 検索を行うパターン。文字列もしくは配列とすることができます。 PCRE 修飾子 も使えます。 replacement 置換を行う文字列もしくは文字列の配列。 この引数が文字列で、pattern 引数が配列の場合、 すべてのパターンがこの文字列に置換されます。 pattern および replacement のいずれもが配列の場合、各 pattern は 対応する replacement に置換されます。 もし、replacement 配列の要素の数が pattern 配列よりも少

    PHP: preg_replace - Manual
    asiamoth
    asiamoth 2008/01/28
    “preg_replace() をコールする前に、各配列に対し ksort() を実行しておくべき”理由をチェック!
  • PHPの方が軽くて速いは本当?

    PerlよりPHPの方が軽くて速いは当? 川合孝典(2002/3/12) 元々メーリングリストにも流してWikiで公開していたものなんですが、Wikiのサイトが停止したこともあり、こちらに移植して編集しました。バージョンが多少古い目のものが多くなっていますが、このベンチを行ったときには、それほど古くないバージョンだったはずなんですけどねぇ。 結論から先にいましょう。私としてはPHPは立ち上がりは速いけどPerlだって負けてないし、処理そのものはPerlのほうが速いよんということだと思っています。ついでに憎まれ口を叩くと「PHPが比較している相手はPerl4なのでは?」と思っています。「CGIとPerlはきちんと区別してね」とか。「JavaPerlよりも比較にならないほど速い?」の計算問題のあたりも合わせてご覧ください。あわせてPerl/DBIの次のステップをご覧いただくと参考になるかも

    asiamoth
    asiamoth 2008/01/22
    タメになる記事。mod_phpとmod_perlを比較しないと意味無いよな。でも、レンタルサーバ者にはキツイ。
  • htmlspecialchars関数を簡単に扱えるようにする

    特殊文字を HTML エンティティに変換してくれるhtmlspecialchars関数。 PHPでは基中の基である関数でありながら、名前の長さやオプションの設定などが面倒で困ったものです。「htmlspecialchars」は覚えられても、オプションの「ENT_QUOTES」まで覚えるのはなかなか大変だったりします。でも、ここで手を抜くと簡単に脆弱なアプリケーションができあがってしまう危険性があります。特にユーザーからの入力には、手軽にがっちり入力保険をかけておくべきです。 そんなわけで、htmlspecialcharsを簡単に扱えるようにする方法を考えてみました。 お知らせ:PHP5.4にて、htmlspecialchars()関数に互換性の問題が出てきましたので、当ページでも第三引数に文字コードを指定するコードに変更しました。以下、第三引数の"UTF-8"の部分は、利用中の文字コー

    htmlspecialchars関数を簡単に扱えるようにする
    asiamoth
    asiamoth 2008/01/13
    おお、二番目の方法がGJ!
  • Perl Tips | PHP で、ディレクトリの中のファイル名を取得する方法

    こんな感じ。 !ereg('(^\.$)|(^\.\.$)', $file) とある行は、カレントディレクトリ(.)と、親ディレクトリを除いて処理するためのもの。 $filename[] の配列中に、ファイル一覧が入る。 <?php $dir_path = 'your_directory'; $filename = array(); $dir = dir($dir_path); while($file = $dir->read()) { if(!ereg('(^\.$)|(^\.\.$)', $file)) { $filename[] = $file; } } $dir->close(); ?>

    asiamoth
    asiamoth 2007/12/27
    Perlみたいに「このモジュールを使うのがベスト」が整っていないPHP。このスクリプトも、穴を探してしまう……。
  • ultra blue:PHP : ITpro の 「再帰関数を使ってみよう」に 対するツッコミ

    asiamoth
    asiamoth 2007/10/13
    再起関数を使わずに、ディレクトリ配下にあるファイルのサイズを算出。
  • 54. 再帰関数を使ってみよう

    再帰関数は、関数の中でその関数自身を呼び出す、ということを行っている関数です。将棋やチェスのようなゲームや、パズルを解くようなプログラムではよく使われ、プログラムをとてもシンプルに、見通しよく記述することができます。今回は、そんな再帰関数をPHPで使った例をご紹介します。 PHPゲームを作る、というようなことはまずないと思うので、使いどころはか なり限られてしまうのですが、それでも便利に使える場面がないわけではありま せん。 ここではディレクトリ内のファイルをチェックし、そのディレクトリ内に含まれ るファイルサイズの合計を求めるプログラムを作ってみます。 ディレクトリに含まれるのが全てファイルなら、再帰関数でなくても大丈夫です が、ディレクトリ内が階層になっている場合は再帰関数が威力を発揮します。 <?php //PHP4の場合、scandir関数がないので実装しておきます。 if (!

    54. 再帰関数を使ってみよう
    asiamoth
    asiamoth 2007/09/30
    再起関数は使いどころが多そう。覚えておこう。
  • 標準コーディング規約

    PEAR 標準コーディング規約は、 PEAR の公式ディストリビューションに含まれるコードに適用されます。 コーディング規約 (Coding standards) は、開発者たちの間ではよく CS と略されます。この規約の狙いは、コードの一貫性を保つことと PEAR の開発者たちがコードを保守しやすくすることにあります。

    asiamoth
    asiamoth 2007/08/21
    PHPのコーディング規則。ベストプラクティスが示されているのはありがたい。
  • 残り一年! PHP4からPHP5への移行:第1回 移行前の基礎知識|gihyo.jp

    2007/7/14にPHP4のメンテナンス終了日がアナウンスされ、通常のメンテナンスが2007/12/31まで、セキュリティフィックスが2008/8/8までと発表されました。連載では、これを踏まえてPHP4.4からPHP5.2への移行について解説します。PHP5には便利な新しい機能が多く追加されていますがここではそれらには触れず、移行についてのみ解説します。PHP4からPHP5に移行する場合に必要のない項目はほとんど解説しません。PHP5の新しい機能についての解説は「はじめてのPHP言語プログラミング入門」(⁠技術評論社)などのPHP5の入門書を参照してください。 特に記述がない場合、PHP4はPHP4.4.x、PHP5はPHP5.2.xを意味します。 PHP4とPHP5の違い PHP4とPHP5は言語仕様が異なる言語ですが、PHP5はPHP4の上位互換言語です。PHP4とPHP5両方で

    残り一年! PHP4からPHP5への移行:第1回 移行前の基礎知識|gihyo.jp
    asiamoth
    asiamoth 2007/08/19
    現在、第三回まであり。しっかりと読もう。
  • 実際に買って読んだPHPの参考書レビュー

    「初めて学ぶWebプログラミング言語は何が良い?」に続いて、実際に買って読んだPHPの参考書のレビューを載せておきます。 読んでいないのレビューをすることはできないので、実際に買って読んだ以下6冊のPHPの参考書のレビューにプラスして、PDFでダウンロードできる、Webマニュアルのレビューを書きました。 PHPについて全く知らない状態から、参考書を買って独学で学んでいった時系列順に沿って書きました。 個人的な意見も含まれていますが、一人のレビュアーが複数のPHPの参考書レビューを載せているページはあまりないと思いますので、少しでも参考にしてもらえれば幸いです。 A.まずはじめに。プログラミング参考書購入について B-1.基礎PHP B-2.PHP5であなたもウェブアプリが作れる! B-3.PHP5格派―PHP5で始めるWebアプリケーション構築ガイド B-4.PEAR入門 B-5.P

    実際に買って読んだPHPの参考書レビュー
    asiamoth
    asiamoth 2007/05/06
    参考になる記事。『PHPによるWebアプリケーションスーパーサンプル 第2版』は第1版を持っているけど、欲しくなった。