▪️strlen() 文字列の長さを得る
<?php
$str = 'abcdef';
echo strlen($str); // 6
$str = ' ab cd ';
echo strlen($str); // 7
?>
$_SESSION
$_SESSION
▪️$_SESSION[セッション変数名] = 値
[ ]の中に保存したいセッションの名前(ここではusername)を書き、代入演算子 = で代入したいもの(tanaka)を書きます。
<?php
session_start();
$_SESSION[‘username’] = ”yamada”;
?>
セッションとは、コンピュータのサーバー側に一時的にデータを保存する仕組みのこと
$_SESSION 使い方
セッションの使い方ですが、シンプルに session_start関数 を使って開始し、この下でセッションを保存していくことができます。
$_SESSION 中身の取り出し方
取り出し方は、echo でこの SESSION[‘username’] を取り出してあげれば、中身を取り出すことができます。
session_start();
$_SESSION[‘username’] = ”tanaka”;
echo $_SESSION[‘username’] ;
?>
PHPSESSID
PHPSESSID | セッションが利用するクッキーの値 |
セッションID表示 | $_COOKIE["PHPSESSID"] |
<?php
session_start();
?>
<?php
// クライアント側にセッションIDがクッキーとして書き込まれるのかどうかを確認
if (!isset($_COOKIE["PHPSESSID"])){
print('初回の訪問です。セッションを開始します。');
}else{
print('セッションは開始しています。<br>');
print('セッションIDは '.$_COOKIE["PHPSESSID"].' です。');
}
?>
セッションは開始しています。
セッションIDは knv7dmv9l353lhjfeccclcoop7 です。
session_regenerate_id
<?php
session_start();
?>
<form action="test39-output.php" method="post">
<p>
<input type="text" name="name">
</p>
<input type="submit" value="送信" name="submit">
<!-- <input type="submit" value="SESSION削除" name="sessionDelete"> -->
</form>
<?php
session_start();
if(isset($_POST['submit'])){
$_SESSION['name'] = $_POST['name'];
$name = $_SESSION['name'];
}
?>
<?php
if(isset($_SESSION['name'])){
echo $_SESSION['name'];
echo $_COOKIE['PHPSESSID'];
}
if(isset($_POST['sessionDelete'])){
session_regenerate_id();
}
?>
<form action="" method="post">
<input type="submit" value="SESSION再生成" name="sessionDelete">
</form>
$_COOKIE
$_COOKIEの中身
<?php var_dump($_COOKIE);?>
array (size=1)
'PHPSESSID' => string '30fmvbq1bdltdjnegbtvk0j7e2' (length=26)
$_COOKIE削除
setcookie('クッキー名');
setcookie('userid','');
setcookie
setcookie(クッキーの名前,保存する値,有効期限,パスの指定);
保存する値 | 文字列or数字。配列や複雑なデータは指定できない |
if文
class属性(html)
class属性(参考ページ1)
class属性(参考ページ2)
class PHP
関数
rand()
rand() | 0~32767の乱数を返す |
getrandmax() | 乱数の最大値を返す |
echo rand(1,5);
rand()で画像をランダムに表示
echo '<img src="hanep',rand(1,3),'.gif">';
画像ファイルは
hanep1.gif
hanep2.gif
hanep3.gif
です。
→
→
ランダムに画像が変わります。
■偶数だけ生成
rand(1,5)*2
■(1以上9以下の)奇数だけを生成
rand(1,5)*2-1
rand(0,4)*2+1
htmlspecialchars()
htmlspecialcharsはtext/plainをtext/htmlに変換する。
htmlspecialchars関数にかけてから表示をしないと、
入力された文字によっては画面が壊れてしまったりするので、
決まり文句として覚えとく。
htmlspecialchars()(参考ページ)
▪️text/plain
plain text(平文)。一般的な文字列形式。
▪️ハッシュ化
ハッシュ化とは、元のデータから一定の計算手順に従ってハッシュ値と呼ばれる規則性のない固定長の値を求め、その値によって元のデータを置き換えること。
hashは英語で寄せ集めにする、ごた混ぜにする、めちゃくちゃにするという意味。
ceil関数
ceil(数値) 端数の切り上げ
▪️例
<?php
echo ceil ( 225.8 );
?>
▪️例 実行結果
226
intval関数
intval() 引数に指定した値を整数値(integer)に変換する関数
▪️例
<pre>
<?php
$str = "11";
$str2 = 2;
$str3 = "テスト";
echo intval ( $str );
print ("\n") ;
echo intval ( $str2 );
echo ("\n");
echo intval ( $str3 );
echo ("\n");
echo intval ( 154.7 );
echo ("\n");
?>
</pre>
▪️例 実行結果
11
2
0
154
mb_convert_kana関数
-
POINT、_________________________________
mb_convert_kana
・mb_convert_kana(文字列,変換オプション,文字エンコーディング)
カタカナを半角から全角へ変換する
<?php require 'header.php';?>
<p>お名前のフリガナを入力してください。</p>
<p>フリガナを半角から全角に変換する。</p>
<form action="kadai_27_zenhan-kana-output.php" method="post">
<input type="text" name="furigana">
<input type="submit" value="確定">
</form>
<?php require 'footer.php';?>
<?php require 'header.php';?>
<?php
//フリガナを半角から全角に変換する
echo 'フリガナは「', mb_convert_kana($_REQUEST['furigana'],'K','UTF-8'), '」です。';
?>
<?php require 'footer.php';?>
数値を全角から半角へ変換する
<?php require 'header.php';?>
<!-- 数値を全角から半角へ変換する -->
<p>購入個数を入力してください。</p>
<p>数値を全角から半角へ変換する。</p>
<form action="kadai_27_zenhan-number-output.php" method="post">
<input type="text" name="count">
<input type="submit" value="確定">
</form>
<?php require 'footer.php';?>
<?php require 'header.php';?>
<?php
//n→全角数字を半角に変換
//数値を全角から半角へ変換する
$count = mb_convert_kana ( $_REQUEST ['count'], 'n','UTF-8');
if (preg_match ( '/[0-9]+/', $count )) {
echo $count, '個を購入します。';
} else {
echo $count, 'は数値ではありません。';
}
?>
<?php require 'footer.php';?>
if文
{}がない
if分は括弧が無い場合、次の1文の命令のみが対象になる。
{}内の処理が複数の文の場合には{}を省略することができない。
if(isset($_REQUEST['command'])) {
switch ($_REQUEST['command']){
case 'insert':
//if文は、括弧がない場合、次の1文の命令のみが対象になる
//実行文が1行のときは{}を省略できる
if(empty($_REQUEST['name']) || !preg_match('/[0-9]+/', $_REQUEST['price']))
break;
//それ以外だったら
$sql = $pdo->prepare('insert into product values(null,?,?)' );
$sql = execute(array(htmlspecialchars($_REQUEST['name']),$_REQUEST['price']));
break;
}
}
case 'insert' :
if (empty ( $_REQUEST ['name'] ) || ! preg_match ( '/[0-9]+/', $_REQUEST ['price'] )) {
break;
}
$sql = $pdo->prepare ( 'insert into product values(null,?,?)' );
$sql->execute ( array (
htmlspecialchars ( $_REQUEST ['name'] ),
$_REQUEST ['price']
) );
<?php
$s = 'あ';
$s1 = 'い';
switch ($s) {
case 'あ' :
if ($s1 == 'い')
echo 'Hello';
break;
// breakした時点でswitch構造を抜けるから、通らない
echo 'World';
break;
}
?>
<?php
$s = 'a';
$s1 = 'c';
switch ($s) {
case 'a' :
if ($s1 == 'b')
break;
// breakした時点でswitch構造を抜けるから、通らない
echo 'World';
break;
}
?>
<?php
$s = 'a';
$s1 = 'c';
switch ($s) {
case 'a' :
if ($s1 == 'b')
echo 'Hello';
break;
// breakした時点でswitch構造を抜けるから、通らない
echo 'World';
break;
}
?>