ラベル 【PHP】 の投稿を表示しています。 すべての投稿を表示
ラベル 【PHP】 の投稿を表示しています。 すべての投稿を表示

2015-09-12

php準備

XAMPPをインストール

Apache→WEBサーバ

MySQL→データベース

▼localhost
自分自身のコンピューター
※自分のコンピュータ上で動かしているから

PHP、サーバー上で動作する言語

サーバーはないのでXAMPPは必要


PHP標準設定ファイル
php.ini

↓場所
C:\xampp\php\php.ini


xamppの中のhtdocsにフォルダ(php10)をコピー

URL:https://localhost/php10/......





------- 参考書籍 -------




-------------------------

2013-10-25

php 年齢 for文

forを使って年齢のセレクトボックス
<label>年齢:
    <select name="age">
     <option value="age_10">10代</option>
     <option value="age_20">20代</option>
     <option value="age_30">30代</option>  
     <option value="age_40">40代</option>
    </select>
    </label>

2013-10-01

PHPについてのメモ

PHP実行形式の種類

WEBページ形式
∟HTML混在型…html内にPHP記述
∟PHP単体実行型…PHP内にHTML記述

CGI形式
ブラウザがなくても実行できる
専門知識も必要
取扱いを間違えるとサーバーに多大な負荷を掛けたりする
 
http://beginners.atompro.net/faqphp_begin.html
(PHPの実行形式について / 【超初心者のホームページ作成】)



CGIはプログラム言語じゃない

①Webサーバが、ブラウザからの要求に応じて、
プログラムを起動するための仕組み。

②WWWサーバ(Webサーバ)上で実行されるため、
訪問者のパソコンの機種やOS、ブラウザなどに依存しません。

③どのような開発言語でも使用できるが、
実際にはPerlなどがよく使われる傾向

http://www.kent-web.com/perl/chap1.html
(Perl基礎入門 > 第1章 Perlの概要 : KENT-WEB)

http://e-words.jp/w/CGI.html
(CGIとは : IT用語辞典)

http://okwave.jp/qa/q1505052.html
(CGIとPHPの違いってなんですか?(1/2) | CGIのQ&A【OKWave】)


Perl(★)
プログラミング言語。
http://e-words.jp/w/Perl.html
(Perl : IT用語辞典)

PHP(★)
Webサーバの拡張機能(エクステンション)の一つ。
また、そこで使われるスクリプト言語
http://e-words.jp/w/PHP.html
(PHP: IT用語辞典)


(★)を使うことによって、
蓄積してある文書をただ送出するだけではなく、
プログラムの処理結果に基づいて動的に文書を生成し、
送出することができるようになった。
http://e-words.jp/w/CGI.html
(CGI: IT用語辞典)


スクリプト言語
プログラミング言語の一種



PHPはこのApache上で動作(WEBサーバー上でしか動作しない)
http://www.phppro.jp/school/phpschool/vol2/1

Apache
Webサーバーと呼ばれるソフトウェア
(世界でもっとも普及しているWebサーバー)
http://www.phppro.jp/school/phpschool/vol2/1

Webサーバー(wwwサーバ)
Webサーバは、HTML文書や画像などの情報を蓄積しておき
Webブラウザなどの要求に応じて、ネットワークを通じて、
これらの情報をWWWシステムにおいて、送信を行うコンピュータ
http://e-words.jp/w/WebE382B5E383BCE38390.html

WWWシステム
情報システムの一つで、WebサーバやWebブラウザ、関連する
プロトコルなどWeb技術を中心に構築されたもの。
http://e-words.jp/w/WebE382B7E382B9E38386E383A0.html


Webブラウザ
Webページを閲覧するためのアプリケーションソフト
http://e-words.jp/w/WebE38396E383A9E382A6E382B6.html

アプリケーションソフト
ある特定の目的のために設計されたソフトウェア。「応用ソフト」とも呼ばれ、
どのソフトウェアにも共通する基本的な機能をまとめたOS(基本ソフト)に、
ユーザが必要とするものを組み込んで利用する
http://e-words.jp/w/E382A2E38397E383AAE382B1E383BCE382B7E383A7E383B3E382BDE38395E38388.html
(アプリケーションソフト : IT用語辞典)


