タグ

*tipsとPHPに関するsatoshieのブックマーク (31)

  • PHPでStartsWith/EndsWith - Qiita

    function endsWith($haystack, $needle) { return (strlen($haystack) > strlen($needle)) ? (substr($haystack, -strlen($needle)) == $needle) : false; } 我ながらなんて分かりづらい書き方しているんだ…とちょっと暗い気持ちになりました…。 needleよりもhaystackの方が文字数が大きければ、haystackの後ろからneedleの文字数分抜き出して文字列の比較をし、一致すればTRUE、それ以外はFALSE ※個人で使っている関数はstrlenをmb_strlenにしてマルチバイトにも対応するようにしています。 ですが、自分の環境でmb_strlenをstrlenにしてもちゃんと動く模様…。 ※追記 2016/03/02 UTF8で文字を扱う環境で

    PHPでStartsWith/EndsWith - Qiita
  • [PHP]メソッドの呼び出し元関数名を取得する

    function showCallerFunc() { $dbg = debug_backtrace(); echo( $dbg[1]['function'] ); } メソッド内で、呼び元が誰かを知る必要は通常ありませんが、デバッグやログ出力目的には便利です。 また、debug_backtrace()メソッドでは、function以外に以下の情報も取得できます。 function string 関数名。 line integer 行番号。 file string ファイル名。 class string クラス名。 object object オブジェクト。 type string コール方式。 メソッド呼び出しの場合は "->"、 静的なメソッド呼び出しの場合は "::" が返されます。 関数呼び出しの場合は何も返されません。 args array 関数の内部の場合、関数の引数のリストと

    [PHP]メソッドの呼び出し元関数名を取得する
  • 『PHP / abstractのエラー』

    クラスメソッドをabstractにしようと思いまして、abstractをつけて関数定義したところ、以下のようなエラー。 Class SampleClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods エラーの原因がわからず、30分も調べてしまいました。 原因はclassの定義で来なら「abstract class SampleClass」 としなくてはいけないところを 「class SampleClass」と定義していたことでした。 エラーメッセージからでは気づきにくいことでした・・・

    『PHP / abstractのエラー』
  • コマンドラインの引数解析を簡単に! : アシアルブログ

    皆さんはPHPでコマンドラインスクリプトを作成するとき、引数の解析はどうされてますか? 引数が単純であればargvをそのまま使うだけで十分ですが、オプションが多かったりすると結構面倒ですよね。 たまたまPHPプロ!Weekly PEAR リリース @ 08/08/05号でConsole_CommandLineという引数を解析するライブラリを見つけて使ってみたところ、なかなか便利だったのでご紹介したいと思います。 ちなみに、オプションの解析には、PHP標準のgetopt関数を使えば多少楽はできるのですが、 getopt.php

    コマンドラインの引数解析を簡単に! : アシアルブログ
  • 配列か連想配列かを判別する - Unknown::Programming

    PHPにおいて、ある配列が連想配列として使われているのかどうかを判別したい場合どうすればいいのか。 色々調べてたらこんな記事を発見しました。 <?php function is_hash(&$array) { return array_keys($array) !== range(0, count($array) - 1); } テレパス・ラボ : 連想配列 判定関数(is_hash) なるほど。 array_keysで配列のキー一覧を取得し、そのキー一覧が0からの連番になっているかどうかを比較すれば、対象の配列が配列なのか連想配列なのかを判別できるという理屈ですね。 確かにこれで判別ができそうです。 ですがひとつだけ気になる部分があって、array_keysやrangeを使って一時的な配列を確保しているのは無駄が多いのではないかと。 対象となる配列が大きければ大きいほどメモリ効率が悪くな

    配列か連想配列かを判別する - Unknown::Programming
  • PHPでユーザーにファイルをダウンロード「させる」方法 - 動かざることバグの如し

    最近でPDFとか動画もブラウザ内で表示されるのでファイルとして保存されることは少なくなったけど、 あえて任意のファイルをダウンロードさせたい場合はPHPで実現できる <?php //パス $fpath = './a.jpg'; //ファイル名 $fname = '画像名.jpg'; header('Content-Type: application/force-download'); header('Content-Length: '.filesize($fpath)); header('Content-disposition: attachment; filename="'.$fname.'"'); readfile($fpath); こうして例えばdownload.phpとかにしておくと、download.phpにアクセスするとa.jpgが「画像名.jpg」というファイル名でダウンロー

    PHPでユーザーにファイルをダウンロード「させる」方法 - 動かざることバグの如し
  • file_get_contentsでPOSTデータ送信 - 覇王色を求めて

    日からPHPのメモを記述して行こうと思います。 さて早速今日のネタ。 ぎじゅっやさんにてfile_get_contentsでWebページへアクセスする際に、UserAgentを変更する方法が紹介されています。 では、これを応用してfile_get_contentsを使ってPOST形式でデータを送信してみましょう。 参考コード <?php //POSTデータ $data = array( "param1" => "data1", "param2" => "data2" ); $data = http_build_query($data, "", "&"); //header $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ".strlen($data) ); $cont

    file_get_contentsでPOSTデータ送信 - 覇王色を求めて
  • theta.ne.jp

    This domain may be for sale!

  • PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok

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

    PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok
  • ウノウラボ Unoh Labs: PHP最適化tipsまとめサイト

    こんにちは。親知らずを抜いて離乳三昧のyukiです。GWの暴飲暴から脱し、ダイエットするには好都合ですね。すいません。負け惜しみです。 さて、今回は「PHPのちょっとしたコツ」の続きネタで、PHP最適化Tipsまとめサイトの紹介です。 これらは既に有名なサイトで紹介されていたり、常識の範囲かもしれませんが、ひとつでも有用に感じていただければ幸いです。 そして英語が極端に苦手なため、意訳突っ込み等あれば宜しくお願い致します。 PHPの最適化 12 PHP Optimization tips (元ネタはこちらでしょうか? http://www.ilia.ws/files/zend_performance.pdf) staticが使えるなら、staticを使う。速度は4倍になる。 __get, __set, __autoload は避ける。 require_once() はコストがかか

  • [PHPプロ!] GDライブラリで棒チャートを作成するチュートリアル:CodeZine

    Good PHP Tutorialsにて、PHPとGDライブラリを使って棒チャートを作成する方法が紹介されています。グラフ作成ライブラリを使わず、GDのみで一から棒チャートを作る方法を、細かく分けて説明しています。 以下のソースコードを7つの項目に分けて細かく解説されています。 phpファイルを準備する データの値をセットする キャンバス(グラフの枠)を描画 グリッドと、軸のラベルを描画する 棒グラフを描画する チャートのラベルを描画する チャートを出力する <?php //データをセットする $graphTitle = "Favorite Reptile"; $xLabel = "Reptile"; $yLabel = "Votes"; $data['Alligator'] = 12; $data['Crocodile'] = 15; $dat