phpカンファレンス2016 初心者セッション

60
PHP カンファレンス 2016 PHP 初心者セッション 日本 PHP ユーザ会 有限会社アリウープ 柏岡 秀男

Upload: hideo-kashioka

Post on 16-Apr-2017

369 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: PHPカンファレンス2016 初心者セッション

PHPカンファレンス2016

PHP初心者セッション日本PHPユーザ会 有限会社アリウープ 柏岡 秀男

Page 2: PHPカンファレンス2016 初心者セッション

アジェンダ

自己紹介

PHPの文法

実践編

おまけ

Page 3: PHPカンファレンス2016 初心者セッション

自己紹介

有限会社アリウープ

WEBシステム開発

それにまつわるすべて

特に火消しを行うことが多いです

Page 4: PHPカンファレンス2016 初心者セッション

PHPとは

Page 5: PHPカンファレンス2016 初心者セッション

PHPとは

PHP is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

http://php.net/より

Page 6: PHPカンファレンス2016 初心者セッション

PHPとは

WEB開発に適した言語

Page 7: PHPカンファレンス2016 初心者セッション

PHPの歴史

1994年にRasmusがオンラインで公開している経歴書のアクセス履歴を調べるために使われていました

彼はそのスクリプト群を「Personal Home Page Tools」と名付けました。

http://php.net/manual/ja/history.php.php

Page 8: PHPカンファレンス2016 初心者セッション

PHPの環境

Page 9: PHPカンファレンス2016 初心者セッション

LAMP LAPP LEMP

Linux Apache MySQL PHP

Linux Apache Postgre PHP

Linux Nginx MariaDB PHP

呼び方はOS+Web Server+Database+Script

Page 10: PHPカンファレンス2016 初心者セッション

どんな環境ではじめるか

Page 11: PHPカンファレンス2016 初心者セッション

AWS Microsoft Azure Google App Engine IBM Softlayear

Page 12: PHPカンファレンス2016 初心者セッション

ホスティング

レンタルサーバ

Page 13: PHPカンファレンス2016 初心者セッション

仮想環境 Vmware

VirtualBox

Page 14: PHPカンファレンス2016 初心者セッション

手軽にはじめるなら

XAMPP MAMP

Page 15: PHPカンファレンス2016 初心者セッション

サーバーいらず

cloud9 http://c9.io https://ide.c9.io/kashioka/test

Page 16: PHPカンファレンス2016 初心者セッション

環境は思いの外すぐにできます。 ぜひ、試してみましょう。

Page 17: PHPカンファレンス2016 初心者セッション

PHPの概要

Page 18: PHPカンファレンス2016 初心者セッション

PHPの基本PHPの文法は直感的です。

他の言語をやっていない方が戸惑いません。

WEB構築に最適な言語です。

時に実務で使うには色々出てきます

※個人の感想です

Page 19: PHPカンファレンス2016 初心者セッション

PHPタグ

<?php ?> PHPモード;

HTMLのタグのようなイメージ;

Page 20: PHPカンファレンス2016 初心者セッション

<html> <body> <?php

echo "こんにちは";

?> </body> </html>

一番かんたんなサンプル

http://localhost:8888/1st.php

Page 21: PHPカンファレンス2016 初心者セッション

拡張子

ファイル名.php

Page 22: PHPカンファレンス2016 初心者セッション

構文変数は$で始まる;

文末は;で終わる

型宣言などは厳密に行わなくてOKだが後々面倒……

簡単なサンプルを見てみましょう

Page 23: PHPカンファレンス2016 初心者セッション

<?php$a = 'こんにちは';echo $a;

Page 24: PHPカンファレンス2016 初心者セッション

PHPからHTMLも出力

Page 25: PHPカンファレンス2016 初心者セッション

<?phpecho "<html>";echo "<body>";echo "これはPHPです";echo "</body>";echo "</html>";

http://localhost:8888/sample0.php

Page 26: PHPカンファレンス2016 初心者セッション

結合したり計算したり

.(ドット)を使って文字列の結合ができます。

数値の演算は+-*/

Page 27: PHPカンファレンス2016 初心者セッション

<?php $a = 1; $b = 2; echo $a + $b; echo '<br>'; echo $a . $b;

http://localhost:8888/sample4.php

Page 28: PHPカンファレンス2016 初心者セッション

<?php $a = "phpcon"; $b = 2015; echo $a . "/" . $b + 1;

http://localhost:8888/sample2.php

Page 29: PHPカンファレンス2016 初心者セッション

PHPの関数スクリプト言語の関数は親しみやすい

なんとなく関数を覚えていればOK

if foreach strlen htmlspecialchars nl2br mb_convert_encording

Page 30: PHPカンファレンス2016 初心者セッション

if ~ else (endif)

条件判定を行う

条件を満たす満たさないの判断を行う

Page 31: PHPカンファレンス2016 初心者セッション

<?php if($a) { echo '条件を満たす'; } else { echo '条件を満たさない'; }

http://localhost:8888/if.php

Page 32: PHPカンファレンス2016 初心者セッション

<div> <?php if($a): ?> <div id='a'>満たす</div> <?php else: ?> <div id=''>満たさない</div> <?php endif; ?> </div>

