デザイナー向け 初めてのphp ~サイト制作に役立つtips~

87
デザイナーさん向け 初めての PHP ~ サイト制作に役立つ Tips~ 20 回デザイン勉強会

Upload: muyuu-fujita

Post on 22-Jun-2015

1.369 views

Category:

Documents


0 download

DESCRIPTION

2013年11月22日にネスト赤羽で開催された第20回デザイン勉強会の資料です。 デザイナーさんが「これならPHPやれそうだ」と思える物になると良いなぁと思いましたがどうですかね。

TRANSCRIPT

Page 1: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

デザイナーさん向け 初めてのPHP ~サイト制作に役立つTips~

第20回デザイン勉強会

Page 2: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

自己紹介名前

所属

職種

!

!

Facebook

Blog

Mail

藤田 無憂

フリーランス

Webディレクター

Webエンジニア

講師

http://facebook.com/muyuu/

http://stackstock.net/

[email protected]

Page 3: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

スキルセットフロントエンド

端末対応

スマートフォン用サイト・Webアプリ

レスポンシブWebデザイン

サーバサイド

Page 4: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

アジェンダ• htmlとPHPの違い

• PHPでできること

• 制作が楽になるTIPS

Page 5: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

注意点

Page 6: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

注意点• 今回お話しする内容は、正確さより分かりやすさに重点を置いてます

• なので、「ホントはこれじゃダメなんだけどね」ってことも書いてたり、完璧な説明はしてなかったりです

• まずは「簡単なことからできるように」なりましょうね

Page 7: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

htmlとPHPのちがい

Page 8: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

html• テキストファイル

• 拡張子は html

• 書いた内容がそのままWebブラウザに表示される

Page 9: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHP• htmlをサーバーで生成するプログラム

• 拡張子は .php

• htmlファイルにプログラムを埋め込める

Page 10: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

サーバーで生成?

Page 11: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

Webページ表示の流れ• WebブラウザでURLにアクセス

• ブラウザは該当サーバにページくださいってお願いする

• html(とか画像とか一式)を受け取る

• Webブラウザの機能でhtmlを解析、表示

Page 12: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

通常の流れ

Page 13: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

通常の流れ

ページくれくれ①

Page 14: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

通常の流れ

ページくれくれ

ページあげるー

Page 15: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHPの場合

Page 16: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHPの場合

ページくれくれ①

Page 17: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHPの場合

ページくれくれ①

ちょっと 待ってね

Page 18: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHPの場合

ページくれくれ①

PHPをhtmlに変換②

Page 19: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHPの場合

ページくれくれ①

ページあげるよー③

PHPをhtmlに変換②

Page 20: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

基本これだけ!

Page 21: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

他にもできるけど今はいらないこと• フォームとか作れる

• 他のサイトの情報を取得する

• APIデータを自サイトに組み込める

• 画像を生成、合成する

• ファイルを圧縮する

Page 22: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

逆にできないこと• Webアプリ的な画面遷移せずに表示を変更

• タブとかカルーセルとかlightboxとか

• 「~秒後に表示させる」とかのタイマー系

Page 23: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ページを表示させるまでがPHPの仕事

Page 24: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

表示したページをどうこう するのはJavaScriptの仕事

Page 25: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHPを使ってみる

Page 26: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHPの使い方• 拡張子を .html から .php に変更

• PHPの記述をする箇所では <?php から ?> の間に

Page 27: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

デモ

Page 28: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

PHPでできること

Page 29: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

基本的なPHPの使い方• 動的に変更する必要がある箇所の制御

• 共通で使う物を一元管理

Page 30: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

表示する• <?php echo 表示させたい内容; ?>

• echo (半角スペース) の次の内容を表示する

• 文字列を表示させたい場合は文字を “ と “ の間に記述

Page 31: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

データを整理する• プログラムはデータと処理の連続

• データは名前をつけてラベル管理

• ラベルの名前を「変数名」という

Page 32: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ラベル付け(変数)• プログラムでは様々なデータを記憶しておける

• ユーザ「muyuu」の苗字とか

• 「今表示してるページのURL」とか

• 「今日の日付」とか

Page 33: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

2013年11月22日

藤田

