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"] = "りんご";
|