プロトコル
ネットワークを介してコンピュータ同士が通信を行う上で、相互に決められた約束事の集合。
英語しか使えない人と日本語しか使えない人では会話ができないように、対応しているプロトコルが異なると通信することができない。
http://e-words.jp/w/E38397E383ADE38388E382B3E383AB.html


HTML
Webページを記述するためのマークアップ言語
http://e-words.jp/w/HTML.html

マークアップ言語
「タグ」と呼ばれる特別な文字列で囲うことにより、
文章の構造、修飾情報を、文章中に記述していく記述言語。
http://e-words.jp/w/E3839EE383BCE382AFE382A2E38383E38397E8A880E8AA9E.html


.iniファイル
OSやアプリケーションソフトの設定を記録したファイルのこと。
各アプリケーションソフトが.iniファイルを用意し、テキスト形式で記録している。
http://e-words.jp/w/INIE38395E382A1E382A4E383AB.html


エクステンション(拡張機能)
ソフトウェアの分野では、完成したソフトウェアに後から(あるいは外部から)
機能を追加するソフトウェア部品や、追加された機能のこと。

http://e-words.jp/w/E382A8E382AFE382B9E38386E383B3E382B7E383A7E383B3.html
(エクステンション: IT用語辞典)


パラメータ
ソフトウェアを実行したりプログラム内で関数を呼び出したりするときに、
その動作を指定するために外部から与える設定値
http://e-words.jp/w/E38391E383A9E383A1E383BCE382BF.html

引数
プログラム中で関数やメソッド、など呼び出すときに渡すのこと。
http://e-words.jp/w/E5BC95E695B0.html


パラメーターと引数の違い
パラメータは変数名という名前がありますが、
引数は変数値もしくは定数なので名前がありません。
http://www.masahiko.info/it/archives/000944.html


ソフトウェア
電子回路や周辺機器などの物理的実体をハードウェア。
形を持たない手順や命令などをソフトウェア
http://e-words.jp/w/E382BDE38395E38388E382A6E382A7E382A2.html

ヒアドキュメントについて
http://www.php-labo.net/tutorial/php/heredocument.html

サーバ
本来はソフトウェアの用語であり、
サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、
サーバーと呼ぶ場合もある。
http://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%BC%E3%83%90#.E7.89.B9.E5.BE.B4
(サーバwiki)

サーバソフトウェアの種類
http://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%BC%E3%83%90#.E7.A8.AE.E9.A1.9E

2013-07-22

アンケート フォームの作成


●ただのフォームから
<form method="POST" action="xxx.php">
    <label>名前:<input type="text" name="name" placeholder="山田 太郎" /></label><br /><br />
    <label>メールアドレス:<input type="email" name="email" /></label><br /><br />
    <label>郵便番号:<input type="number" name="zip" /></label><br /><br />
    性別: <label>女:<input type="radio" name="sexes" value="wman" /></label>
           <label>男:<input type="radio" name="sexes" value="man" checked /></label><br /><br />
    <label>年齢:
    <select name="age">
     <option value="age_10">10代</option>
     <option value="age_20">20代</option>
     <option value="age_30">30代</option>  
     <option value="age_40">40代</option>
    </select>
    </label><br /><br />
    ご使用のOS:<br />
    <label><input type="checkbox" name="os" value="win" checked/>Win</label>
    <label><input type="checkbox" name="os" value="mac" />Mac</label><br /><br />

    <label>サイトへのご意見:<br />
     <textarea name="message" placeholder="ここにテキスト"></textarea>
    </label><br /><br />
  
  <input type="submit" value="送信" />
</form>


※『placeholder』属性はhtml5から
※半角入力はCSSで制御(ime-mode)できるが、IE独自仕様、使うのにためらう。絶対半角ではない。googleが制御してないから使わない
※『type="email"』は『html5』で追加された機能
※ラジオボタンやセレクトなど選択肢が複数の場合は、nemeとvalueで一組








------------------------ 参考サイト -----------------------------

html5ありのフォーム
http://www.htmq.com/html5/input.shtml

htmlフォーム
http://www7b.biglobe.ne.jp/~homepage-note/html-base-3.html

フォームのおさらい ※HTML
http://hinaoka.blogspot.jp/2011/06/html.html


ime-mode-スタイルシートリファレンス
http://www.htmq.com/style/ime-mode.shtml