http://phpsample.com/?user=muyuu

Page 34: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

$today

$family_name

$this_url

2013年11月22日

藤田

http://phpsample.com/?user=muyuu

Page 35: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

余談• データには種類がある数値文字列配列オブジェクト

Page 36: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ラベル付け(変数)• ラベルをつければどこでも使える

• データの値を変更したら次に使う際は変更された値に

Page 37: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ラベル付け(変数)<?php$family_name = “藤田”; echo $family_name; // 藤田 と表示される$family_name = “白井”; echo $family_name; // 白井 と表示される?>

Page 38: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

計算する

• 四則演算ができるa +b (足し算), a - b(引き算),a * b(かけ算), a / b(割り算)

• 文字と文字を足す$namae = “ふじた” . “むゆう”;

Page 39: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ• if文という仕組みがある「~な時だけ~する」という事が可能になる

• 他にも switch文というのもある今回はやめときましょう

Page 40: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } ?>

Page 41: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } ?>

もし

Page 42: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } ?>

$sum が 7 だったら

Page 43: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } ?> { から } までに書かれている事を行う

※今回なら <p>ラッキーセブン!</p> を表示

Page 44: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } else if ( $sum == 6 ) { echo "<p>惜しいね!</p>"; } ?>

Page 45: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } else if ( $sum == 6 ) { echo "<p>惜しいね!</p>"; } ?>いや、ちがくて、7じゃなくて、

Page 46: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } else if ( $sum == 6 ) { echo "<p>惜しいね!</p>"; } ?>

6だったら、

Page 47: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } else if ( $sum == 6 ) { echo "<p>惜しいね!</p>"; } ?>

<p>惜しいね!</p> を表示

Page 48: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } else if ( $sum == 6 ) { echo "<p>惜しいね!</p>"; } else { echo "<p>ちがくね!?</p>"; } ?>

Page 49: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } else if ( $sum == 6 ) { echo "<p>惜しいね!</p>"; } else { echo "<p>ちがくね!?</p>"; } ?>いや、どれでもないって場合は

Page 50: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

特定の条件の時だけ

