【PHP】指定週と曜日(第n,w曜日)の日付を取得する

指定した週と曜日(第n,w曜日)から日付を取得する関数を作ってみた。

【第n,w曜日から指定日取得関数】

function funcDesignatedDay($n, $w){
	$year_val = date(Y); // 年を取得
	$month_val = date(m); // 月を取得
	
	$arr_week = array("日", "土", "金", "木", "水", "火", "月");
	
	for($i = 0; $i <= count($arr_week)-1; $i++){
		if($w == $arr_week[$i]){
			$w_no = $i;
		}
	}
	
	// 曜日番号を取得(0:日曜日~6:土曜日)
	$week_no = date('w',strtotime("$year_val/$month_val/1"));
	
	$d = (7*$n)+1;
	if((8 - ($week_no + $w_no)) <= 0){
		$day = ($d - ($week_no + $w_no) + 7);
	}else{
		if($w_no == 0 && $week_no == 0){
			$day = ($d - ($week_no + $w_no) - 7);
		}else{
			$day = ($d - ($week_no + $w_no));
		}
	}
	return $day;
}

実際に指定日を取得してみる

【使用例】

<?php
$n = 2; // 第n
$w = "日"; // w曜日

echo funcDesignatedDay($n, $w);


function funcDesignatedDay($n, $w){
	$year_val = date(Y); // 年を取得
	$month_val = date(m); // 月を取得
	
	$arr_week = array("日", "土", "金", "木", "水", "火", "月");
	
	for($i = 0; $i <= count($arr_week)-1; $i++){
		if($w == $arr_week[$i]){
			$w_no = $i;
		}
	}
	
	// 曜日番号を取得(0:日曜日~6:土曜日)
	$week_no = date('w',strtotime("$year_val/$month_val/1"));
	
	$d = (7*$n)+1;
	if((8 - ($week_no + $w_no)) <= 0){
		$day = ($d - ($week_no + $w_no) + 7);
	}else{
		if($w_no == 0 && $week_no == 0){
			$day = ($d - ($week_no + $w_no) - 7);
		}else{
			$day = ($d - ($week_no + $w_no));
		}
	}
	return $day;
}
?>

【実行結果】

(2012.8現在)
12

【PHP】配列の中身を並び替える(反転ソート)

配列の中身を反転(逆順)にソートする関数を作ってみた。

【配列反転用関数】

function funcArrRearrange($arr){
	$c = count($arr)-1;
	for($i = 0; $i <= count($arr)-1; $i++){
		$arr_after[$i] = $arr[$c];
		$c--;
	}
	return $arr_after;
}

実際に配列の中身を反転してみる

【使用例】

<?php
// 配列に値を代入する
$arr_before = array("AKB48","SKE48","NMB48","HKT48");

print_r($arr_before); // 配列の中身を確認(反転前)
echo "<br />";

print_r(funcArrRearrange($arr_before)); // 配列の中身を確認(反転後)

function funcArrRearrange($arr){
	$c = count($arr)-1;
	for($i = 0; $i <= count($arr)-1; $i++){
		$arr_after[$i] = $arr[$c];
		$c--;
	}
	return $arr_after;
}
?>

【実行結果】

Array ( [0] => AKB48 [1] => SKE48 [2] => NMB48 [3] => HKT48 ) 
Array ( [0] => HKT48 [1] => NMB48 [2] => SKE48 [3] => AKB48 ) 

【PHP】Smartyテンプレート内でPHPスクリプトを記述する

Smartyは本来、htmlテンプレートPHPスクリプト分離する事により効率よく作業を進めるという事を目的としている為、
通常、htmlテンプレートにはPHPを書かない設計をします。
しかし、htmlテンプレートにPHPを書いた方が、スムーズなイレギュラーなパターンもあるので、覚書きとして残しておきます。

【記述例】

{php}
	echo "テンプレ内PHP出力テスト";
{/php} 

【出力結果】

テンプレ内PHP出力テスト

【Photoshop】写真やカラー画像を単色カラーに変更する

Photoshopで写真を単色カラーにして、バナーなどの素材に利用したい。

単色カラーに変更手順1

【手順1】

まず、Photoshopで写真などの画像を開いて、メニューバーから、
[イメージ(I)]→[モード(M)]→[グレースケール(G)]の順に選択する。

単色カラーに変更手順2

【手順2】

グレースケール(白黒)に変わったら、さらにメニューバーから、
[イメージ(I)]→[モード(M)]→[ダブルトーン(D)]の順に選択する。

単色カラーに変更手順3

【手順3】

「ダブルトーンオプション」ウィンドウが表示されるので、下図のカラーの部分をクリックする。

単色カラーに変更手順4

【手順4】

表示されたカラーピッカーの中から変更したいカラーを選択する。

単色カラーに変更手順5

完成!!

単色カラーに変更手順6

【正規表現】Dreamweaverで検索・置換する【電話番号編】

【準備】

Dreamweaverで、
①ctrl+Fで「検索および置換」ウィンドウを開く。

②「正規表現を使用」にチェックを入れる。

dw_chikan

【電話番号を検索】

■電話番号の桁数にこだわらない検索

0[\d]+-[\d]+-[\d]

(.*)は限りなく連続した全ての文字が判定されますが
[\w]や[\d]というふうに書くと、
数字だけ、英数字だけといった条件指定が可能になります。

「\w」……下線を含む半角英数字を表します。([A-Za-z0-9_]と同じ)
「\d」……半角数字の0~9を表します。([0-9]と同じ)
「+」……直前の1文字の1回以上の繰り返しを表します。

■電話番号の桁数を固定した検索

\d{3}-\d{4}-\d{4}

「3桁-4桁-4桁」の「数字のみ」検索として絞り込む

「\d」……半角数字の0~9を表します。[0-9] と同じ
「\d{n}」……「\d」(半角数字)がn個続く事を表します。

■電話番号の桁数を指定した検索

\d{2,4}-\d{2,4}-\d{4}

「2~4桁-2~4桁-4桁」の「数字のみ」検索として絞り込む

「\d」……半角数字の0~9を表します。[0-9] と同じ
「\d{n}」……「\d」(半角数字)がn個続く事を表します。
「\d{2,4}」……「\d」(半角数字)が2~4個続く事を表します。

■フリーダイヤル用検索

0120-\d+-\d+