日本語入力(IME)の状態を制御する方法
http://allabout.co.jp/gm/gc/23804/




2013-07-18

switch文

同じような式を繰り返してつかうとき、すっきりとする。

switch($prof[0]){  
case'男':
  $img='../images/xx1.gif';
break;
    
case'女':
  $img='../images/xx2.gif';
break;
    
default:
  $img='../images/xx3.gif';
break;
}

▼一致する値
case:


▼どれにも一致しなかった場合
default://デフォルト

↑両方、break;(ブレイク)で閉じる※必須


例外として、空のcaseは続けてかいてもOK。($img=~…部分がない場合)
switch($prof[0]){  
case'男':
case'だんせい':
case'ダンセイ':
  $img='../images/xx1.gif';
break;
}


break命令…繰り返しから抜け出すための命令、ループ中断。

スキップしたいとき↓

continue; (コンティニュー)


参考サイト
・continue文 http://www9.plala.or.jp/sgwr-t/c/sec06-7.html

2013-07-16

【PHP】検索機能と名簿

●検索側

<form method="post" action="list.php">
 <label>検索キーワード:<input type="text" name="keywd"></label>
 <input type="submit" value="検索">
</form>




●アクションPHP(list.php)

<?php
$data = array(
  '山田太郎' => 
    array('男', '1965/12/04', '東京都東京市東町1-1-1'),
  '横山花子' => 
    array('女', '1975/09/21', '神奈川県神奈川市西町1-2-3'),
  '田中一郎' => 
    array('男', '1968/11/17', '東京都東京市南町2-1-4'),
  '山本久美子' => 
    array('女', '1972/01/24', '東京都東京市西町3-2-1'),
  '鈴木次郎' => 
    array('男', '1976/08/09', '千葉県千葉市北町1-4-2'),
  '星山裕子' => 
    array('その他', '19679/05/07', '茨城県茨木市東町3-2-1'),
  '佐藤勝男' => 
    array('男', '1980/12/15', '東京都東京市北町2-1-3')
);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>PHP入門教室</title>
</head>
<body>
<ol>
<?php
foreach($data as $name =>$prof){
 $pos = mb_strpos($name, $_POST['keywd']);
 if($pos !== FALSE){
  print('<li>'.$name.'</li>');
  print('<li>'.$prof[0].'</li>');
  print('<li>'.$prof[1].'</li>');
  print('<li>'.$prof[2].'</li>');
  }
 
 }

?>
</ol>
</body>
</html>






mb_strpos(文字列, 検索する文字列);


検索した文字位置、見つからない場合は→false返す



文字位置とは?
(例)
$data ='山田岡田塚';

$pos = mb_strpos($data, $_POST['keywd']);
print('<p>'.$pos.'</p>');


『笹』で検索 結果→『4』($pos文字位置『0』から数える)


配列場合↓↓
$data = array('山田','岡田','笹塚');

foreachで配列を全て選択

foreach($data as $d){
 $pos = mb_strpos($d, $_POST['keywd']);
print('<p>'.$pos.'</p>');
 }

『笹』で検索 結果→『0』
『田』で検索する 結果→『1』が縦に2つ並ぶ


