2008/5/13 久米
使用例 | ||
改行 | \n |
<textarea name="" cols="80" rows="20"> <?php print "おはようございます。\n"; print "ごきげんいかがですか?"."\n"; $a="ではまた\n\n"; print $a; ?> </textarea> |
CR | \r | |
タブ | \t |
<textarea name="" cols="80" rows="10"> <?php print "\t\t2004年4月13日";?> </textarea> |
備考 | ||
\をまれに表示したい時 | \\ |
\は単独では制御文字になるため。 |
"をどうしても使いたい時 | \" |
'を使った方がプログラム可読性がよい。 |
使用例 主にfor文の中で使う | ||
配列 | $a[0]=10; $a[1]=24; $b[0]="おはよう"; |
<?php $a[0]=10; $a[1]=24; $gokei=0; for($i=0;$i<count($a);$i++){ $gokei=$gokei+$a[$i]; } ?> |
連想配列 | $a["学籍番号"]="AW010"; $a["名前"]="日電太郎"; |
|
多次元配列 | $a[0][0]=10; $a[0][1]=24; $a[0][2]=13; $a[1][0]=51; |
※エラー制御演算子@を関数の前につけると、その関数でエラーがでてもエラーメッセージをカットできる。
※PHPマニュアル関数説明の表示の意味するところ
例 string date ( string format [, int timestamp])
string | date | ( | string format | [ , | int timestamp | ] ) |
戻り値の型 |
関数名 | 引数の型と その意味 |
オプション だよの意味 |
オプション引数の型と その意味 |
使用例(<?php ?>は省略) | |||
数学関数 | round | 四捨五入 | $a=3.14; $b=round($a); |
rand | 乱数発生 | $a=rand(0,9);//0〜9までの整数の乱数 | |
日付時刻 | date | 日付取得 (第2引数がない場合 は現在日時) |
$a=date("Y"); //とか print date("Y/m/d"); |
strtotime | 日付の加減などに使用 | $a=date("Y/m/d",
strtotime("-2 day"))
; //現在から2日前 |
|
文字列 | strlen mb_strlen |
文字列の長さ mb関数は日本語対応 |
$a="nichiden taro"; $b=strlen($a); |
trim | 文字列の前後から 空白を取り除く |
$a=" 富士 太郎 "; $b=trim($a); //ユーザ入力で前後に空白が入っているのを削除するなど |
|
strpos mb_strpos |
指定した文字列の位置 1文字目は0 |
$a="nichiden taro"; $b=strpos($a, " "); |
|
substr mb_substr |
部分文字列の切り出し strposなどと組み合わせ |
$c=substr($a, 0, $b);//1文字目から$b文字分切り出し $d=substr($a, $b+1);//$b+2文字目から最後まで切り出し |
|
strcmp | 文字列の比較 | $a="123"; $b="123"; $c=strcmp($a, "124");//-1が返る $d=strcmp($a, $b);//0が返る |
|
str_replace ereg_replace |
文字列の置き換え ereg関数は正規表現可 |
$a=ファイルやDBから読み込んだもの; $b=str_replace("\r\n", "<br>", $a);//HTMLで表示 |
|
strtolower | 小文字に変換 | $a="Nichiden Taro";//DBから読み取った文字 $b="nichiden taro"//ログイン入力された文字 if(strtolower($a)==strtolower($b)) 正常処理; |
|
split | 区切り文字で分割し 配列として返す |
$a="2004/4/13 taro 東京都 20"; $b=split(" ", $a); print "日付:".$b[0]; print "名前:".$b[1]; |
|
strtok | 区切り文字で分割し 文字列として 1つ毎に返す |
$a="This is an example string"; $b=strtok($a," "); while($b!="") { print "単語=".$b."<br>"; $b=strtok(" "); } |
|
変数処理 | isset | 変数に値が代入されて いるか調べる |
$a="あ"; if(isset($a)) print "代入されている"; else print "代入されていない"; |
ファイル処理 | file_exists | ファイルorディレクトリが 存在するか調べる |
if (file_exists($a)) { print "ファイル存在します。"; } |
file | ファイル全体を読み込み 1行毎に配列に格納 |
$a=file('http://www.google.co.jp/'); // 配列をループしてHTMLソースとして表示し、行番号もつける for($i=0;$i<count($a);$i++) { print "<b>$i</b> : ".htmlspecialchars($a[$i])."<br>\n"; } |
|
fopen | ファイルを開き ファイルポインタを返す |
$fp = fopen($a,"r"); while (!feof($fp)) { $buf = fgets($fp,4096);//一行読み出す print $buf"\n"; } fclose($fp); |
|
fgets | ファイルポインタから 1行取得する |
||
feof | ファイルポインタがファイル 終端に達しているか? |
||
fclose | ファイルポインタを クローズする |
||
fwrite fputs |
ファイルポインタの個所へ 書き込む |
・・・ $b="こんにちは\n"; fputs($fp, $b); |
|
配列 | array | まとめて配列に代入 | $a=array("新宿", "渋谷", "品川", "千駄ヶ谷"); |
count | 配列の要素数を返す | $b=count($a); |
演習1 今日の日付を、2008年5月13日 の形式で表示せよ。
演習2 表示するたびに変わる、さいころの数字を表示せよ。
演習3 午前中なら「おはようございます」午後なら「こんにちは」夜なら「こんばんは」
と表示するようにせよ。
演習4 表示するたびに変わる、さいころの数字の画像を表示せよ。
if文は使わず、配列を使用せよ。
以上のものを適当に自分のホームページに採用せよ。
書式 | 使用例 |
function 関数名(引数,・・・){ 命令分; ・・・ ・・・ return 変数または値; } |
function gokei($a1, $a2, &a3){ $g=$a1+$a2+$a3; return $g; } $a=gokei(10, 12, 18); $b=gokei(20, 30, 40); $c=gokei(10, 15, 20); print $a."<br>".$b."<br>".$c; |
※経験則:引数は上記のように値渡しだけを使った方ベター。
引数の前に&を付けた参照渡しという方法もあるが、引数の値を変更できてしまうので混乱の元。
外部ファイルの 読み込みエラー時 処理は継続中止? |
外部ファイルの 読み込み回数は? |
|
require("外部ファイル名");; | 中止 | 毎回 |
include("外部ファイル名"); | 続行 | 毎回 |
require_once("外部ファイル名"); | 中止 | 1回 |
include_once("外部ファイル名"); | 続行 | 1回 |
例
本文 | <?php include_once("in_counter.php");?> <html> <head> <meta httpequiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>わたしのホームページ</title> </head> <body> <h1>わたしのホームページ</h1> <h2>今日の出来事</h2> <p>今日のPHPは良く分かった。(●^o^●)<br> 春休みに勉強してみようっと。φ(。。;)m</p> <p> </p> <p><b><?php print $ct; ?></b>人目の訪問者です。</p> 人目の訪問者です。</p> </body> </html> |
本文と同じディレクトリに in_counter.php を作って配置する (外部ファイル化とは 関係ないけど同じ ディレクトリにcounter.txt も入っている) |
<?php //簡単アクセスカウンタ $fp = fopen("counter.txt","r+"); $ct = fgets($fp, 64); $ct++; rewind($fp); flock($fp, LOCK_EX); fputs($fp, $ct); fclose($fp); ?> |
参照