2015/4/1 久米
使用例 | ||
改行 | \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 preg_replace |
文字列の置き換え preg関数は正規表現可 |
$a=ファイルやDBから読み込んだもの; $b=str_replace("\r\n", "<br />", $a);//HTMLで表示 |
|
strtolower | 小文字に変換 | $a="Nichiden Taro";//DBから読み取った文字
$b="nichiden taro"//ログイン入力された文字 if(strtolower($a)==strtolower($b)) 正常処理; |
|
explode | 区切り文字で分割し 配列として返す |
$a="2004/4/13 taro 東京都 20";
$b=explode(" ", $a); bodyの中で print "日付:".$b[0]; print "名前:".$b[1]; |
|
strtok | 区切り文字で分割し 文字列として 1つ毎に返す |
$a="This is an example string"; $b=strtok($a," "); $c=""; |
|
変数処理 | isset | 変数に値が代入されて いるか調べる |
$a="あ";
$c=""; if(isset($a)) $c="代入されている"; else $c="代入されていない"; bodyの中で print $c; |
ファイル処理 | file_exists | ファイルorディレクトリが 存在するか調べる |
$m=""; if (file_exists($a)) { $m="ファイル存在します。"; } bodyの中で print $m; |
file | ファイル全体を読み込み 1行毎に配列に格納 |
$a=file('http://www.google.co.jp/'); // 配列をループしてHTMLソースとして表示し、行番号もつける |
|
fopen | ファイルを開き ファイルポインタを返す |
$fp = fopen($a,"r"); |
|
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); |
※経験則:引数は上記のように値渡しだけを使った方ベター。
引数の前に&を付けた参照渡しという方法もあるが、引数の値を変更できてしまうので混乱の元。
外部ファイルの 読み込みエラー時 処理は継続中止? |
外部ファイルの 読み込み回数は? |
|
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); ?> |
参照
コラム 連想配列の=>連想配列や自分でキーを割り振りたい場合には「 => 」という記号を使います。 改行しているのは見やすくするためです。必要なければ1行で書いても構いません。 上記の例は以下のように書くのと同じです。 多次元配列を作成したい場合はarray()関数をネスト(入れ子)します。 ややこしいですが、実際にサンプルを見た方が分かりやすいです。 これは以下のように書くのと同様です。 $food["fruit"]["apple"] = "りんご";
|