html、php、Javascriptなど

html、php、Javascriptなどメモのためのブログ。
適当に見つけて忘れないように書留めます。

メールアドレスのチェック

2008年05月16日 | php
メールアドレスチェック用正規表現


1: if ( ereg("^[^@]+@[^.]+\..+", $str) ) {
2: echo "メールアドレスっぽい!";
3: } else {
4: echo "メールアドレスではなさそうだ。";
5: }


phpで検索用語にマッチしたモノを取り出す。マッチ。

2008年04月11日 | php
<参考リンク>

http://q.hatena.ne.jp/mobile/1166280426

http://sandman.s6.xrea.com/nucleus/item-62.html&catid=21

http://faq.infolinux.jp/index.php?action=artikel&cat=40&id=270&artlang=ja

http://q.hatena.ne.jp/1168007987

http://www.phppro.jp/phpmanual/php/function.strpos.html



fopen()関数 指定可能なモードとか

2007年12月19日 | php
fopen()関数で指定可能なモード モード 説明
r 読み込みのみで開きます。ファイルポインタはファイルの先頭におきます。
r+ 読み書き可能な状態で開きます。ファイルポインタはファイルの先頭におきます。
w 書き込みのみで開きます。ファイルポインタはファイルの先頭におき、ファイルサイズをゼロにします。ファイルが存在しない場合は新規作成します。
w+ 読み書き可能な状態で開きます。ファイルポインタはファイルの先頭におき、ファイルサイズをゼロにします。ファイルが存在しない場合は新規作成します。
a 追加書き込みモードです。ファイルポインタをファイルの終端におき、ファイルが存在しない場合は新規作成します。
a+ 追加書き込み・読み取りが可能なモードです。ファイルポインタをファイルの終端におき、ファイルが存在しない場合は新規作成します。
x 書き込みのみで開きます。ファイルポインタはファイルの先頭におきます。ファイルが存在するとfopen関数は失敗し、E_WARNINGレベルのエラーを出力します。ファイルが存在しない場合は新規作成します。
x+ 読み込み・書き込みが可能なモードです。ファイルポインタはファイルの先頭におきます。ファイルが存在するとfopen関数は失敗し、E_WARNINGレベルのエラーを出力します。ファイルが存在しない場合は新規作成します。

Windows環境でバイナリファイルを開く場合には、モードに'b'または't'を追加します。't' は\nを\r\nに変換します。'b'は強制的にバイナリモードにします。このモードは第2引数の最後に追加します。

<参考リンク>
http://nyx.pu1.net/function/filesystem/fopen.html

改行文字を<br />に変換 (form内で)

2007年12月19日 | php
nl2br() ---- 改行文字の前にHTMLの改行タグを挿入する


<form action="" method="POST">
<textarea name="messege" rows="3" cols="50">
1行目
2行目
</textarea>
<input type="submit" value="送信">
</form>
■入力文字■

// HTML文字のエスケープ
$text = htmlspecialchars( $_POST["messege"] );

// magic_quotes_gpcの値がONなら削除
if ( get_magic_quotes_gpc() ) {
$text = stripslashes( $text );
}

// 改行処理
$text = nl2br($text);

print $text;
?>




でなく、
を挿入したい場合は下リンクを参照のこと。


<参照リンク>
http://nyx.pu1.net/practice/form/form4.php

stripslashes() ---- バックスラッシュでクォートされた文字列を元に戻す

2007年12月19日 | php
<form action="" method="POST">
<input type="text" name="textbox" value="">
<input type="submit" value="送信">
</form>
入力文字:
// まずはHTML文字のエスケープ
$text = htmlspecialchars( $_POST["textbox"] );

// magic_quotes_gpcの値がONなら\削除
if ( get_magic_quotes_gpc() ) {
$text = stripslashes( $text );
}
print $text;
?>


magic_quotes_gpcがONの場合、フォームなどに入力した文字列に上記のものが含まれていた場合は勝手にエスケープ処理が行われて「\\」や「\"」のような文字列になるって事です。NULLは「何もない」という意味の特殊文字ですので今のところあまり気にしなくていいです。普通に「NULL」と入力して送信しても文字列としての"NULL"と扱われますので、そのまま表示されます。"\n"が「改行」を意味する特殊文字だというのを覚えてると思いますが、今回のNULLも似たようなものだと思ってもらっていいです。


<参考リンク>
http://nyx.pu1.net/practice/form/form3.php

htmlspecialchars() 特殊文字をHTMLエンティティに変換する

2007年12月19日 | php
よく分からないかもしれませんが、htmlspecialchars()は、「<」を「<」に、「>」を「>」に変換してくれるというそのものずばりの関数です。他にも「&」を「&」に変換してくれます。第3引数までありますが、通常使用するには第1引数だけ指定すれば十分です。この第1引数に変換したい文字列を指定します。補足までに、第2引数は"(ダブルクォート)と'(シングルクォート)を変換するかどうか、第3引数は変換に使用する文字コードの指定です。興味のある方は関数のページを参照してもらうことにして、早速スクリプトです。


