ランダムなパスワードや文字列を生成する方法を6つ紹介します。 1. str_shuffle() を使う 同じ文字が2回出ない 36文字まで生成可能 <?php function random($length = 8) { return substr(str_shuffle('1234567890abcdefghijklmnopqrstuvwxyz'), 0, $length); }
ランダムなパスワードや文字列を生成する方法を6つ紹介します。 1. str_shuffle() を使う 同じ文字が2回出ない 36文字まで生成可能 <?php function random($length = 8) { return substr(str_shuffle('1234567890abcdefghijklmnopqrstuvwxyz'), 0, $length); }
sprintfとprintfとnumber_formatがある。 いずれも指定した小数点以下で四捨五入して出力する。 sprintfとprintfの違いは、sprintfはフォーマットされた値が戻り値。printfはフォーマットされた値を標準出力する。 画面に表示する場合はどちらを使っても同じ。変数に入れたい場合は、sprintfを使うと良い。 $num1 = 10; $num2 = 1000.5; $num3 = 0.456789; echo sprintf('%.2f',$num1),PHP_EOL; echo sprintf('%.2f',$num2),PHP_EOL; echo sprintf('%.2f',$num3),PHP_EOL; /* 10.00 1000.50 0.46 */ printf('%.2f',$num1);echo PHP_EOL; printf('%.2f
fukasawaです。こんにちは。 先日、風呂掃除の最中に身体を捻ってしまい、背骨を\コキャッ/とやってしまったのですが、救急車を呼んでいいかどうかの判断がつかずとても困りました。結局、ただのぎっくり背中だったので翌日病院に行った後寝込んで治したのですが、突然動けなくなるとどうしたらよいかわからなくなりますね。 さて、CakePHPにはFolder API、File APIというものがあります。ディレクトリやファイルを操作する為のユーティリティなのですが、ディレクトリ・ファイルの生成・削除・コピー等の操作を行ったり、ファイル名の一覧やファイルの情報を取得したりといった機能が用意されています。使ったことが無かったのですが、気になったので簡単に使い方について調べてみました。 Folder & File — CakePHP Cookbook 2.x ドキュメント ※Folder & File A
PHPのarray_splice()関数は、配列操作関数の万能選手。単独で様々な操作が可能です。しかし反面、オプションが多くて挙動が分かりにくい。そこで、基本事項を整理しておきます。 まずは引数と戻り値について。 array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement ]] ) $inputを参照渡しして、$offsetの位置をスタート地点とし、$lengthぶん進んだ位置までを切り取ります。置換対象の指定があれば、切り取った後で置換対象を挿入します。array_splice()は切り取られた配列を返します。 次に、最もシンプルな使い方。 $data = range(1, 9); // 1から9までを含む配列を生成 array_splice($data, 2); pr
foreach内でオブジェクトに配列を代入しようとしたら Notice: Indirect modification of overloaded property Foo::$bar has no effect という初めて見たエラーが出たので調べてみた。 どういう状況で起きたかというと、コメントリストをforeachで回してそのコメントがユーザーidと一緒だったらそのユーザーのcomment_listっていうプロパティ(配列)にそのコメントを入れますよっていう感じのソース。 foreach ($comments as $comment) { if ($user->user_id === $comment->user_id) { $user->comment_list[] = $comment; } } で以下の記事を見つけてなるほどってなった。 blog.ISHINAO.net | PH
追記(2015/2/8) コメントで指摘があった以下の部分を修正しました。 記事内の表記を「空文字」から「空文字列」へと修正、統一。 「除外するキーワードを指定する。」のタイトルを「削除するキーワードを指定する。」に変更。 「削除するキーワードを指定する。」のコードを適切なものに修正。 「除外するキーワードを指定する。(追記)」の項目を追加。 「除外するキーワードを複数指定する。」のコードを適切なものに修正。 具体的な修正部分については変更履歴をご覧ください。 配列から空文字列を削除したい。 PHPの配列で空文字列を削除したい場合、下記のコードでできます。 $array = array('hoge', 100, '', '0', 0); $array = array_filter($array); # $array = ['hoge', 100];
例えば送り元(from)が test@example.com で、CCが foo@example.com だったとすると第4引数に渡す値は次のようになります。 $header="From: test@example.com"; $header.="\n"; $header.="Cc: foo@example.com"; 同じようにBCCを指定するには、 $header="From: test@example.com"; $header.="\n"; $header.="Bcc: foo@example.com"; CCとBCCを同時に指定するには、 $header="From: test@example.com"; $header.="\n"; $header.="Cc: hoge@example.com"; $header.="\n"; $header.="Bcc: foo@exampl
さて話すことないので、 お互い(?)のためにもさっさと終わらせましょう。 注意深く使用すればPHPスクリプトからシェルを叩くというのはとても強力です。 Apacheモジュールで起動したPHPスクリプトから叩ければなお可能性は広がります。 もちろんセキュリティに関しては要注意で、 変数をコマンドに挿入することは極力避けて、実行コマンドは静的にすべきですが。 より強力な活用をするために、sudo権限というか、 apacheユーザに結構強めの権限を与えるシーンも出てくると思います。 これはとても躊躇することですが、 本当に限定的に使うのであればやってみたいものです。 ということで、その手順を。 超簡単ですが。 sudo visudo これで、 apache-user-name ALL=(ALL) NOPASSWD: /hoge/hoge.sh こんな感じのテキストを挿入するだけ。 もうちょい詳し
備忘録として小ネタです。日時といったらよく yyyy-mm-dd hh:mm:ss の文字列として表現されますが、例えば今日の日付も「08日」と表記されるか「8日」と表記されるかでは機械的には別に解釈されてしまいます。csvファイルをExcelで開いて日時を記載する欄に日付を書くと、頭の0はなくなり「8日」に整形されます。 厳密に評価してddの形ではないのでダメとしてもいいのですが、セルの設定まで変えてyyyy-mm-dd hh:mm:ssの形に記載させるのは不毛な気がしてます。そこでいい方法はないか。妥当性を調べる意味でも「yyyy-mm-dd」と「hh:mm:ss」を分けて前者は「-」で文字列を分割して、checkdate()を使い後者は正規表現等で評価する等よく見かけますが、とりあえず文字列をそのままDateTime型に当てはめてみる方法で調べることができたりします。PHP.netの
はじめに どうも、最初にみたforeachの便利さに触れて以降、なかなかそれから離れる事ができないforeachおじさんです。 Shin x blogさんのblog http://www.1x1.jp/blog/2014/06/how-to-scan-array-in-php.html にて、いろいろとモダンな感じのarrayの処理方法を紹介されていたのでベンチをとってみました。 やりたい(かった)こと 対象の配列が巨大な場合と、小さい場合それぞれにおけるベンチマークをとりたい ただし、あまり高速過ぎるとよくわからない結果になるので、配列が小さい場合にはループ回数を増やして最終的な配列の処理レコード数を同じにする composer使ってゴニョゴニョの練習 しかしながら、Laravel(Illuminate\Supportパッケージ)のインストールができなかったのでこちらに関してはSkip
PHPで改行を削除する方法を紹介します。 PHPビギナーの方向けの内容です。 1.問題点 次のような改行つきのテキスト(ヒアドキュメント)を想定します。 <?php $text = <<<EOT aaa bbb ccc ddd eee EOT; ?> この文字列から改行を削除して、$textの内容を aaabbbcccdddeee としたいのですが、改行を削除する方法が分かりません。 2.str_replaceで改行を削除する str_replaceは検索文字列に一致したすべての文字列を置換する関数です。ネットで調べたところ、3項のpreg_replaceよりこちらが多数派でした。 str_replaceで改行(CR+LF)を削除するには、第1パラメータにCR+LFを示す「\r\n」を記述し、第2パラメータに空の文字列を設定します。これで返却される文字列の改行コードがすべて削除されます。
正規表現を使わない場合 strpos,strstr,preg_matchではstrposが最も早いのでstrposを使う。 PHPマニュアルにもそのように書いてある。 strstr もし特定の haystack に needle があるかどうかを調べるだけの場合、 より高速でメモリ消費も少ない strpos() を代わりに使用してください。 strposは、該当する文字列が見つからなかった場合は、falseを返す。 該当する文字列が見つかった位置を数値で返すので(※1)、型までチェックする必要がある。そのため、===falseもしくは!==falseを使うこと。 ※1例えば、strpos('abcd','ab')は0を返す。 if(strpos($subject,'bc') !== false){ //'abcd'のなかに'bc'が含まれている場合 } if(strpos($subject
For full functionality of this site it is necessary to enable JavaScript. Here are the instructions how to enable JavaScript in your web browser.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く