タグ

PHPとTipsに関するattokuのブックマーク (29)

  • PHPで画像に使用するユニークな名前を用意する - いがにんのぼやき

    画像に一意な名前を付けたいと思って、PHPのダミーデータ作成ライブラリのFakerを参考にしてみた。 github.com // Generate a random filename. Use the server address so that a file // generated at the same time on a different server won't have a collision. $name = md5(uniqid(empty($_SERVER['SERVER_ADDR']) ? '' : $_SERVER['SERVER_ADDR'], true)); 上記はFakerでのダミー画像作成時のファイル名の生成コード。 手順としては下記である。 $_SERVER['SERVER_ADDR']でサーバーのIPを取得 それを先頭文字としてuniqid()で一意な文

    PHPで画像に使用するユニークな名前を用意する - いがにんのぼやき
  • phpでバイナリ . テキストファイルの判定 - 暁

    拡張子での判定は、除外対象のメンテが必要になったりするので今回はボツです。 最良の方法か分かりませんが、ファイル内にnull文字が含まれる場合にバイナリファイルとして判定するようにしました。 <?php $result = preg_match('#\0#', file_get_contents($file)); if ($result === 1) { echo 'binary'; } elseif ($result === 0) { echo 'text'; } より良い方法がありましたらご教授ください m(_ _)m 2014-04-06 追記 はてブでコメントいただいた方法を試しました。 NULLバイトを含むかの判定だけなので strpos で事足りる。 対象ファイルのサイズが大きいと色々と困るので stream を使う。 <?php function is_binary($fil

    phpでバイナリ . テキストファイルの判定 - 暁
  • PHPのPOSTパラメータ数の上限トラップ - Qiita

    PHPでウェブなことしてると $_POST を空気のように使っていますが、この子は時として牙を剥きます。 POSTパラメータ数には上限値がある 人間が入力する程度のフォームならば普段は気にならないんですが、常軌を逸するような数のhiddenが搭載されたフォームだったり、APIやスクリプトやなんかでcurl等使って直接POSTリクエストを発生させるようなものがあったりすると、人知の及ばぬ大量のパラメータが飛び交うことになります。 このとき、運悪くPHP先生の限界を超えてしまうと上限数以降がカットされるという事態になり、それはそれは残念な結果になることもあります。ていうかなりました。 いちおう、カットが発生した場合はE_WARNINGが発生しますので、ちゃんとエラーレベル引き上げておきましょう。 こんなエラー。 PHP Warning: Unknown: Input variables exc

    PHPのPOSTパラメータ数の上限トラップ - Qiita
  • 【PHP】知っていると楽!wordwrapで簡単に文字列の指定箇所に文字を挿入しよう!

    開発している中で先日出会った、あまり知られてなさそうだけど便利なPHP関数を紹介したいと思います。 私自身PHP歴が1年も無いのでそんなのみんな知ってるよ、と思われてしまうかも知れませんが気にせず書いちゃいます。 「知ってても怒らないで〜」 プログラミングやWordPressを習得するのに一番近道な方法とは? wordwrap — 文字列の指定箇所に文字を挿入できる 詳しい解説はマニュアルを見て頂ければと思いますが、このwordwrapはsubstrで文字列を区切って新たに文字列を結合してごちゃごちゃする時や、ある一定の文字数で改行を入れたい時などに重宝する関数です。 この関数は基的に文章を分割するという想定なので、単語を途中で分割して良いのかどうかを4つ目の引数で選択出来るのです。 単語かどうかの判定はスペースで区切られていると単語と判定しています。 trueにすると単語が途中でも分割

    【PHP】知っていると楽!wordwrapで簡単に文字列の指定箇所に文字を挿入しよう!
  • PHPでログをファイルに書き出すのはerror_log()が便利

    だいたいのレンタルサーバではPHPが使えます。 ワードプレスもPHPで作られていますね。 htmlに埋め込んでつかうこともできてPHPは便利ですよ。htmlの中にPHPで書かれたプログラムを埋め込むことによって、お客様が訪れるたびに違うページを表示させることができたり、人によって表示内容を変えたりということが簡単にできます。 さて、この記事では、PHPで簡単にログをファイルに保存する方法を解説します。ログ(アクセスやプログラムの動作などの記録)をファイルに残すことにより、ちゃんとプログラムが動いているかとか、どんなアクセスをされているかを確認することができます。 PHPで簡単にログをファイルに書き出す方法 簡単にログを残すには、error_log()という関数を使います。ウェブサイトは同時にアクセスされることがあり、そういった同時アクセスで問題が起きないようにファイルに記録するのは大変なの

    PHPでログをファイルに書き出すのはerror_log()が便利
  • PHPでpreg_match関数、URLの比較してUnknown modifier '/' inエラーが出てしまう時の原因と対処法 |

    PHPでpreg_match関数、URLの比較してUnknown modifier ‘/’ inエラーが出てしまう時の原因と対処法 WordPress関連ですが、PHPでpreg_match関数、URLの比較して Warning: preg_match() [function.preg-match]: Unknown modifier ‘/’ in と出てしまって、単純にもかかわらずコードが動かなくなってしまった時の原因と対処法です。 実際に問題の起きたコード 実際に問題の起きたコードは下記のコードです。 // サイトのURL $site_url = 'https://www.1ft-seabass.jp/'; // 現在のURL 実際は動的に取得する $current_url = 'https://www.1ft-seabass.jp/memo/'; // preg_match echo

    PHPでpreg_match関数、URLの比較してUnknown modifier '/' inエラーが出てしまう時の原因と対処法 |
  • 【PHP】【CakePHP】CSVダウンロード - Qiita

    ダウンロードためにCSVを作る場合、implode()などを使って、変数上でCSVを作成する方法では、値内のダブルコートや改行のエスケープが面倒なためfputcsv()を使うと良い。 参考:PHPCSVを生成する 現実的な方法として、一旦メモリ上にCSVを作成してから出力する方法とCSV形式を都度出力する方法がある。 一旦メモリ上にCSVを作成してから出力 都度で出力に比べ一旦作ることで、Content-lengthを出力することができるので、ブラウザの「ダウンロード残り時間」を表示できる。 一旦ファイルにCSVを作成してからreadfileで出力する方法は、ディスクIOが大きくパフォーマンスに問題があるので、一旦作るならメモリ上に作成するのが良い。 PHPでの書きかた //メモリ上に領域確保 $fp = fopen('php://temp/maxmemory:'.(5*1024*102

    【PHP】【CakePHP】CSVダウンロード - Qiita
  • PHP5 の fgetcsv() で読み込み内容が腐る現象 » blog.plastik.jp

    こんどは、PHP5.1.2 の fgetcsv() ではまった… fgetcsv() で読み込もうとする csv ファイルの文字コードと、PHP の内部文字エンコーディングが違う場合、fgetcsv() で読み込むと、どうしても文字が腐る … (PHP4 時代[少なくとも 4.3 系統は]は、問題なかった) 【以下みたいな場合】 CSV: Shift_JIS (WindowsExcel で作成されることを想定するとこれ) PHP内部コード: UTF-8 (最近は自分プロジェクトはこれで統一している) で、試しに、CSV のエンコードを UTF-8 にして試すと、うまくいんだよなぁ。 色々調べると、PHP5 からどうやらロケール? に左右されるらしい… (参照URL: PHP-devML) ただ、上記 ML のスレッドでも解決方法(いや解決してないようだが)を試しても、やっぱりダメ。

  • [php] date()とstrtotime()で日時を取得する | きほんのき

    phpで相対的な日時を得る方法のメモ。昨日明日、先月来月、次の日曜前の日曜、3分前、10分後など、現在日時を起点にしたあらゆるパターンの日時が得られる。 strtotime()はUnixタイムスタンプを返す組み込み関数。日時の文字列を渡すとそれに応じたUNIXタイムスタンプを返してくれる。 strtotime( "1999-12-31 23:59:59" );//946652399 で、strtotime()は日時以外に、様々な相対日時を指定可能になっている。strtotime( "yesterday" )とやると前日の午前0時0分0秒のUNIXタイムスタンプが返ってくる。これをdate()関数と組み合わせて使うことで、相対日時を簡単に取得することができる。 date( "Y-m-d H:i:s" , strtotime( "yesterday" ) );//ex 2011-10-27 0

  • [PHP] 多次元配列の複数条件ソート array_multisortの使い方 | 東京のホームページ制作 / WEB制作会社 BRISK

    PHPで多次元配列を扱うときに、複数条件でソートしたいときがあります。 MYSQLなどではよく行うことですが、Aの列で降順にしてかつBの列で昇順にしたい!!という場合です。 こういうときに便利なのが array_multisortという関数です。 使い方がちょっと特殊なので例を挙げて説明します。 以下のような2次元配列を、年・月・日でソートしたい場合を考えます。 $array_data = array( array( "year" => "2014", "month" => "04", "day" => "24", "place" => "徳島" ), array( "year" => "2014", "month" => "4" , "day" => "23", "place" => "香川" ), array( "year" => "2014", "month" => "04", "d

    [PHP] 多次元配列の複数条件ソート array_multisortの使い方 | 東京のホームページ制作 / WEB制作会社 BRISK
  • PHPのstrtotime関数で +1 month するときの注意 - 働かないプログラマのメモ帳

    PHPのstrtotime関数で来月、再来月のmonthを取得してたらハマったのでメモ。実際ハマったのは+2 monthの時だけど、月によっては+1 monthでハマれると思う。 今日(2012/07/31)の時点で以下のコードを実行すると '2012-10' と表示されます。当は '2012-09' であって欲しかった・・・。 <?php // 今日から2ヶ月後のtimestampが欲しいよー $timestamp = strtotime('+2 month', date()); $yyyymm = date('Y-m', $timestamp); var_dump($yyyymm); 解決策は以下。 '2012-07-01+2 month' になるようにすればいいらしい。 <?php $timestamp = strtotime(date('Y-m-01').'+2 month');

    PHPのstrtotime関数で +1 month するときの注意 - 働かないプログラマのメモ帳
  • phpで処理の進捗状況の表示を実装する - railtownの日記

    ウェブサイトで処理時間の長い処理を行う際 - 処理開始 処理1完了 処理2完了 処理3完了 処理4完了 処理完了 - ↑これを、処理が完了した順に1行ずつ表示するのをphpで実装する方法です。 うまく使えばプログレスバーみたいなのも作れます。 結論から言うと、flush()を使えば比較的簡単に実装可能です。 今回いろいろ調べたので参考になったサイトをまとめておきました。 http://d.hatena.ne.jp/shimooka/20070426/1177571621 http://ml.php.gr.jp/pipermail/php-users/2003-October/018664.html http://www.bumblebury.com/function.ob-get-flush.html http://www.comachi.com/2007/10/php_3.html

    phpで処理の進捗状況の表示を実装する - railtownの日記
  • 社長ブログ アーカイブ | エンブリッジ株式会社 | Enbridge co. ltd.

    社長ブログ 社長ブログ 日のマスコミの罪と日人の情報力 マスコミによるプロパガンダ。。。 国民への洗脳報道の姿勢。。。   それを、自分自身で調べ Read More » 2016年8月3日 社長ブログ なぜ!? 中国なの??? エンブリッジはアジアへの事業展開を お客さまに呼びかけています。 わたしたちの提案テーマは &nbs Read More » 2016年7月28日 社長ブログ タルムードとユダヤ人との想い出 もう少しタルムードを読み解きます。 多くの天才や優秀な起業家を輩出し続ける ユダヤの人々の諺はとても Read More » 2016年5月8日 社長ブログ タルムード 「 自分の思考に注意すること。 」 この言葉には、 あるで出会いドキッとしたのを覚えています。 & Read More » 2016年5月4日 社長ブログ ピラミッドとエジプト文明5000年の嘘 つい先

  • strposで文字列が含まれるかどうかチェックする際には演算子に注意! (===true もしくは !==falseを使う)

    PHPである文字列の中に、ある文字列が含まれるかどうかを検索するには、いくつか方法があります。 preg_match strstr strpos これらの関数のどれを使っても目的は果たせるんですが、単純に文字列のチェックをするだけなら、処理時間順に比較すると preg_match>strstr>strpos となります。preg_matchを使うのはパフォーマンスの観点から避けるべきですね。 PHPのマニュアルサイトにも ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。 PHP: preg_match – Manual” とあります。

    strposで文字列が含まれるかどうかチェックする際には演算子に注意! (===true もしくは !==falseを使う)
  • 楽に検証!値をチェックしてくれるfilter関数

    今回はバリデート関数をご紹介します。 いままではフォームの値をチェックするときってだいたいpreg_match関数などでチェックしていたのですが検証専用の関数がありました。 filter関数です。pregでチェックしなくても検証してくれるので楽です。 emailとかの精度になるとどこまで許容するかが問題になるのですが、携帯アドレスのようにアカウントにドットが複数つくとエラーになります。 各フィルターは実際に試したほうがよさそうですね。どれをスルーしてどれを止めるか。デモページで確認してみてください。 スポンサーリンク filter_var関数 バリデート関係や除去関係の関数が含まれています。それぞれの関数を見ていきましょう。下記はマニュアルに例を付け足したものです。 true/falseチェック filter_var(チェックしたい値, FILTER_VALIDATE_BOOLEAN, オ

    楽に検証!値をチェックしてくれるfilter関数
  • すごいリロード対策 - p4lifeのメモ

    メモ, PHPPHP TIPS】 58. すごいリロード対策紹介されているのはシンプルなワンタイムトークン.単純なリロード対策であれば ticket の値は乱数でなくても良い.ここを乱数にすることで CSRF 対策も兼ねている.ただこの方法は,場合によってはフォームを正常に送信できなくなってしまう問題がある. 例えば,入力画面→入力確認画面と遷移してから別のウィンドウで入力画面→入力確認画面と遷移すると,前の入力確認画面のフォームは ticket が無効になり,フォームを送信できなくなる(複数画面同時編集ができない). 解決策としては,発行したトークンを全て記憶しておき,POST されたトークンと照合する方法がある. confirm.php session_start(); $token = sha1(uniqid(mt_rand(), true)); // トークンをセッションに追加す

  • Webform:入力フォームの確認画面 | TAKASHI TERADA

    コンテンツ作成画面でPHPコーディングする為には、モジュール管理画面から[コア・任意]欄の[PHP filter] を有効にして、入力書式に[PHP code]を追加します。 ※ [コア・任意]はDrupal体インストール時に同胞されているモジュールなので、インストールは不要です。

  • 【Excel】色一覧

    Excelにおいて標準で選択できる色のColorIndex・色名と、16進表記・HTMLカラーネームの一覧です。

    【Excel】色一覧
  • Infinite recursion on save after duplicating style from cell X (e.g. A1) to the same cell (A1) by adamziel · Pull Request #251 · PHPOffice/PHPExcel

  • PHPExcel_Style_Fill infinite recursion