[Powered by Google Translate] [PHPによるWeb開発] [トミーM​​acWilliam] [これはCS50である。] [CS50.TV] このビデオでは、Web開発のためのPHPを使用する方法について学習します。 PHPを実装するために使用することができるスクリプト言語である Webサーバー上のWebサイト。 Webサーバは、基本的にコンテンツを提供することに専念してマシンです それは、インターネットを介してアクセスすることができます。 あなたがFacebook.com / home.phpのようなWebページに移動すると どこかにFacebookのWebサーバ上に住んhome.phpというファイル内のコード そのサーバー上で実行されます。 このコードは、おそらくいくつかの出力を生成します これは次に、サーバから送信されます Webブラウザへ。 私たちは、WebサーバーとしてCS50アプライアンスを使用することがあります。 あなたのマシンは、おそらくマシンほど強力ではありません Facebookのデータセンターにはできますが、Web開発のためにそれを使用して何の問題もないでしょう。 我々はhttp://localhost/hello.phpのようなURLに移動すると 我々は、Apache HTTPサーバと呼ばれるアプリケーションを介してアプライアンスを設定する デフォルトでは、ホーム/ jharvard /バーチャルホスト/ localhosts / HTML内hello.phpというファイルを探します。 そのファイルが存在する場合、ApacheはPHPインタプリタを使用します hello.phpでPHPコードを実行します。 そのファイルが存在しない場合は、Apacheは見つからないというエラーがスローされます またはWebの閲覧中に、あなたはおそらく見てきた404エラー、。 それではhello.phpを見てみましょう。 私たちは、hello.php、出力の信号線を生成することをここに見ることができます。 我々は、PHPのhello.phpを経由してコマンドラインでhello.php実行したとき その出力は端末に印刷した。 今、我々は、WebブラウザでURLを経由してこのファイルにアクセスするとき その出力は、ウェブブラウザに送信される そうhttp://localhost/hello.php、URLに向かって、 当社は、当社のWebブラウザに出力を見ることができます。 私たちのハローワールドプログラムに別のprintfを追加してみましょう。 さて、Webブラウザに戻って頭と、我々が持っているものを見てみましょう。 興味深い。 むしろあなたが見ていると同じよう、独自の行に別の行を印刷するよりも それは、同じ行にsmushed得たように端末では、それが見え 他のprintfのように、そうかもしれない新しい行は、PHPで動作しません。 はなく、かなり。 HTMLは、典型的には、ウェブページを作成するために使用されることを思い出してください すなわち、Webブラウザで表示することができる。 だけでなく、文字列は、PHPではない有効なHTMLからhelloあり、 しかし、我々は、HTML内の\ n文字を使用することはできませんことを思い出して 改行を作成します。 代わりに、単純に文字列レッツ出力有効なHTMLを出力する。 段落タグ、当社のprintf呼び出しのそれぞれを使用して、 独自の行に表示され、 だから今、我々はvalid.phpを参照するURLにアクセスしたとき http://localhost/valid.php 我々は我々が探しているの出力を参照してください。 今、私たちは、このページのソースを表示すると 我々は現在、有効なHTMLを見ていることがわかります、 その我々は、PHPから作成された。 printf関数呼び出しの中に私たちのすべてのHTMLを入れて もちろん本当に迷惑取得する予定です。 幸いにも我々は簡単にHTMLとPHPを混在させることができます 同じ。phpファイル内。 覚えておいて、私たちのPHPコードのすべてが<?PHPで囲む必要があります と?>。 これらの区切り記号で囲まれていないものは 単にブラウザへの出力として送信されます は、実行されず。 それは我々がこのような何かをできることを意味します。 私たちは、単に私たちの。phpファイル内のHTMLを書くことができます 我々はいくつかのPHPコードを実行するしたいのですがどこにしてから、PHPブロックを挿入します。 ここでは、ファイルの先頭にいくつかの変数を定義する そして後に我々は我々のHTMLの中にそれらをプリントアウト。 今、我々はこのURLにアクセスすると、http://localhost/mixed.php 私たちは、HTMLの中に私達の評価され、PHPを見ることができます。 それでは、私たちは、データを渡す方法を見てみましょう 私たちの様々なPHPページの中で。 むしろ言うより 我々は、単に言う<?=我々が印刷したいのですが、変数、または、することができます と?>。 それでは我々は、データを渡す方法を見てみましょう 私たちの様々なPHPページの中で。 我々はそれを行うことができる一つの方法は、ページのURLに情報を符号化することである。 Webをブラウズするときは、そのいくつかのURLを気づいているかもしれません 含まれている?アンパサンドと等号を含む文字列が続く。 、URLのこの部分は、クエリ文字列として知られており、 これはあなたが効果的にあなたのPHPスクリプトに引数を渡すことができます。 クエリ文字列は、単に、ハッシュテーブルのようなキーと値のペアで構成されます。 等号は、キーとそれに対応する値を区切る アンパサンドは、ペアを分離している。 http://localhost/get.php?foo=bar&baz=quxのように見えるのURL クエリ文字列内の2キーと値のペアを持っています。 キーfooは、値バーにマップ とキーバズは、値くんぬんにマッピングされます。 我々は簡単に、PHPで特別な変数を使用して、これらのキーと値のペアにアクセスすることができます $ _GET。 $ _GETは連想配列である つまり、クエリ文字列データが自動的に入力されます。 つまり、このURLの$ _GET ["foo"を]与えられたことを意味します 文字列のバーと同じになります。 それではアクションで$ _GETを見にget.phpを見てみましょう。 ここでは、正確に知りたいという関数を使用している、 その配列または他​​の変数を与えられたとき、 私たちのためにそれをプリントアウトします。 今、私たちは単純にアクセスする場合はhttp://localhost/get.php 我々は、クエリ文字列を提供していないので、我々は、空の配列が表示されます。 我々はhttp://localhost/get.php?foo=bar&baz=qux経由でクエリ文字列を提供する場合 その後、我々は$ _GET変数が含まれていることがわかります クエリ文字列のキーと値のペア。 しかし、我々は、ページのURLの中に我々のデータを入れて何をしたくない場合はどうなりますか? 大量のデータの場合、これは、かなり醜いのURLをもたらすことができる それが私たちの光沢のあるウェブサイトのルックラメを作るしようとしている。 私たちは、代わりに体内にクエリ文字列を入れることができます HTTPリクエストではなく、要求のURLの。 その後、我々は、PHPの$ _POST変数を使用することができます キーと値のペアにアクセスします。 これを行う1つの方法は、HTML形式を介して行われる。 ここでは、簡単なHTMLフォームを持っている。 このフォームのmethod属性がポストであることに注意してください。 これは、フォームのキーと値のペアを入れてブラウザに指示 要求ではなく、URLの体内に。 私たちは、この属性の値は、getを使用した場合 その後、フォームのキーと値のペアではなく、クエリ文字列に行くと、 私たちは再び$ _GETを介してそれらにアクセスすることができました。 フォームのaction属性はどこにデータを送信するようにブラウザに指示します。 ここに私たちの2入力要素は、name属性を持っている。 name属性の値は、私たちのデータにキーとして機能します とテキスト入力の値は、それらのキーの値になります。 それでは、post.phpを見てみましょう、 このフォームに提出されたファイル。 我々は以前と同じように、我々は単純に$ _POST変数の内容を表示している。 それではhttp://localhost/form.phpでフォームに移動しましょう​​。 我々は、フォームを送信するとき今、私たちは、form.phpからのデータを見ることができます URLにクエリ文字列を追加することなく、post.phpに渡されます。 今、私たちは、PHPのページ間でデータを受け渡すの2種類の方法を見てきました GETとPOST。 我々の例では、HTTP要求の2つの異なったタイプを使用した。 ご想像のとおり、我々は人口とき、GETリクエストを使用した URL、およびPOSTリクエストからの$ _GETを使用した ときに我々は、$ _POSTを移植されます。 お使いのWebアプリケーションを設計する際には、GETリクエストを使用するように経験則だ あなたのアプリは、データの読み取り、およびPOSTリクエストいつ ときにアプリがデータを書き込みます。 たとえば、検索クエリは、あなたのアプリケーションからデータを読み取りますが、 そのGETリクエストは、理にかなっている。 一方、あなたのアプリケーションは、登録フォームのようなものを介してデータを書き込みます、 そのPOSTリクエストは、より理にかなって、それは技術のいくつかの概要です 私たちは、PHPを使用してウェブサイトを作成するためにCS50に使うことになるでしょう。 私の名前はトミーであり、これはCS50である。 [CS50.TV]