正規表現 値を数値のみにする

2014-08-14 21:58:14
電話番号をデータベースに追加する時は、「-」(ハイフン)をなくしたほうが検索の際に使い勝手がよくなる。下記は変数を半角数値のみにするユーザー定義関数で、ついでに全角数字を半角にする処理もしている。 phpStart function numOnly($str){ if($str){ $str = mb_convert_kana(trim($str),'n','utf8'); //全角数字を半角数字に $num = preg_replace("/[^0-9]+/", "", $str); } return $num; } $str = '090-9999-99...続きを見る
カテゴリ: PHP

完全な空チェック ~ 確実な0(ゼロ)判定、null判定をする方法

2014-08-14 21:10:28
phpStart $num = 0; if($num){ 処理されない... } phpEnd 上記の分岐分は処理されないコードの一例。「0」はfalseと判定されるのがPHPの仕様である。 しかし、「0」はtureと判定し、変数が空の場合のみfalseと判定したい時が多々出てくる。 そこで、よく出てくるなら関数化をしておくのがオススメ。 phpStart function karaChk($str){ if(!is_null($str) && $str !== ""){ $flag = true; }else{ $flag = false; ...続きを見る

javascriptの足し算の演算は変数を数値型にしてから

2013-09-05 02:03:03
javascriptの演算子はPHPと扱いが違うようで、変数と変数を以下のように足し算すると、 htmlStart var a = 100 var b = 200 total = a + b; alert(total); //結果 100200 htmlEnd 結果は演算の値ではなく、変数と変数の結合の値が出てしまう。 PHPの変数の結合は「.」ピリオドだが、javascriptは「+」だからこうなってしまうのである。 なので、javascriptで演算する場合は、変数をparseInt関数で数値型にしなければいけない。 htmlStart var a = 100 va...続きを見る
カテゴリ: Javascript

外部サイト(他ドメイン)のファイル存在確認

2013-05-05 00:42:00
画像ファイルがあるかないかを判断して、必要に応じてノーイメージ(now printing)を表示する時などに使用するファイル存在確認の代表的関数file_exists()。 phpStart $path = './log/item/12345.jpg'; if(file_exists($path)){ $img = $path; }else{ $img = '/img/noimage.jpg'; } phpEnd しかし、自サーバーならfile_exists関数でファイルがあるかないかを判断できるが、他ドメイン&他サーバーでは使用できないので、その場合はget_hea...続きを見る

関数の引数(ひきすう)・戻り値(もどりち)について

2012-11-19 22:37:04
引数とは…戻り値とは…と言葉で書いてもパッとしなさそうなので、半角のカタカナを全角のカタカナに変換するmb_convert_kana関数を例として見てみよう。 phpStart $zenkaku = mb_convert_kana($hankaku, "KV"); //$hankaku が第一引数 //KV が第二引数 //$zenkaku が戻り値 phpEnd これで用語の意味は分かるかと思います。自分で関数を作る(ユーザー定義関数)時はこの引数と戻り値のことを理解しておかないと便利なものは作れない。 個人的にフレームワークの使い方を覚えるのが面倒なので、自作関数の...続きを見る

現在のURLやファイル名の取得とリファラーの取得方法

2012-10-24 04:41:53
システムを構築中に今現在のURL(自身のURL)やファイル名を取得したいというケースがちょくちょく出てきます。サーバ環境変数に格納されているので取得は簡単です。 phpStart /* 現在のURLが以下だった場合 http://blog.pinkmonky.net/test.php?id=47&cate=5 */ echo $_SERVER['SERVER_NAME']; echo $_SERVER['REQUEST_URI']; echo $_SERVER['PHP_SELF']; echo $_SERVER["SCRIPT_NAME"]; //表示結果 bl...続きを見る
カテゴリ: PHP

メールアドレスの書式が正しいかチェックする正規表現

2012-10-18 09:59:04
メールアドレスの書式チェックの方法をネットで調べると、preg_match関数を使用した正規表現チェックのコードがいくつか出てくるのだが、どれも同じコードではない為、どれが一番正確なのかはよく分からない。そこで、信用できそうなコードをご紹介。 どうやら、docomoは「da.me..@docomo.ne.jp」といったRF2822非準拠の携帯メールアドレスが取得できるらしいので、docomoのせいでちょっとややこしいようだ。 ↓ドコモのメールアドレスの取得は以下が可能↓ ■ドットで始まる ■ドットが連続する ■@の前がドット あと、こんなメールアドレスも存在するらしい・...続きを見る

内容に日本語が含まれているかを調べる方法

2012-10-18 07:28:35
メールフォームならメールアドレスは見えないのでスパムは届きにくくなるが、最近内容が英語だけのスパムメールが届くようになった。簡単な処置として、内容に日本語が含まれているかを調べて、英語だけの場合は送信しないという分岐を追加することに。 どうやって全角の文字があるかどうか調べるかというと、文字数を数える『strlen関数』と『mb_strlen関数』を使用して、マルチバイトが含まれているかどうかを調べます。 phpStart if(strlen($body) == mb_strlen($body,'utf8')) { //全部英語(全てシングルバイト) }else{ //日本...続きを見る

Javascriptで数値の先頭のゼロを削除する方法

2012-10-07 01:08:18
例えば「01」や「02」など、先頭にゼロがついている数値を「1」という数値に直す場合は、Number関数を使用します。 htmlStart var str = "05"; var num = Number(str); //結果 num == 5 htmlEnd 逆に決まった桁数で先頭にゼロをつけなければいけないケース(ゼロパディング)もよく出くわします。その場合は下記の方法がおそらく最短コード。 htmlStart var num = 5; var str = ('0' + num).slice(-2); //結果 str == '05' htmlEnd s...続きを見る
カテゴリ: Javascript

xampp環境でメールを送信できるようにする設定

2012-09-23 09:11:12
xampp環境の初期状態ではsendmail関数を使用してもメールが送信できません。ということで、メールを送れるように設定してみたものを見てもらいましょう。今回、送信用に使用するメールアドレスはフリーメールではないメアド(master@pinkmonky.net)で設定しました。フリーメールでも大丈夫だと思います。ちなみにこのメアドはさくらインターネットのサーバーで設定しているものです。 ↓このファイルを編集します。失敗してもいいようにコピーをしてバックアップしておきましょう。 C:\xampp\sendmail\sendmail.ini htmlStart //14行目辺り s...続きを見る
カテゴリ: PHP

cookie(クッキー)操作の便利なユーザー定義関数

2012-09-18 15:10:28
フォームやカートなどで重宝するcookie(クッキー)の操作を簡単にする定義関数。クッキーを配列で使用することでシンプルな組み方が実現されてます。この関数があればクッキー操作が格段にラクになるのでオススメです。 phpStart define(_TIME_OUT_,time() + 30 * 86400); //一ヶ月保持 function makeCookie($array,$cookie_name) { foreach ($array as $text => $value) { setcookie($cookie_name."[$text]",$value,_TIME_...続きを見る
カテゴリ: PHP

頻繁に使うシーンがある文字列操作群の関数

2012-08-23 12:29:08
文字列の一部分を取り出すsubstr関数は使用するシーンが多いです。長い文章の最初だけを表示する時や、URLから一部分を切り出す時などなど。 <substr()関数 - 最後の2文字を取り出す> phpStart $str = 'http://sample.jp/cate.php?id=06'; echo substr($str, -2); //結果「06」が出力されます。 phpEnd 第2引数にマイナス値を入れれば最後からの文字が取得できます。先頭から2文字を取得する場合は正数を書けばOK。文字列が日本語の場合はmb_substr()を使用しないとバグが起きます。 ...続きを見る
カテゴリ: PHP

セレクトフォームをPHPで自動生成する

2012-08-18 19:56:38
セレクトフォームはユーザー定義関数を作って要領よく生成しましょう。編集画面の際は$now_dataに現在のデータを代入しておけば、選択された状態になります。 phpStart //47都道府県の配列 $AREA = array('北海道','青森','岩手','宮城','秋田','山形','福島','茨城','栃木','群馬','埼玉','千葉','東京','神奈川','新潟','富山','石川','福井','山梨','長野','岐阜','静岡','愛知','三重','滋賀','京都','大阪','兵庫','奈良','和歌山','鳥取','島根','岡山','広島','山口','徳島',...続きを見る
カテゴリ: PHP

md5関数でパスワードなどを暗号化する

2012-08-16 17:43:57
md5関数に文字列を与えると、その文字に準じた32文字の英数字の文字列(ハッシュ値)を返してくれます。一文字でも違う値を与えれば、全く違う文字列になり、同じ文字列なら毎回同じ文字列が返ります。 <関数の使用例> phpStart echo md5('abcd'); phpEnd <結果> htmlStart e2fc714c4727ee9395f324cd2e7f331f htmlEnd 上記の文字列から元の文字列に戻す方法はありません。一度暗号化してしまうと、暗号化した本人しか答えが分からないのです。セキュリティーを重視するサイトではデータデースにそのままパスワ...続きを見る
カテゴリ: PHP

生年月日から年齢取得

2012-08-16 07:53:01
プロフィールを登録させる際に年齢の項目を設ける場合は、年齢を入力させるのではなく、生年月日を入力してもらうのが基本です。年齢を入力させてしまうと、データ上その人はずーっと同じ年齢のままになってしまうからです。 生年月日から年齢を求めるの方法はいくつかあるみたいですが、一番短いのが以下の計算方式です。 <計算方式> phpStart $birth = 19811007; $age = floor((date('Ymd') - $birth) / 10000); phpEnd 計算方式は「(今日の日付 - 生年月日) ÷ 10000」で求められるみたいです。floor()...続きを見る
カテゴリ: PHP

サイト内のキーワード検索で複合(AND)検索を導入する為のコード

2012-08-04 11:39:29
複合検索は半角スペース区切りのワードに変換して、explode関数で半角スペース区切りで配列に格納し、foreach文でWHEREのSQL文を生成します。foreach文でエラーを出さない為に、ループの前にis_array関数で配列であるかの確認しておきましょう。 htmlStart $q = str_replace(' ',' ',trim($_GET['q'])); //*1 下記説明 $array = explode(' ',$q); if(is_array($array)){ foreach($array as $val){ $str = ($sql)?' AND...続きを見る
カテゴリ: PHP

ファイル名から拡張子を取得する

2012-08-04 08:32:47
拡張子を取得する場合はpathinfo関数を使うのが最短のコードだと思われます。 htmlStart $filename = 'sample.jpg'; $ext = pathinfo($filename, PATHINFO_EXTENSION); htmlEnd ファイルアップ時の際に必要になることが多い技になりますね。 htmlStart $filename = $_FILES['upfile']['name']; $ext = pathinfo($filename, PATHINFO_EXTENSION); htmlEnd ...続きを見る
カテゴリ: PHP