🕛 2021.1.21 01:16

誰でも苦労せずにPHPが使えるよ。第1回 はじめまして!たった1分で立ち上がるPHPサーバー

PHPを使いこなしてWebアプリを作って稼ぎたい仕事につきたいな。

PHPは難しいのでしょうか。簡単で面白いです。

頭でっかちになってはだめです。

プログラム言語を習得するコツは、1にコードを書く、2にコードを書く、3、4休んで、5にコードを書くことです。

“Shut the fuck up and write some code”

不明

「つべこべ言ってないでコード書け」の言葉通り習うより慣れろ。

PHP学習のためにこれから何回かに分けてブログを製作していきます。

今回は、第1回目です。軽くPHPの練習をした後、簡易サーバーを立ててクライアントとサーバー通信がいかに簡単にできるか解説します。

簡単です。誰でもできます。

はじめまして!PHPの練習します!

まずPHPを扱えるようにしましょう。macの場合は、ターミナルを開いて、「php -a」と入力します。

こちらの記事をご覧ください。

オンラインエディター「paiza.io」でも同じことができます。オンラインで、書いたコードをリアルタイムで試せるエディターです。

face icon

世の中にはこんな便利なエディターがあるんですね!

文字を書いてみましょう!

定番の「Hello World!」です。下のコードと同じように打ってみましょう。

echo "Hello World";

Hello World!とでましたね。

memo
PHPは、 の間にコードを書く決まりになってます。

計算をしてみましょう!

echo 1 + 1;
echo 2 - 1;
echo 2 * 2;
echo 2 / 2;

答えが下に出てきましたね。もうわざわざ電卓をだす必要がなくなりました。

変数とはなに?

変数は、よく箱みたいなものと例えられます。

PHPの場合、ルールで変数の名前の前に「$」をつけます。

1番最初に計算した「1+1」の答えを変数、$answerに入れた後、計算をします。

$answer = 1 + 1;
echo 2 - 1;
echo 2 * 2;
echo 2 / 2;
echo $answer;
echo $answer - 1;

「echo $answer」 を打つと、「2」が出てきて、「echo $answer – 1」を打つと、「1」が出てきましたね。

変数は数を保存ができて計算に使えます。

$answer = 1 + 1;
echo $answer;
echo $answer = 3 + 3;
echo $answer;

最初の「echo $answer」では、2になって、次の「echo $answer」では、6になりましたね。

変数は中身も自由に変えることができます。代入といいます。

$answer = "答え";
echo $answer;

どうでしょうか。「答え」がでてきましたね。

変数は、数だけではなくて文字も保存できます。

まとめ
変数は、数や文字など値を保存する領域のことです。

今回の練習はこのへんまでにします。簡単でしたよね。

では、ブログを作成していきます。

1分で完了!簡単にPHPを動かすサーバーを立ち上げ!

macで説明をしていきます。

手順です。

  1. ターミナルを開きます
  2. 「blog」フォルダ作成
  3. 「blog」フォルダまで移動
  4. 「index.html」と「blog.php」作成
  5. 「php -S localhost:8000」と打ちます
  6. ChromeかSafariブラウザーを開きます
  7. アドレスバーに「localhost:8000」打ち込みます
  8. ページが表示確認して完了
#<自分のユーザー名>はご自身の環境に変えてください

#2 「blog」というフォルダをつくります
mkdir /Users/<自分のユーザー名>/Documents/blog

#3 フォルダまで移動
cd /Users/<自分のユーザー名>/Documents/blog

#4 「index.html」と「blog.php」作成
touch index.html
touch blog.php

#5 サーバー立ち上げ
php -S localhost:8000

localhost:8000 を開くと真っ白いページがでてきましたか。OKです。あっという間にサーバーが立ち上がりました!

index.htmlに入力フォームをつくる

「blog」フォルダ内の「index.html」を編集してみましょう。

標準のテキストエディターは編集しにくいので、mi – テキストエディタ をインストールしましょう。

インストールできましたでしょうか。miで、index.htmlを開きます。

最初なにも書いていないので、次のコードを入れて保存してください。

<html>
<head>
<title>blog</title>
</head>
<body>
<h1>はじめまして!ブログ!</h1>
<form action="./blog.php" method="post">
<input type="text" name ="title"><br>
<input type="submit" value="送信">
</form>
</body>
</html>
<form action="./blog.php" method="post">

POSTは、HTTPメソッドと言われる通信方式の一つです。postという通信方式でサーバーに送りますということです。

localhost:8000 を開いてみてください。

ブログの最初の画面ができました!

PHPで入力フォームからデータを受け取る

ブラウザーとサーバーで通信をやり取りします。

htmlの入力フォームから送信されたデータをPHPで受け取ってみましょう。

次のコードを書いて保存して下さい。

<?php

$title = $_POST['title'];
echo $title;

?>

HTTPメソッド POSTという通信方式で送られてくるので、$_POST[‘title’]と書いてデータを受け取り、$title変数に入れます。

localhost:8000 を開いて入力フォームに「楽しい!PHPでブログ制作!」と入力して送信を押してみてください。

「楽しい!PHPでブログ制作!」とでてきましたね。

HTTP通信

HTTP通信のイメージ

ブラウザー(クライント)でURLを入れてサーバーに「HTTPリクエスト」を送り、サーバーは、クライアントへ「HTTPレスポンス」返してます。

簡単にいうと、クライアントがサーバーにこのURLのページを見せるように頼み、サーバーはページの内容をクライアントに送りました。

試してみましょう
実際にHTTPリクエストを見てみましょう。
Chromeを開いて、http://localhost:8000にアクセスします。
[検証]-[Network]をクリック
blog.phpをクリック
headersをクリック

RequestとReponseが表示され、view sourceをクリックすると、それぞれHTTPリクエストとHTTPレスポンスを確認することができます。

POSTとGET

先程、POSTで文字をクライアント(ブラウザー)からサーバーに送りました。

POSTは、サーバーにデータが届いた後、データベース等リソースの内容を変更する場合に使用します。

GETというHTTPメソッドもあり、サーバーのリソースから単に情報を得る場合に使用します。

例えば、web検索でデータベースの情報を引き出す場合はGETを使用します。

今回は、データベースに投稿内容を登録するので、POSTで通信します。

PHPで入力データを変えてみる

PHPでデータを受け取った後、PHP関数で、文字を変えてみましょう。

「楽しい!」を「面白い!」に変更します。

「str_replace」という関数を使います。

PHP: str_replace – Manual

blog.phpを次のコードに変更してください。

<?php

$title = $_POST['title'];
$title = str_replace("楽しい", "面白い", $title);
echo $title;

?>

localhost:8000 を開いて入力フォームに「楽しい!PHPでブログ制作!」と入力して送信を押してみてください。

「面白い!PHPでブログ制作」に変わったと思います。

PHPは、簡単で楽しいですね。

今回は以上です。

本格的にPHP学びたいという場合は、スクール受講おすすめします。今回解説したあたりでしたら、はじめてのプログラミングコース とかです。

まとめ

変数は値を保存ができ、中の値も変えることができる箱のようなものです。

ターミナルで、「php -S localhost:8000」 と打てば、あっという間にサーバーがたちあがります。

htmlで入力データを受け付け、PHPは受け取ったデータを処理します。

次回は、PHPで受信したデータをいろいろ加工してみたいと思います。

最後までお読みいただいて、ありがとうございます。

Photo by Business photo created by 8photo – www.freepik.com

プロフィール

プログラマー歴20年の管理人がプログラミング、ブロックチェーンなどの話題に書いていきます。>>続く