3月
フォーム処理
(サーバーとクライアントのデータ授受)
フォームに入力した内容をサーバー側で処理して
クライアント側に結果を返します
定義済み変数と関数
ブラウザ情報の取得
<?php
$browser=$_SERVER["HTTP_USER_AGENT"];
echo $browser;
if(strpos($browser,"MSIE")!==false){
echo "\n ブラウザはIEです \n";
}
?>
ブラウザの識別
<p>あなたのブラウザは <?php echo htmlspecialchars($_SERVER['HTTP_USER_AGENT']) ?> ですね?</p>
$_SERVER配列
複数のデータを管理できる配列
$_SERVER["HTTP_USER_AGENT"]
$_SERVERに格納されているデータを取り出す
この場合はブラウザ名やバージョンを取り出す
文字列は二重引用符”"で囲みます
$_SERVER['REMOTE_ADDR']
IPアドレスの取得
$_SERVER['HTTP_REFERER']
ひとつ前にアクセスしていたURL(リンク元)
$_SERVER['HTTP_ACCEPT_LANGUAGE']
ブラウザの言語
ライブラリ関数
処理をひとまとめにしておき必要によって呼び出す
ライブラリに含まれる関数とユーザー定義関数の2種類がある
strpos
文字列の中からある文字列の位置を探す関数
strpos($browser,”MSIE”)!==false)
$browserが示す文字列の中の”MSIE”がある位置を探します
なければfalseという値を返します
if文
条件判定を行う命令文です
if(strpos($browser,”MSIE”)!==false)
strpos関数の返す値がfalseでないかを判別する
$browserの中に”MSIE”という文字があれば使用ブラウザはIEという判定
比較演算子
!==
厳密な比較判定を行う演算子です
!=を使うとfalse,0,”0″なども偽と判断される
!==や===は論理値のfalseのみを偽として扱います
HTMLタグの出力
echoでHTMLタグを出力するとHTML文として機能します
<?php
echo"<pre>";
for($i=0;$i<5;$i++){
echo"hello PHP!\n";
}
echo"</pre>";
?>
実際の書き方では<html>や<body>を置いて使用します
変数の役割(for文)
<font size =1>hello world<br></font> <font size =2>hello world<br></font> <font size =3>hello world<br></font> <font size =4>hello world<br></font> <font size =5>hello world<br></font> <font size =6>hello world<br></font> <font size =7>hello world<br></font>
上記のhtmlをPHPのfor文と変数$nを用いて書く
<?php
for($n=1;$n<=7;$n++){
echo"<font size=".$n.">";
echo"hello world<br>";
echo"</font>";
}
?>
echoの3行は1行にまとめられます
<?php
for($n=1;$n<=7;$n++){
echo"<font size=".$n.">hello world<br></font>";
}
?>
PHPの書式
<?php echo "hello world!"; ?>
命令文の終わりに;を付ける
文字列は”"で囲む
命令文
$i=0;
変数の頭は$
変数$iに数値0を代入する
<?php
for($i=0;$i<5;$i++){
echo "hello PHP!<br>";
}
?>
for($i=0;$i<5;$i++)
変数$iを0から始めて5未満の間$iを+1しながら
{と}の間の内容を繰り返す命令
<pre>タグ
改行について
空白、改行には¥n,¥tを使う
var_dump,print_rなどの関数を使う
¥nのみでは改行されないので<pre>タグで囲う
<pre>
<?php
for ($i=0;$i<5;$i++){
echo "hello,PHP!\n";
}
?>
</pre>
(上記タグは¥を\に差し替え済み)
ここまでやっておっと!なんかうまくいかないとなりまして。
¥nでMacでは改行されない件
¥nで改行できないのはMac特有の問題なのでしょうか。
Macで¥nで改行されないときはPHP_EOL
とまぁ、改行できなかったわけです。
ほんじゃ先に進めないじゃないかと調べたところ、
・MacではUnicodeだから\と¥が区別される
・改行は\n(バックスラッシュ+n)で行う
・バックスラッシュの入力方法はoption+¥で\でます。
・¥入力を使うものは\にすべて置き換えて置くのが無難
ちなみにこれはFlash(AS)でも同じみたい。
\r\nが改行コードとして認識されない
ついでに¥があるのはJISキーボードのみで、
USキーボードの方は\どうやって入力してるんだろうとふと疑問に思ったり。
おまけ:wordpress内でコード表をさせる時の<や>を半角で表示させる記述
半角< &lt;
半角> &gt;
それぞれ半角で記述します。
そのまま半角>を入れてもコード認識されてしまいます。