http://localhost:8888/div.php

Page 33: PHPカンファレンス2016 初心者セッション

HTML組み込み型のサンプル

Wordpressの場合

wp-content/themes/twentysixteen/header.php

Page 34: PHPカンファレンス2016 初心者セッション

foreach

<?php $numbers = array('2','3','4','5','6');

foreach($numbers as $val) { echo $val;

}

Page 35: PHPカンファレンス2016 初心者セッション

htmlspecialchars&"'<>といったHTMLで意味ある文字をhtmlの表示形式に変換する =

javascript、不正なsql実行等によるセキュリティーリスクを回避する。

入力されたデータは出力する直前に必ずhtmlspecialcharsを通す

Page 36: PHPカンファレンス2016 初心者セッション

htmlspecialchars<?php $new ="<a href='test'>Test</a>"; echo $new;

<?php $new ="<a href='test'>Test</a>"; echo htmlspecialchars($new,ENT_QUOTES);

http://localhost:8888/sample3.php

Page 37: PHPカンファレンス2016 初心者セッション

ファイルの読み込み

htmlの量産にも便利

Page 38: PHPカンファレンス2016 初心者セッション

require_once

<?php require_once('header.html'); require_once('body.html'); require_once('footer.html');http://localhost:8888/require.php

Page 39: PHPカンファレンス2016 初心者セッション

値を取得する

入力フォームから入力された値

$_POST

http://localhost:8888/get.php?id=123456

$_GET

Page 40: PHPカンファレンス2016 初心者セッション

値の取得

<?php echo $_GET['id']; echo $_POST['id'];

Page 41: PHPカンファレンス2016 初心者セッション

値の確認

var_dump()

Page 42: PHPカンファレンス2016 初心者セッション

これくらいわかればOK

PHPのオンラインマニュアルの充実度が凄い

PHPの歴史

言語リファレンス

Page 43: PHPカンファレンス2016 初心者セッション

実践編 世界の人口ランキングを表示するページを作って

Page 44: PHPカンファレンス2016 初心者セッション

データを探す

プログラムで扱うためにはCSVやTSVといったデータが手間を省ける

エクセルデータでもCSVには出来る

http://data.worldbank.org/data-catalog/Population-ranking-table

Page 45: PHPカンファレンス2016 初心者セッション

CSVを読み込む

関数名がわからなければとりあえず検索

Page 46: PHPカンファレンス2016 初心者セッション

fgetcsvってのが見つかった

http://php.net/manual/ja/function.fgetcsv.php

がんばって読むとわかる

わからなければサンプルを

Page 47: PHPカンファレンス2016 初心者セッション

サンプルを使ってみる

動かしてみる

http://localhost:8888/1.php

csvを差し替えると、なんか出てる

わからないところは調べる

Page 48: PHPカンファレンス2016 初心者セッション

調べてみたらfopen — ファイルまたは URL をオープンする

whileループは、PHPで最も簡単なタイプのループです。

count — 変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数える

fclose — オープンされたファイルポインタをクローズする

これを踏まえて

Page 49: PHPカンファレンス2016 初心者セッション

なんとなくわかった

Page 50: PHPカンファレンス2016 初心者セッション

色々調整してみよう

時間がないので割愛です

http://localhost:8888/fgetcsv.php

Page 51: PHPカンファレンス2016 初心者セッション

<table border=1> <?php ini_set('display_errors',1); $row = 1; if (($handle = fopen("POP.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { if($data[3]) { echo "<tr>"; echo "<td>" . htmlspecialchars($data[3],ENT_QUOTES) ."</td><td>" . htmlspecialchars($data[4],ENT_QUOTES) . "</td>"; echo "</tr>"; } } fclose($handle); } ?> </table>

Page 52: PHPカンファレンス2016 初心者セッション

完成

なんとなく出来そうな気がしませんか?

php.netを見ながら頑張ってみましょう

Page 53: PHPカンファレンス2016 初心者セッション

各地で開催されているPHPカンファレンス

Page 54: PHPカンファレンス2016 初心者セッション

懇親会

他の開発者やスピーカーと直接話すチャンス!

Page 55: PHPカンファレンス2016 初心者セッション

お勧め書籍

「いちばんやさしいPHPの教本」私が書いています。

いま何を作っているのかを考える

自分で考える力がつく

正誤表をご参考にしてくださいm(__)m

Page 56: PHPカンファレンス2016 初心者セッション

まとめPHPのマニュアルを是非活用しましょう

出力値に注意しましょう。

入門書はよく選びましょうw

怖がってはいけません

勇気を持って、インターネット上にプログラムを公開してみましょう。

Page 57: PHPカンファレンス2016 初心者セッション

とにかく書いてみる!

以上

Page 58: PHPカンファレンス2016 初心者セッション

ご静聴ありがとうございました。 カンファレンスを楽しんでください!

Page 59: PHPカンファレンス2016 初心者セッション

PHP初心者セッション有限会社アリウープ

柏岡 秀男

twitter,facebook @kashioka

Page 60: PHPカンファレンス2016 初心者セッション