タグ

phpとprogrammingに関するtarchanのブックマーク (33)

  • PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ

    この投稿はPHP Advent Calendar 2013の12日目の記事です。 PHP恒例行事の参照と三項演算子のdisりですが、そろそろあさってな議論はやめませんかという話です。 今年のPHP-dis大賞といえばこちら。 PHPとかいう糞言語|いんまのブログ ※ 追記: これ書かれたのは2012年でしたすんません。 なんで君たちそんなコードが必要なのかね、と。結論から先言うと、きみたちがPHPが使えないって思うのは、そんな挙動に左右されるようなコードを書くからでしょ、だからCとかRubyとかそういう簡単な言語でわかった気になっている初心者はまったくもう...というわけでPHPの言語文法の基礎んとこ、いきますね。 まず、PHPのarrayは「値」です。もちろん文字列も「値」です。値は値なんだけど、それはミュータブルです。PHPのarrayもしくは文字列の代入は、一見すると、ポインタを使わ

    PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ
    tarchan
    tarchan 2013/12/12
    >パフォーマンスのために内容破壊のリスクを冒して参照渡しするべき、とか考えてた人は残念でした。その努力には、まったく意味がありません。
  • あなたのコード、激遅ぷんぷん丸?今すぐできる7つのチェック項目 PHP編 | GeNERACE labo

    みなさん、こんにちは。 GeNERACEのピンキリエンジニアこと、ひろゆきです。 ここのところPHPを書いてるんですが、同じ処理を書くとしても、どの関数を使えば良いのか分からないことがありました。 たとえば、繰り返し処理を書くにしてもfor, foreach, whileと3種類もあります。 いったいどれを使えば良いの?(´・ω・`) 分からないなら調べれば良い。 ということで、弊社環境にて処理速度の検証してみました。 (この辺ってググってみても、ソースが古かったりしてたので、あえて調べました) 実行環境: PHP 5.3.3 AWS EC2 m1.small 1.ループ処理を比較 まずは基中の基。 for, foreach, whileのどれを使うべきなのか。 $this->testArray = range(0, 10000000); $x = 0; foreach ($this-

  • nakano_neko, 画像の右側が外注さんに頼んだソースコード。左側が僕が書きなおしたソースコード。...

    画像の右側が外注さんに頼んだソースコード。左側が僕が書きなおしたソースコード。 仕事をお願いしたのに、自分で修正するのって当にバカバカしい。 そういうプログラムにお金を払うって当にバカバカしくて涙がでてくる。 facebookに書いた文章なんだけど、ちょっと加筆して、tumblrに公開してみる。 外注さんを探す時の参考にしてもらえれば幸い。 作業が重なると自分のトコだけで捌けなくなる時が時々あるので、外注さんを増やす努力をしてる。 んで、先日・・・ ネット上で「プログラム組みます」的なセールスをしていた個人に仕事をお願いした。 ただ、最初から雲行きが怪しかった… 屋号を名乗るだけで個人名は開示しない、 こちらの名前は間違えたまま、指摘しても謝罪も無し・・・ ちょっと怪しい臭いはしたんだけど、技術には自信があるようなので簡単な仕事をお願いすることに。 まず、お見積りをお願いする。 お見積

    tarchan
    tarchan 2012/11/02
    時給3000円かー
  • 5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!

    こんにちはこんにちは!! Webプログラミングしてますか! よく「PHPセキュリティがダメ」とか言われてるよね。 でもそれって、べつにPHPが悪いんじゃなくて、 たぶん、セキュリティとかが、まだよくわからない人が多いだけなんじゃないかな。 がんばって勉強しようと思っても、なんだか難しい理屈が並んでいたりするしね…。 なので今日は、セキュリティ対策について、 「これだけやっとけば、わりと安全になるよ」ってことを、初心者むけに、大雑把に書いてみます! 理屈がわからなくても、最初はコピペでも、 なにもやらないより、やったほうがきっとマシになる! 1. XSS対策 動的なものを表示するとき、全部エスケープすればokです! (NG) あなたの名前は <?= $name ?> ですね! ↓ (OK) あなたの名前は <?= htmlspecialchars($name, ENT_QUOTES) ?>

    5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!
    tarchan
    tarchan 2012/03/16
    >header('X-FRAME-OPTIONS: DENY');
  • PHPは◯◯◯である | quipped

    当にPHPについて知りたい人は、別のところに行くことをすすめる。moriyoshiさんのスライドや、Lerdorfオジサンのページなんかがオススメ。 PHPは歯ブラシである PHPの発案者であるRasmus Lerdorf氏はこう言っている。 PHPは歯ブラシくらい興奮に値する。シンプルで、毎日使う便利な道具。だからどうした。歯ブラシについて書物を漁るやつがいるか? PHP is about as exciting as your toothbrush. You use it every day, it does the job, it is a simple tool, so what? Who would want to read about toothbrushes? PHPが他の言語と決定的に違うのは、作者およびコミュニティが、言語に対して道具以上の感情を抱いてないことだ。PHP

    tarchan
    tarchan 2012/02/29
    歯ブラシプレイ先取り!>PHPは歯ブラシくらい興奮に値する。
  • 5分で分かる PHP を知らない人が PHP の便利さを学べる記事を書いたよ

    PHP を知らない人に PHP の話して欲しいと言われたのでブログ書きました。 難しい話は抜きにして PHP <?php と ?> で囲えば動きます。PHP が動くサーバーなら今まで作ってた example.html というファイルの拡張子を example.php とすれば良いだけです。

  • iPadでPHP開発ができるか試してみた

    ついにiPadが日でも発売になりました。早速入手できたので色々と触ってみました。 使ってみた印象としては「大きくなったiPhone」ですね。操作はiPhoneまんまなのですが、A4プロセッサのおかげか軽快に動作します。またソフトキーボードがかなり改良されていて特に日語についてはPCのキーボードっぽく入力できます。 とはいえ、やはりMacBookほど多機能ではないので、立ち位置としては見た目どおりiPhone以上MacBook未満という印象です。 そんなiPadで購入前に気になっていたのが、「iPadで開発ができるか?」という点です。もしこれができるなら MacBookは事務所に置いてまま外出先や家ではiPadでこなせるのではと企んでいました。 そこでiPadPHPが書けるか試してみました。 キーボード ソフトウェアキーボード 冒頭でも触れたとおり、iPad搭載のソフトウェアキーボード

  • パスワード認証

    ウェブ狂の詩 - @takejune web制作に関する覚え書き このブログの公開は終了しました

    パスワード認証
  • PHP基礎文法最速マスター

    PerlRubyの文法一覧がとても良くまとまっていたので、便乗してPHPでもやってみました。 Perl基礎文法最速マスター – Perl入門〜サンプルコードによるPerl入門〜 Route 477 – Ruby基礎文法最速マスター 他の言語をある程度知っている人はこれを読めばPHPの文法を何となく理解できると思います。 間違い、不足等々あれば教えて下さいm(_ _)m バージョン PHP5.3系がリリースされていますが、ここではPHP5.2系を対象としています。 1.基礎 コードブロック PHPコードは「<?php」という開始タグから始まります。終了タグは「?>」です。HTMLPHPコードを埋める際は終了タグを使いますが、ライブラリのようにPHPコードのみを記述する際は終了タグを省くことが慣例となっています。 終了タグを省く理由について id:Kiske さんに解説頂いています。ありが

  • 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のウソと本当(解説) - カタコト日記
  • PHPのあの関数をJavaScriptでやるには?をまとめた「phpjs.org」:phpspot開発日誌

    PHPのあの関数をJavaScriptでやるには?をまとめた「phpjs.org」 2009年12月04日- PHPのあの関数をJavaScriptでやるには?をまとめた「phpjs.org」が便利です。 PHPを使っていて、JavaScript もかいているときに、PHPのあの関数をJavaScript で実装したいんだけどなぁ、という場合に索引から牽けて参考になります。 例えば、functions ページには使える関数がまとまっているのですが、array系、ソート系、入力チェック系やオブジェクト指向系、日付、ファイルシステム系、Math系、ハッシュなど実に多数のJavaScriptphp関数が掲載されています。 例えば、addslashes だと次のような感じでJSのソースが見れます。 function addslashes (str) { return (str+'').repla

  • not found

    tarchan
    tarchan 2009/11/06
    刺さってなかった
  • PHPの「えせプログラミング言語」の弊害 - moriyoshiの日記

    先日のエントリーでも少し触れたが、PHPの最大の問題点は、それが持つ「一見その言語構造がよくあるプログラミング言語の形をとりながら、プログラミング言語の最も大切なところを外している『えせプログラミング言語』である」点にある。Webアプリケーションの開発で注意すべき部分とは何かを根底の部分でちゃんと理解せずにPHPアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「PHPでプログラミング言語を学ぶ」などもっての他だし、「JavaでもPHPと同じようなプログラミング言語を作ってWebアプリの開発を効率化しよう」などという発想もとても危険である。 PHPの発想の根底には、「HTMLテンプレート用言語とロジック記述用言語の統一により、開発コストを減らそう」という CGI 時代の安易な発明がある。PHPは、その前近代的な発想を通じて、テンプレートとロジックを同じファイル

    PHPの「えせプログラミング言語」の弊害 - moriyoshiの日記
  • PHP で引数をそのまま返す関数を作っておくと便利 - IT戦記

    PHP では以下のように new してすぐメソッドを呼べない <?php new DateTime()->getOffset(); なので、引数をそのまま返す関数を作ってやると <?php function expr($a) { return $a; } expr(new DateTime())->getOffset(); // OK! 便利だなー おまけ 配列アクセス用のも作っておくと便利 <?php function expr($a) { return $a; } function idx($array, $i) { return $array[$i]; } echo idx(idx(expr(new DateTimeZone('Asia/Tokyo'))->getTransitions(), 0), 'abbr') . "\n"; おまけ2 無名関数をそのまま呼ぶときにも使える。 <

    PHP で引数をそのまま返す関数を作っておくと便利 - IT戦記
    tarchan
    tarchan 2009/10/06
    PHPの謎い動作
  • PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok

    #釣りっぽいタイトルですが大まじめです via. PHP 逆引きレシピ - 肉とご飯と甘いもの @ sotarok で、 @ (エラー制御演算子といいます!)はねーよ的な話をしましたが、著者の方から、「@に対して批判的になる理由が記載されていない」とのメールをいただきました。確かにその通りでした。実は理由を下書きのときには書いたのですが、長くなってしまったので削ってポストしたのですが、かえってわかりづらくなってしまいましたね.すみません。 ということで、PHPプログラマが、エラー制御演算子「@」使うべきでない 5 つの理由を述べます. 始める前に、質的なところ 色々理由はつけようと、やっぱり前回述べた、 終的に$qに入るものが同じであることと、コードとして同じ意味であるかは、別じゃないでしょうか。 が一番質的な話で、それ以上の話ではありません。 つまり、発生する可能性があるとわかってい

    PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok
    tarchan
    tarchan 2009/08/14
    エラーチェックをはしょったら自分が苦労するよ!って話
  • PHPの閉じタグは心の臓に悪いから使わないで - Unknown::Programming

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

    PHPの閉じタグは心の臓に悪いから使わないで - Unknown::Programming
    tarchan
    tarchan 2009/08/13
    htmlで</li>省略しないと余計な空白入るみたいな問題か
  • PHPの比較の素晴らしさ加減は正常

    if ("0x0A" == "10") { print '(´ε` )チュッ'; } チュッ。されちゃいます。 文字列であっても整数と解釈できる文字列の場合は勝手に型変換しやがる今世紀最大の愚行を犯してしまうってのは有名な話だよね。 文字列であっても整数と解釈できる文字列の場合は自動的に整数に型変換してくれる超便利機能があるってのは有名な話だよね。 だけどなんでコレが一致するかわけがわからんかった。 0x0Aは10進数で10になるので一致する。と、言いたいところなんですがそう単純な話じゃないんだ。 以下の例を目ん玉見開いて見て欲しい。 var_dump(0x0A); var_dump("0x0A"); var_dump((int)"0x0A"); var_dump((float)"0x0A"); var_dump(intval("0x0A")); 実行結果 int(10) string(4

    PHPの比較の素晴らしさ加減は正常
  • var_dump2.0を標榜するデバッグライブラリ·Krumo MOONGIFT

    PHP開発者であれば誰しもがお世話になるであろうvar_dump(またはprint_r)。とりあえず何か問題があったら使ってみる、と言う人も多いはずだ。だがそんな便利なはずのvar_dumpも整形されていないのでブラウザ上では見づらいという欠点がある。 var_dumpをさらに使いやすくしたデバッグ用関数を提供する そのため、var_dumpで出力した後にブラウザのソースで配列の順番を確認する、といった操作はよくあることだろう。だがこれからはKrumoを使ってデバッグを行えば良さそうだ。 今回紹介するオープンソース・ソフトウェアはKrumo、次世代のvar_dump、print_rを目指すデバッグライブラリだ。 Krumoはデバッグ用のライブラリであり、特別な拡張は必要なく利用できる。開発時にはphp.iniにKrumoを設定しておくことが推奨されている。そしてKrumoの関数にデータを見

    var_dump2.0を標榜するデバッグライブラリ·Krumo MOONGIFT
  • PHPアプリケーションからGoogle Calendarを利用しよう(前編)

    連載では、PHP上で動作するアプリケーションフレームワーク「Zend Framework」と、Googleの提供するサービスを扱うための関数の集合体である「Google Data API」との連携について紹介します。今回はGoogle Calendarを利用して簡単な会議室予約システムを作成してみましょう。前回のYouTube検索と違い、Google Dataのクライアント認証が必要となります。 はじめに 連載では、PHP上で動作するアプリケーションフレームワーク「Zend Framework」と、Googleの提供するサービスを扱うための関数の集合体である「Google Data API」との連携について紹介します。Zend FrameworkのZend_Gdataというパッケージを使用することでGoogleカレンダーなどを利用したアプリケーションを開発することができます。 今回はG

    PHPアプリケーションからGoogle Calendarを利用しよう(前編)
  • APIとの通信効率をよくする実装例(2) 簡易キャッシュ

    こうして見ると、仮に5分程度ライムラグがあってもさほど影響が無いものが多い、つまり毎度APIに問い合わせるのが無駄とも言えないでしょうか。(毎度通信すべきはなのは、上の表では「高」の部分のみ)。 そこで、APIから取ってきたデータ(XML)を少しの時間だけとっておくのはどうでしょう?(リアルタイム性が高いものや検索結果については毎度通信し、それ以外のものはキープしておき再利用)アクセスしてきたAさん、Bさん、Cさん・・・誰が見ても同じ内容ならなおさらみんなでシェアできれば、通信の数もそれにかかる時間も減るはずです。 このように一定時間データを溜めて再利用するシステムや行為を、キャッシュ(cache ※1)といいます。 どんな言語でも、こんな流れのロジックが書ければ実現できるでしょう。 if ( とっておいたXMLが賞味期限切れ ) { 捨てる; } if ( とっておいたXMLがある )

    APIとの通信効率をよくする実装例(2) 簡易キャッシュ