1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PHPに入門してみたメモ

Posted at

#はじめに

PHPに入門したのでポイントを箇条書き的にメモしました。

#HTMLとPHP
###fontタグ

.html
<font color="#00ff00" size="5">おはよう</font>

緑の文字が表示されます。

###imageタグ

.html
<img src="sample.jpg">

sample.jpgファイルの画像が表示されます。

###ハイパーリンク

.html
<a href="hogehoge.html"><img src="sample.jpg"></a>

sample.jpgの画像をクリックするとhogehoge.htmlに飛びます。

###PHPタグ

.php
<?php
  print `おはよう`;
?>

<?php...?>の中にphpの文を書く。printで出力。

###formタグ

.html
<body>
  <form>
      <input name="nickname" type="text" style="width:100px">
      <input type="submit" value="送信">
  </form>
</body>

inputで入力ボックスを表示。送信ボタンも表示できる。

.html
<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パラメータ__とかいうらしい。

.html
<input type="radio" name="code" value="2"> //ラジオボタン出せたり
<input type="checkbox" name="sakujo"> //チェックボックス出せたり。

###ページ間データ受け取り

.php
<?php
  print `おはよう`;
  print $_POST['nickname'];
?>

$_POST['inputのname']で前のページの指定した名前の値を表示する。

###入力データを消さないでページを戻る

.html
<form>
  <input type="button" onclick="history.back()" value="戻る">
</form>

onclick=history.back()はJavaScript。機能を持ったボタンを表示。

###シングルクォーテーションとダブルクォーテーション

.php
$hoge = 'geho'
print 'これは $hoge です';  //出力:これは $hoge です
print "これは $hoge です";  //出力:これは geho です
print 'これは'.$hoge.'です'

ダブルクォーテーションを使うと変数の中身が表示される(半角で区切らないといけない)。
シングルクォーテーションは$hogeがそのまま表示される。
シングルクォーテーションで.(ドット)で区切ると文字列を連結して変数の中身を表示できる。

###画面に表示しないでデータを渡す

.html
<input name="nickname" type="hidden" value="'.$nickname.'">

valueの中身は変数$nicknameの中身を指定するのでドットで区切って中身出してる。
value=" $nickname "でも大丈夫なはず。

###サニタイジングhtmlspecialchars

.html
$nickname = htmlspacialchars($nickname);

$nicknameの中身をただの文字列にするイメージ。

###メール送信

.php
<?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を使って取得できます。

###画像を選択できるようにする

.html
<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の中は、sizetmp_namenameとか情報を持ってます。

###画像を任意のフォルダにアップロード

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をクッキーから削除して、セッションを破棄してます。

###ブラウザに表示する関数

.php
print_r();
var_dump();

###関数を使うとき

先頭にincludeするか、中にrequire_once(ファイルパス)する。

###配列の要素を削除

.php
array_splice($hairetu,添字,個数);

###逆順ループ

.php
for($i = 99;0 <= $i;$i--){

#SQL
###文字化け対策
my.cnfに以下の文を書く。

.html
[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
<?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

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?