#はじめに
PHPに入門したのでポイントを箇条書き的にメモしました。
#HTMLとPHP
###fontタグ
<font color="#00ff00" size="5">おはよう</font>
緑の文字が表示されます。
###imageタグ
<img src="sample.jpg">
sample.jpg
ファイルの画像が表示されます。
###ハイパーリンク
<a href="hogehoge.html"><img src="sample.jpg"></a>
sample.jpg
の画像をクリックするとhogehoge.html
に飛びます。
###PHPタグ
<?php
print `おはよう`;
?>
<?php...?>
の中にphpの文を書く。print
で出力。
###formタグ
<body>
<form>
<input name="nickname" type="text" style="width:100px">
<input type="submit" value="送信">
</form>
</body>
input
で入力ボックスを表示。送信ボタンも表示できる。
<body>
<form method="post" action="onion.php">
<input name="nickname" type="text" style="width:100px">
<input type="submit" value="送信">
</form>
</body>
action
でボタンを押した時の飛び先を設定。method="post"は__URLパラメータ__とかいうらしい。
<input type="radio" name="code" value="2"> //ラジオボタン出せたり
<input type="checkbox" name="sakujo"> //チェックボックス出せたり。
###ページ間データ受け取り
<?php
print `おはよう`;
print $_POST['nickname'];
?>
$_POST['inputのname']
で前のページの指定した名前の値を表示する。
###入力データを消さないでページを戻る
<form>
<input type="button" onclick="history.back()" value="戻る">
</form>
onclick=history.back()
はJavaScript。機能を持ったボタンを表示。
###シングルクォーテーションとダブルクォーテーション
$hoge = 'geho'
print 'これは $hoge です'; //出力:これは $hoge です
print "これは $hoge です"; //出力:これは geho です
print 'これは'.$hoge.'です'
ダブルクォーテーションを使うと変数の中身が表示される(半角で区切らないといけない)。
シングルクォーテーションは$hoge
がそのまま表示される。
シングルクォーテーションで.(ドット)
で区切ると文字列を連結して変数の中身を表示できる。
###画面に表示しないでデータを渡す
<input name="nickname" type="hidden" value="'.$nickname.'">
valueの中身は変数$nickname
の中身を指定するのでドットで区切って中身出してる。
value=" $nickname "
でも大丈夫なはず。
###サニタイジングhtmlspecialchars
$nickname = htmlspacialchars($nickname);
$nickname
の中身をただの文字列にするイメージ。
###メール送信
<?php
$mail_sub= 'メールタイトル';
$mail_body= $nickname."様へ¥n本文です。";
$mail_body=html_entity_decode($mail_body, ENT_QUOTES, "UFT-8");
$mail_head='From: xxx@xxx.co.jp';
mb_language('Japanese');
mb_internal_encoding("UTF-8");
mb_send_mail($email, $mail_sub, $mail_body, $mail_head);
?>
###任意の画面に飛ばす(UIを使わない)
header('Location: ファイル名?渡したい値=hoge');
?
以降が__URLパラメータ__と言います。URLパラメータはブラウザの検索欄に表示されます。
これを遷移先で受け取るには次のように書きます。
$nantoka=$_GET['渡したい値'];
GETを使って取得できます。
###画像を選択できるようにする
<form method="post" action="ファイル名" enctype="multipart/form-data">
<input type="file" name="gazou" style="width:100px>
enctype="multipart/form-data"
と<input type="file"
を追加することで画像選択のUIが表示されます。
そして遷移先画面では、次のように受け取ります。
$gazou=$_FILE['gazou'];
$_FILE
の中は、size
、tmp_name
、name
とか情報を持ってます。
###画像を任意のフォルダにアップロード
move_uploaded_file($gazou['tmp_name'],'./フォルダ名/'.gazou['name']
これを書くとフォルダ名
のフォルダに'name'
で画像が保存されます。
相対パスは.
でプログラムと同じフォルダ、..
で一個上のフォルダを表す。
###画像ファイル削除
unlink('./フォルダ名/'.ファイル名);
###セッション
session_start();
session_regenerate_id(true);
###ログアウト
session_start();
$_SESSION=array();
if(isset($_COOKIE[session_name()])==true){
setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
セッション変数をからにして、IDをクッキーから削除して、セッションを破棄してます。
###ブラウザに表示する関数
print_r();
var_dump();
###関数を使うとき
先頭にinclude
するか、中にrequire_once(ファイルパス)
する。
###配列の要素を削除
array_splice($hairetu,添字,個数);
###逆順ループ
for($i = 99;0 <= $i;$i--){
#SQL
###文字化け対策
my.cnfに以下の文を書く。
[client]
character-set-server = utf8
[mysqld]
character-set-server = utf8
skip-character-set-client-handshake
[mysql]
character-set-server = utf8
詳しいことは今度調べる。
###データの登録
INSERT INTO データベース名 ("field1", "field2", "field3") VALUES ("ho", "ge" ,"hoge")
って書くとそれぞれのcolumにVALUES以下のデータが登録される。
###SQLにアクセス
<?php
$dsn = 'mysql:dbname=phpkiso;host=localhost';
$user = 'root';
$password = '';
$dbh = new PDO($dsn, $user, $password);
$dbh -> query('SET NAMES utf8');
$sql = 'INSERT INTO anketo (field1, field2, field3) VALUES ("'.$field1.'","'.$field2.'","'.$field3.'")';
$stmt = $dbh -> prepare($sql);
$stmt -> execute();
$dbh = null;
###全データ取得
SELECT * FROM データベース名 WHERE 1
#解決してないこと
###半角数字チェックの正規表現
if(preg_match('/¥A[0-9]+¥z/', $pro_price)==0)
{
print '価格を半角数字で入力してください。<br/>';
print $pro_price;
} else {...
これで半角数字を入力してもelseに飛ばなかった。
ので次の表現でいけました。
if(preg_match("/^[0-9]+$/", $pro_price)==0)
理由というかそもそも正規表現の記法はまだわかりません。
#参考書籍
いきなり始めるPHP
気づけばプロ並みPHP