<form action="" method="POST">
<input type="text" name="textbox" value="">
<input type="submit" value="送信">
</form>
入力文字:
print htmlspecialchars( $_POST["textbox"] );
?>

クッキーの有効期限

2007年12月16日 | php
クッキーの有効期限

上記のように時間の指定をするととっても簡単に有効期限付きのクッキーが出来上がります。
$expire = time() + 15 * 60 // 15分有効
setcookie('クッキー名', 'クッキー値', $expire);
?>



-----------------------------------------
訪問回数カウンター:有効期限付
// 訪問回数カウント用の変数$visitにカウント値を格納
if( isset($_COOKIE['visitcount']) ){ // クッキーがあればその値がカウント値
$visit = $_COOKIE['visitcount'];
} else{ // クッキーがなければ初回訪問としてカウント値は0
$visit = 0;
}

$visit++; // カウント値+1
setcookie('visitcount', $visit, time()+10); // 10秒有効のクッキーを設定
echo '訪問回数:' . $visit;
?>

指定した日付のタイムスタンプを取得―mktime関数

2007年12月15日 | php
//「来年の今日」という日時のタイムスタンプを取得する
$timestamp = mktime(0, 0, 0, date("n"), date("j"), date("Y")+1);

//取得したタイムスタンプからフルスペルの曜日にフォーマットして出力
echo date("l", $timestamp);
?>


出力結果
Monday


---------------------------------------------------
mktime関数による日付の有効性確認
mktime()関数は日付の有効性を確認してくれていますので「8月32日」というような指定をした場合でもエラーとはならず、自動的に「9月1日」のタイムスタンプを取得してくれます。

// 不正な日付を指定しているが、自動的に9月1日として扱われる。
$timestamp = mktime(0, 0, 0, 8, 32);
echo date("Y/m/d", $timestamp);
?>

出力結果
2007/09/01

date関数

2007年12月15日 | php
echo date("Y年m月d日 H時i分s秒"); // 現在時刻を表示します
?>
出力結果
2007年12月15日 00時32分50秒




<詳しく>
a 午前/午後(am または pm)
A 午前/午後(AM または PM)
B インターネット時間(000 ~ 999)
d 2桁で示す日付(01 ~ 31)
D 3文字の曜日(Sun ~ Sat)
F フルスペルの月(January ~ December)
g 先頭に 0 をつけない12時間単位の時間(1 ~ 12)
G 先頭に 0 をつけない24時間単位の時間(0 ~ 23)
h 2桁で示す12時間単位の時間(01 ~ 12)
H 2桁で示す24時間単位の時間(00 ~ 23)
i 2桁の分(00 ~ 59)
I サマータイム中かどうかのフラグ(1 または 0)
j 先頭に 0 をつけない日付(1 ~ 31)
l フルスペルの曜日(Sunday ~ Saturday)
L 閏年かどうかのフラグ(1 または 0)
m 2桁で示す月(01 ~ 12)
M 3文字で表す月(Jan ~ Dec)
n 先頭に 0 をつけない月(1 ~ 12)
O グリニッジ標準時(GMT)との時間差(+0900 など)
r RFC822に定義されている日付形式(Thu, 21 Dec 2000 16:01:07 +0900 など)
s 2桁で示す秒(00 ~ 59)
S 2文字で表す英語形式の序数を表すサフィックス(st, nd, rd または th)
t 指定した月の日数(28 ~ 31)
T ローカルマシーンのタイムゾーンの設定
U Unix時間(Unixタイムスタンプ:time()の値と同じ)
w 数値で示す曜日(0:日 ~ 6:土)
W ISO-8601 月曜日に始まる年単位の週番号(42:1年の第42週目)
y 西暦を2桁を示す年
Y 西暦を4桁で示す年
z 年間の通算日― 1月1日からの通算日数(0 ~ 366)
Z タイムゾーンのオフセット秒数(-43200 ~ 43200)

どのページのリンクをたどって来たかを取得

2007年12月13日 | php
HTTP_REFERER


どのページのリンクをたどって来たかを取得できます。

一つ前にどのページを見ていたか取得できるので、アクセス解析などでリンク元サイトなどを把握するのにもよく使われます。ただし、これもブラウザが送る情報をサーバが取得していますので、この値が取得できるかどうかはサーバだけでなく、ブラウザにも依存します。

また、リンクをたどって来たわけでなく、ブックマーク(お気に入り)から来た場合やURLを直接入力して来た場合にはHTTP_REFERERの値はありません。


if( $_SERVER["HTTP_REFERER"] ){ // HTTP_REFERERの値があればそれを出力
echo $_SERVER["HTTP_REFERER"];
} else{ // なければ以下の文を出力
echo "リファラ値がありません。";
};
?>


出力結果

http://nyx.pu1.net/practice/server_var/server_var1.html



上記のスクリプトを工夫して、タグ内にHTTP_REFERERの値を入れると、「戻る」ボタンなどができます。


<参考サイト>
http://nyx.pu1.net/practice/server_var/server_var3.html