$pos = mb_strpos($name, $_POST['keywd']);
 if($pos !== FALSE){
  print('<li>'.$name.'</li>');
  print('<li>'.$prof[0].'</li>');
  print('<li>'.$prof[1].'</li>');
  print('<li>'.$prof[2].'</li>');



◆if文 もしも●●だったら…

if(●●){
この処理をしてね


$pos !== FALSE//FALSEじゃなかったら

!==…同じじゃない

2013-07-11

演算子とデータ型  【PHP】

比較演算子


AとBの値を比較して、

正しい場合→TRUE

間違ってる場合→FALSE

を返す。


『A==B』・・・AとBが等しい場合→TRUE

『A===B』・・・AとBが等しい場合、かつ同じデータ型の場合→TRUE

『A!=B』・・・AとBが等しくない場合→TRUE(AがBじゃなかったら)

『A!==B』・・・AとBが等しくない、または同じデータ型じゃない場合→TRUE(AがBじゃなかったら)

『AB』・・・BよりAが小さい場合→TRUE

『AB』・・・BよりAが大きい場合→TRUE

『A<=B』・・・AがB以下→TRUE

『A>=B』・・・AがB以上→TRUE




◆データ型

数値型 整数型(integer)……………………1、2、3-2-3 など
     浮動小数点型(float/double/real)…0.5、1.55 など

文字列型(string)……………………………”こんにちわ”、’もじ’ など

真偽型(bool,boolean)………………………true、false

複合型 (array/resource/object)………上記以外の複合型

2013-07-10

連想配列 名簿 【PHP】

<?php
$data = array(
'山田'=>'東京都',
'山本'=>'神奈川県',
'山内'=>'千葉県'
);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>PHP入門教室</title>
</head>
<body>
名簿には<?php print(count($data)); ?>人が登録されています。
<ol>
<?php
foreach($data as $name => $address){
print('<li>'.$name.' / '.$address.'</li>'); 
 };
?>
</ol>
</body>
</html>



●性別と誕生日の追加
 
配列の中に配列をいれる
'山田'=>'東京都',
↓↓↓
'山田'=>array('東京都','男','8月10日'),


追加したもの↓

<?php
$data = array(
'山田'=>

array('東京都','男','4月'),

'山本'=>
array('神奈川県','女','9月'),

'山内'=>

array('千葉県','男','2月')

);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>PHP入門教室</title>
</head>
<body>
名簿には<?php print(count($data)); ?>人が登録されています。
<ol>
<?php
foreach($data as $name => $prof){
print('<li>'.$name.' <br>住所/ '.$prof[0].' 性別/ '.$prof[1].' 誕生日/ '.$prof[2].'</li>'); 
 };
?>
</ol>
</body>
</html>


★$name => $profに、セットしながら

2013-06-26

【PHP】 配列 繰り返し構文

配列を使うときの『繰り返し構文』は3種類


for・while・foreach


for…繰り返しの回数を具体的に指定できる場合
while…繰り返しによって、true・falseが変化する場合
foreach…ただ順番に処理したい場合



◆繰り返し構文(for)をつかう

for( 初期値 ; いくつまで繰り返すか ; カウントのしかた ){
指定回数まで実行すること;
}
名簿リスト表示
<?php 
for($i=0; $i< count($data); $i++){
print('<li>'.$data[$i].'</li>');
}
?>

$i++の部分を$i+1にすると、初期値0に対して+1を繰り返される。
1が永遠と繰り返されるので終わりがない。ブラウザ固まる。
正しくは、$i+=1


名簿リストを反対に表示
<?php 
for($i=count($data)-1; $i>=0 ;$i--){
 print('<li>'.$data[$i].'</li>');
}
?>

インデックス番号が知りたいときは配列の数から「-1」する



◆繰り返し構文(while)をつかう

◆while(ホワイル)

while(この条件を満たしていたら…){
この処理を繰り返してね


条件を満たしていなかったら、終了します。


<?php
$i=0; //初期値
while($i < count($data)){
print('<li>'.$data[$i].'</li>'); 
$i++; 
}
?>
while…条件が正しいときに、処理される「true/false」



◆繰り返し構文(foreach)をつかう
<?php 
foreach($data as $d){
 print('<li>'.$d.'</li>');
}
?>
foreach(フォーイーチ)…配列とセットで使う。「$d」は、仮変数。順番にとりだすときに使う。



▼演算子について「$i++」「$i--

 「$i++
$i++=$i+=1→○

$i++=$i+1→×

$i--
$i--=$i-=1→○

$i--=$i-1→×

【PHP】 基礎⑦ 連想配列 名簿を作る

●配列と連想配列

→使う関数
array関数


・配列…複数の関連するデータ
<?php
$data = array('山田', '山本', '山内');
?>


$変数名 array(データ1,データ2);

    ↓
$変数名[インデックス番号]




・連想配列…複数の組み合わせが関連するデータ
<?php 
$data = array(
'山田' =>'東京都',
'山本' =>'神奈川県',
'山内' =>'埼玉県'
);
?>


$変数名 array(キー名=>値,キー名=>);

    ↓
$変数名['キー名']

※意味のある文字列をキーにアクセスできるようになる


2013-06-21

【PHP】 基礎⑥ シンプルな名簿を作る

<?php
$data=array('山田','山本','山内');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>PHP入門教室</title>
</head>
<body>
名簿には<strong><?php print(count($data));?>人</strong>です()

<ol>
<?php 
print('<li>'.$data[0].'</li>');
print('<li>'.$data[1].'</li>');
print('<li>'.$data[2].'</li>');
?>
</ol>
</body>
</html>



count…配列の数を調べる

インデックス番号
 配列の数

countは配列の数を調べるもので、

 最大のインデックス番号に自動的に「+1」されたもの

 インデックス番号が知りたいときはcount(配列の数)から「-1」をする。

インデックス番号が省略されている場合も自動的に「+1」される
count($data) ←省略されている



◆配列の中身を確認する
print_r($data);

2013-06-06

【PHP】 基礎⑤ 関数

phpの特徴は、豊富に用意された関数。直感で表現できる手軽さ。


●関数とは

あらかじめ決められた処理を行う命令のこと
(例:現在時刻の取得「Date();」、問題のある文字列の置き換え「htmlspecialchars();」)

※自分で処理をつくることもできる




●関数のかき方

戻り値=関数名(引数ひきすう);

※戻り値を返さない関数もある

基本、大文字と小文字は区別されないが、同じ名前は避ける。


れぶろぐ - [PHP] PHP での大文字小文字の区別
http://www.revulo.com/blog/20070330.html





・関数リファレンス/PHP入門
http://www.scollabo.com/banban/php/reference.html


------- 参考書籍 -------




-------------------------

フォーム GETとPOSTの違い

<form method="POST" action="●●.php">
~
</form>



method…送信方法 action…送信先


フォーム送信方法(メソッド/method)は
※小文字でも大文字でもOK


①POST(ポストデータ)
ある程度まとまったデータを送信するとき

②GET(クエリ文字列★1
ページを復元するとき method属性を省略すると『GET』になる。



★1…アドレスの最後に「?」以降をクエリ文字。
https://www.google.com/webhp?hl=ja#hl=ja&site=webhp&sour~…





------- 参考書籍 -------




-------------------------

【PHP】 基礎④ フォーム あいさつ

※ローカルでは動かない。

⇒ローカル環境と整える



●フォーム

html側 -request1.php ※htmlでもいい
<form method="POST" action="request2.php">
<label>名前:<input type="text" value="ここに入力" name="name" /></label><br>(★)
<input type="submit" value="送信"/>
</form>

(★)…label で囲むことによって、forとIdはいらなくなる。


php側 -request2.php
こんにちは、<?php
print htmlspecialchars($_POST['name'],ENT_QUOTES,'utf-8');
?>
さん!


$_POST…PHPが自動的にでつくってくれる変数
※GETのときは、“$_GET”


下記は、安全性が高まるために入れてあります。


htmlspecialchars…命令 入力された内容の無害化※ソースを入力してもただの文字にしてくれる

htmlspecialchars(文字列,エスケープの種類,文字コード);



ENT_QUOTESシングルクォートも置き換えてね。の意味



------- 参考書籍 -------




-------------------------

2013-05-15

【PHP】 基礎③ 演算

◆計算する


$a=10;
$b=5;

 //print($a+$b); 
print($a."+".+$b."=".($a+$b));


.(ドット)は文字列との連結





------- 参考書籍 -------




-------------------------

2013-05-14

【PHP】 基礎② 変数

◆変数について

①PHPの編集は頭に「$」をつける

②「$」のあとは英文字かアンダーバー(_)。数字は駄目

③大文字・小文字は区別される



◆変数の名前つけについて

わかりやすくするために、
短すぎ、長すぎず、似たような名前つけないこと。


*名前の主な記法*

キャメルケース…$myName

アンダースコア…$my_name

パスカル…$MyName





------- 参考書籍 -------




-------------------------

【PHP】 基礎①

◆phpのかき方

<?php
★★★
?>

「★★★」に、phpコードをかく

↑ htmlページに埋め込む*ことができる



<?php
print('こんにちわ<br />');
?>

print…そのまま出力


命令文は、大文字、小文字は区別ない※変数は区別される
●コメントアウト(//一行の場合 /**/複数行の場合)
●命令のあとは、空白・tab・改行なんでもOK



*<例>
▼タグを入れる
print('<p>pタグを出力</p>');


▼タグの中にいれる
<img src="test.jpg" alt="<?php print('テスト');?>" />




拡張子は「.php



------- 参考書籍 -------




-------------------------

アマゾン和書/最新の情報