<?php if ( $sum == 7 ) { echo "<p>ラッキーセブン!</p>"; } else if ( $sum == 6 ) { echo "<p>惜しいね!</p>"; } else { echo “<p>ちがくね!?</p>"; } ?>

<p>ちがくね!?</p> を表示

Page 51: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

繰り返し• 例えば

10個 li タグを書いて、li の中身は1~10の数値とする

Page 52: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

繰り返し• 例えば

10個 li タグを書いて、li の中身は1~10の数値とする

<ul> <li>0</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> … <li>9</li> </ul>

Page 53: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

繰り返し• 例えば

10個 li タグを書いて、li の中身は1~10の数値とする

<ul> <?php for ( $i = 0; $i < 10; $i++ ) { ?> <li><?php echo $i; ?></li> <?php } ?> </ul>

Page 54: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

繰り返し• 例えば

10個 li タグを書いて、li の中身は1~10の数値とする

<ul> <?php for ( $i = 0; $i < 10; $i++ ) { ?> <li><?php echo $i; ?></li> <?php } ?> </ul>

( から ) の条件に従って繰り返すよ!

Page 55: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

繰り返し• 例えば

10個 li タグを書いて、li の中身は1~10の数値とする

<ul> <?php for ( $i = 0; $i < 10; $i++ ) { ?> <li><?php echo $i; ?></li> <?php } ?> </ul>

$i を 0として、

Page 56: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

繰り返し• 例えば

10個 li タグを書いて、li の中身は1~10の数値とする

<ul> <?php for ( $i = 0; $i < 10; $i++ ) { ?> <li><?php echo $i; ?></li> <?php } ?> </ul>

$i が 10より小さいウチは繰り返す

Page 57: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

繰り返し• 例えば

10個 li タグを書いて、li の中身は1~10の数値とする

<ul> <?php for ( $i = 0; $i < 10; $i++ ) { ?> <li><?php echo $i; ?></li> <?php } ?> </ul>

1回繰り返す毎に $i に1を足していきます

Page 58: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

関数• データを渡すと何かしら加工してくれるもの

• イメージだと工場が近いですかねa と b を渡したら加工された c が出てくる感じ

Page 59: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

関数• データを渡すと何かしら加工してくれるもの

mb_strimwidth文字列を指定した幅で丸める関数

Page 60: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

関数• データを渡すと何かしら加工してくれるもの

mb_strimwidth文字列を指定した幅で丸める関数 !

$txt = “abcdefghijklmn”; $change_txt = mb_strmwidth( $txt, 0, 3 ); // $txt を 0文字目から3文字目までに変換 !

echo $change_txt; // abc

Page 61: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

関数を自作• 関数は自分で作る事も出来る

• 同じような処理を何度も行う場合、関数化すると管理・記述が楽になる

Page 62: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

関数を自作

<?php function add_num ( $one, $two ) { $sum = $one + $two; return $sum; } !$sum_num = add_num( 1, 3 ); echo $sum_num; // 4 ?>

Page 63: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ここまでが基本の基本

Page 64: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

これらを駆使して色々 楽することができます

Page 65: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

CASE1 コピーライトの 年表記自動更新

Page 66: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

コピーライトの年表記自動更新

<div class=“copyright”> <p>Copyright &copy; <?php echo date(“Y”); ?> muyuu</p> </div>

Page 67: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

CASE2 時間縛り表示

Page 68: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

時間縛り

<?php if ( time() >= strtotime(“2013-11-22 00:00:00") && time() < strtotime("2013-12-01 00:00:00”) ) { echo "<p>期間中です。</p>"; } else { echo "<p>期間中じゃありません。</p>"; } ?>

Page 69: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

CASE3 2階層目のディレクトリ名取得

Page 70: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

2階層目のディレクトリ取得function getSecondDir ( ) { // 今のページのルート相対パスを取得 $current_pass = $_SERVER[“REQUEST_URI"]; ! // パスの2文字目以降を取得(最初の / を削除) $dir = substr( $current_pass, 1 ); ! // 次の/が何文字目かを取得 $slashNum = strpos( $dir, '/' ); ! // 次の / 以降を削除(入ってる文字は2階層目のディレクトリ名になる) $dir = substr( $dir, 0, $slashNum ); ! return $dir; }

Page 71: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

「トップページだったら」関数

<?php function is_top () { if ( getSecondDir() ) { return false; } else { return true; } } ?>

Page 72: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

CASE4 ヘッダー、フッターの

共通化

Page 73: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ヘッダー・フッターの共通化<?php include_once ($_SERVER[‘DOCUMENT_ROOT']."/header.php"); ?> !<div class=“contentWrap”> <div class=“contentInner”>

Page 74: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

CASE5 ファイルはまとめたけど 各ページで違うテキストを

使いたい

Page 75: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ヘッダー・フッターの共通化<?php $title = “会社概要”; include_once ($_SERVER[‘DOCUMENT_ROOT']."/header.php"); ?> !<div class=“contentWrap”> <div class=“contentInner”>

■ header.php <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title><?php ehco($title. “|”); ?>共通タイトル</title> </head>

Page 76: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ヘッダー・フッターの共通化<?php $title = “会社概要”; include_once ($_SERVER[‘DOCUMENT_ROOT']."/header.php"); ?> !<div class=“contentWrap”> <div class=“contentInner”>

■ header.php <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title><?php ehco($title. “|”); ?>共通タイトル</title> </head>

Page 77: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

おまけ 拡張子が html でも

PHP が動くようにしたい

Page 78: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

.html でもPHPを動かす設定をしたいディレクトリにApacheの設定ファイルである .htaccess ファイルを置き、以下を記述する

AddType application/x-httpd-php .htm .html

Page 79: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

おわりに

Page 80: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ここで説明したことは PHPの入り口程度です

Page 81: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

しかも、普通なら入り口で必ず説明するような事でも言ってな

い事もあります

Page 82: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

でも、それでいい

Page 83: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

全てを一度に知らなくて良い

Page 84: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

わかるとこから やってみましょう

Page 85: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

プログラムは コワクナイ

Page 86: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

プログラムは 味方だよ

Page 87: デザイナー向け 初めてのPhp ~サイト制作に役立つtips~

ありがとうございました