php:phpでhttpsへリダイレクトする

前回は.htaccesshttpsのページへリダイレクトする方法を書きましたが、今回はphphttpsのページへリダイレクトする方法をメモします。

httpsのページが数ページ程度であれば、phpのファイルでリダイレクト処理をしてもいいかもしれないです。
その時の状況で使い分けるといいかもしれませんね。

phpでも処理内容は同じなのでhttpsではない場合に、header()関数を利用してリダイレクトします。


phpでhttpsへリダイレクト

phpファイルの先頭に下記の内容を記述します。

if (empty($_SERVER['HTTPS'])) {
	header("Location: https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
	exit();
}

$_SERVER[‘HTTPS’]が空の場合、アクセスしたURLをhttpsのページへとリダイレクトします。
httpsでアクセスした場合は上記のif文に入らないので、それ以降の処理を実行します。


php:phpで301リダイレクトする方法

WEBサイトドメインを変更した場合など、前のドメインにアクセスした際に新しいドメインに転送したい場合があります。
その場合は301リダイレクトし、現在のサイトにリダイレクトします。

301リダイレクトは永久的にサイトの引越しをする場合に使用します。
検索エンジンに引越ししたことを伝えるのでSEOを考慮してリダイレクトをすることができます。

.htaccessでリダイレクトする方法もありますが、今回はphp301リダイレクトする方法をメモします。


phpで301リダイレクト

リダイレクト元のページの先頭に下記のソースを記述します。
Locationにリダイレクト先のURLを書きます。

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://raining.bear-life.com/");
exit();
?>

前のドメインにアクセスすると、指定したURLにリダイレクトされます。
ページごとにリダイレクトを指定したい場合などはいいと思います。


php:文字列の先頭・末尾の文字を指定文字で削除する

php文字列先頭や末尾の文字を削除したい場合があります。

ltrim()とrtrim()を使用すれば、指定した文字で削除することができます。
また、ltrim()とrtrim()は削除文字を指定しない場合、先頭や末尾の空白を削除します。

phpltrim()rtrim()を使用し、文字列先頭末尾の文字を指定文字で指定して削除する方法をメモします。


ltrim()を使用し、先頭の文字を削除する

・先頭の空白を削除する場合
※全角の空白は削除されません。

php

$str = '   abcdefg';
$str = ltrim($str);
var_dump($str);

出力結果

string(7) "abcdefg"

・削除文字を指定し、先頭の文字を削除する場合

php

$str = 'abcdefg';
$str = ltrim($str, 'abc');
var_dump($str);

出力結果

string(4) "defg"

rtrim()を使用し、末尾の文字を削除する

・末尾の空白を削除する場合
※全角の空白は削除されません。

php

$str = 'abcdefg   ';
$str = rtrim($str);
var_dump($str);

出力結果

string(7) "abcdefg"

・削除文字を指定し、末尾の文字を削除する場合

php

$str = 'abcdefg';
$str = rtrim($str, 'efg');
var_dump($str);

出力結果

string(4) "abcd"

php:phpで時間帯によって表示内容を変更する

WEBサイトを作成していると時間帯によって表示の仕方を変えたい場合があります。

phpでは時間を指定して、朝と夜でサイトのイメージを変えたり、
表示している文言を変更したりすることが可能です。
※サーバ内の時間を参照しているので、そこは注意が必要です。


phpで時間を指定して表示内容を変える

下記は6時~18時、18時~6時で表示する内容を
変更して出力する場合です。

date()関数で現在の時間のみを取得します。
date(‘H’)で取得すると00~23の値を取得するので、
intval()関数で整数の値を取得しています。

// 現在の時間を取得する
$time = intval(date('H'));

if文で時間帯によって処理を分岐します。

// 6時~18時の時間帯の処理
if (6 <= $time && $time <= 17) {
	echo '6時~18時までの処理';
}
// それ以外(18時~6時まで)の時間帯の処理
else {
	echo '18時~6時までの処理';
}

また、時間帯を細かく設定したい場合、elseifで時間帯を追加すれば
上記以外の時間帯でも表示したい内容を切り替えることができます。


時間の他にも、現在の月などを取得すれば季節ごとに処理を変更することも可能です。

php:phpでクッキー($_COOKIE)を削除する方法

phpでデータを格納する場合にクッキーcookie)を使用することがあります。

クッキーとは、ユーザのパソコン内にデータを保存させることです。

プログラム内でクッキー$_COOKIE)に格納した
データを削除する方法をメモします。
phpsetcookie()を使用します。


クッキーを削除

$_COOKIEに’hoge’という要素のデータがある場合は
下記のように指定します。

setcookie('hoge', '', time() - 1800);

有効期限を現在の時間よりも前の時間に設定することで
クッキーを削除することができます。


クッキーを設定

$_COOKIEの’hoge’という名前を付けて値を格納する場合は
下記のように設定します。

setcookie('hoge', '格納する値', time() + 1800);

名前、格納する値、有効期限を設定しています。


クッキーの値を取得

$_COOKIEから’hoge’のデータを取得する場合は
下記のように設定します。

$value = $_COOKIE['hoge'];

$valueにクッキーに保存した’hoge’の値を
取得することができます。