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);
?> | 
  
参照