1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [週8] 2 00:00:02,000 --> 00:00:04,000 [デビッド·Jマラン] [ハーバード大学] 3 00:00:04,000 --> 00:00:07,000 [これはCS50です。] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> お帰りなさい。 5 00:00:09,000 --> 00:00:11,000 これはCS50であり、これは第8週の始まりです。 6 00:00:11,000 --> 00:00:14,000 機会のカップル今週、 7 00:00:14,000 --> 00:00:17,000 その中でここでこの話は、その時にいくつかの食品が提供されます。 8 00:00:17,000 --> 00:00:20,000 詳細については、オンラインになっているスライドをチェックアウト。 9 00:00:20,000 --> 00:00:24,000 そしてまた、私たち自身のトーマスCarrieroによって別のイベント今週。 10 00:00:24,000 --> 00:00:27,000 彼は、DropboxのになりましたCS50の元ヘッドティーチングフェローの一つだ 11 00:00:27,000 --> 00:00:29,000 そして彼は、あなたが何を知っていると私たちを夢中に男だ 12 00:00:29,000 --> 00:00:36,000 あなたがDropboxと詳細については、この日の午後彼らの話にその頭のもっとしたいので、もし。 13 00:00:36,000 --> 00:00:38,000 CS50ランチは今週の金曜日です。 14 00:00:38,000 --> 00:00:41,000 あなたは火と氷で、いつものように、1時15分、できましたらご参加ください。 15 00:00:41,000 --> 00:00:45,000 >> そして今、我々はセミナーと呼ばれる何かに飛び込む。 16 00:00:45,000 --> 00:00:49,000 当社CS​​50セミナー、リコールは、ティーチング·フェロー率いるこれらのオプションのクラスです 17 00:00:49,000 --> 00:00:51,000 もちろん、もちろんアシスタントや友人、 18 00:00:51,000 --> 00:00:55,000 のグループであるABCDと呼ばれるキャンパスのグループからの人々 19 00:00:55,000 --> 00:00:58,000 キャンパスでtechnophilesならびにHCSと呼ばれるグループ、 20 00:00:58,000 --> 00:01:02,000 ハーバードコンピュータ協会、同様のコンピューティングに興味を持っている大学生。 21 00:01:02,000 --> 00:01:08,000 セミナーの今年の名簿には、AndroidとiOSとJavaScriptに関するセミナーが含まれています 22 00:01:08,000 --> 00:01:13,000 とPHPは、Unix、Vimは、よりので、これらのセミナーが予定されていることを認識しています。 23 00:01:13,000 --> 00:01:16,000 あなたがのためのRSVPを希望される場合は、それらのいずれかが存在し、そのURLへ向かいます。 24 00:01:16,000 --> 00:01:20,000 彼らが確定されれば、我々はその後、コースのウェブサイト上で時間と場所を掲示します。 25 00:01:20,000 --> 00:01:26,000 しかし、使用可能な事前のオンラインセミナーのそこの5年間の価値を知っている 26 00:01:26,000 --> 00:01:29,000 それらの多くはあなたが可能性がある技術の面でまだ非常に現在のものです 27 00:01:29,000 --> 00:01:36,000 あなたの最終的なプロジェクトのためにプレーしたいので、そのいくつかの利用可能なビデオのためにそこに向かう。 28 00:01:36,000 --> 00:01:39,000 >> CSSは、すでにCSSに精通しているあなたの人々、 29 00:01:39,000 --> 00:01:42,000 一言で言えば、それは何ですか? 30 00:01:42,000 --> 00:01:45,000 CSSとは何ですか? 31 00:01:45,000 --> 00:01:48,000 それは、カスケーディングスタイルシートだし、それが何を意味するのか? 32 00:01:48,000 --> 00:01:53,000 それは、私たちのためにCSSを何をしますか? 33 00:01:53,000 --> 00:01:57,000 すべての権利は​​、のは簡単1、HTMLハイパーテキストマークアップ言語でウォームアップします。 34 00:01:57,000 --> 00:02:01,000 それが私たちのために何をしますか? 35 00:02:01,000 --> 00:02:04,000 まったく誰ですか? 36 00:02:04,000 --> 00:02:07,000 それは、これらの質問を本当に厄介になってきている。 37 00:02:07,000 --> 00:02:11,000 HTML、ハイパーテキストマークアップ言語。 38 00:02:11,000 --> 00:02:14,000 はい?いいえ? 39 00:02:14,000 --> 00:02:17,000 [聞き取れない生徒の応答] 40 00:02:17,000 --> 00:02:20,000 さて、良い、それは私たちがWebブラウザに表示するテキストをマークアップすることができます。 41 00:02:20,000 --> 00:02:22,000 それは、プログラミング言語ではありません。 42 00:02:22,000 --> 00:02:25,000 それは確かにそれが表示する方法をブラウザに指示意味のマークアップ言語です 43 00:02:25,000 --> 00:02:28,000 情報は、我々が見てきたように、このように最も簡単なの化身 44 00:02:28,000 --> 00:02:32,000 boldfacingような何か超シンプルですが、オープンブラケットbはブラケットと言う閉じた 45 00:02:32,000 --> 00:02:36,000 このテキストを太字にすると、それだけで実際には多くの方法の1つです 46 00:02:36,000 --> 00:02:39,000 我々は確かにそれを行う、とのできる、これらの日より良いアプローチ 47 00:02:39,000 --> 00:02:42,000 物事は太字や斜体作り、あなたのWeb​​ページをスタイに 48 00:02:42,000 --> 00:02:47,000 そして中心に、正当化などが挙げられ、単独でHTMLタグを介して行われていません 49 00:02:47,000 --> 00:02:51,000 むしろ、CSSと呼ばれる技術では、カスケーディングスタイルシート。 50 00:02:51,000 --> 00:02:53,000 これはそれ自体が言語です。 51 00:02:53,000 --> 00:02:55,000 それはあまりにもプログラミング言語ではありませんが、 52 00:02:55,000 --> 00:02:58,000 誰もが、これが今日の私たちに参加保ちダンです。 53 00:02:58,000 --> 00:03:01,000 いくつかの技術的な難しさ。問題ありません。 54 00:03:01,000 --> 00:03:04,000 >> CSSは、私たちがページを型にはめることができます 55 00:03:04,000 --> 00:03:07,000 プロパティと呼ばれるものを設定することで、それでは、これを見てみましょう 56 00:03:07,000 --> 00:03:09,000 基本的な例をいくつかの方法で。 57 00:03:09,000 --> 00:03:12,000 私は今日アプライアンスに行こう。 58 00:03:12,000 --> 00:03:15,000 私は、ここでソース8月曜日のディレクトリを持って 59 00:03:15,000 --> 00:03:18,000 と私は、全体の束を持っているCSSというディレクトリに行くつもりです 60 00:03:18,000 --> 00:03:21,000 右ここに私達を待っているファイルの、 61 00:03:21,000 --> 00:03:27,000 そしてこのフォルダ内に、我々は、例えば、前回からsearch0.htmlを持っています。 62 00:03:27,000 --> 00:03:31,000 今、私たちがこのノートに残さsearch0とリコール 63 00:03:31,000 --> 00:03:35,000 一週間ほど前にGoogleや本当にそれだけのためにフロントエンドを実装するための並べ替え、 64 00:03:35,000 --> 00:03:38,000 そして我々はそこにいくつかの新しいタグを持っていたことに気づく。 65 00:03:38,000 --> 00:03:41,000 私たちは、大きな、大胆な見出しのh1を持っていた 66 00:03:41,000 --> 00:03:45,000 私たちは実際にユーザ入力用のHTMLフォームを持つことを許さフォーム、。 67 00:03:45,000 --> 00:03:48,000 アクション、action属性の意味は何だった 68 00:03:48,000 --> 00:03:52,000 HTMLのformタグに? 69 00:03:52,000 --> 00:03:58,000 この、行動の意味は何でしたか? 70 00:03:58,000 --> 00:04:00,000 私は、今日はこれだけやる。 71 00:04:00,000 --> 00:04:03,000 アクションは、フォームが送信されようとしている場所へのデスティネーションです。 72 00:04:03,000 --> 00:04:07,000 言う事実アクション= "google.com /検索" 73 00:04:07,000 --> 00:04:10,000 ユーザーがクリックしたときに、ボタンまたは同等のものを提出することを意味します 74 00:04:10,000 --> 00:04:14,000 どんなフォーム彼らは記入しないフィールドが当社のサーバーに送信しようとしている 75 00:04:14,000 --> 00:04:17,000 または当社のアプライアンスではなく、Googleのその特定のURLへ。 76 00:04:17,000 --> 00:04:19,000 そして、それは使用するために起こっているメソッドは、取得と呼ばれ 77 00:04:19,000 --> 00:04:25,000 そして、今のところ、ちょうどWebサーバに沿った情報を渡すための技術であり、取得 78 00:04:25,000 --> 00:04:29,000 URLを使用して、それでは、どのようにこの作品で戻って簡単に見てみましょう。 79 00:04:29,000 --> 00:04:31,000 >> 名前はqである入力があることに注意してください 80 00:04:31,000 --> 00:04:35,000 提出してから、テキスト型の第二の入力を持つタイプです 81 00:04:35,000 --> 00:04:39,000 その値は、CS50検索であり、確かに、我々はここで、このファイルを開く場合は、 82 00:04:39,000 --> 00:04:42,000 sea​​rch0.html、それが超簡単な形ですが、 83 00:04:42,000 --> 00:04:45,000 とコンピュータ科学のような何かのために、私が検索した場合 84 00:04:45,000 --> 00:04:50,000 と入力し、EnterまたはCS50検索をクリックして打つ 85 00:04:50,000 --> 00:04:53,000 何が起こるかGoogleになって超えていることに気付く 86 00:04:53,000 --> 00:04:56,000 私は具体的には、上部に次のURLにアクセスしてしまった 87 00:04:56,000 --> 00:05:01,000 google.com /索?Q =コンピュータ+科学、 88 00:05:01,000 --> 00:05:04,000 と計算機科学は、私が入って入力した内容は明らかにされ 89 00:05:04,000 --> 00:05:06,000 +はちょうど空白文字があったところであることを意味 90 00:05:06,000 --> 00:05:10,000 そしてそれはちょうどノーがあることを確認するためにブラウザで行うの 91 00:05:10,000 --> 00:05:13,000 実際のURLの混乱と空白。 92 00:05:13,000 --> 00:05:15,000 そして、Qはもちろん、パラメータ名です。 93 00:05:15,000 --> 00:05:20,000 我々は、プログラマが、まだ実際にはqをアクセスする方法を見ていない。 94 00:05:20,000 --> 00:05:23,000 我々は、Googleがここにこれをどのように処理するかを知っていると仮定することができます 95 00:05:23,000 --> 00:05:25,000 しかし、我々は今日が期限内にあり得るでしょう。 96 00:05:25,000 --> 00:05:30,000 >> しかし、私はsearch1.htmlではなく見てみましょう 97 00:05:30,000 --> 00:05:34,000 これは私がここでこの形がほんの少しラメであると判断しましたので、多少異なって見えます。 98 00:05:34,000 --> 00:05:36,000 私が言いたいのは、それが左上にあります。 99 00:05:36,000 --> 00:05:40,000 そこには美学はそれに本当にありません、ので、私はこれを型にはめるたい 100 00:05:40,000 --> 00:05:43,000 より多くのホームページにGoogleのようなビット、リコール、 101 00:05:43,000 --> 00:05:47,000 あなたはそれを頻繁に訪問しないかもしれませんが、ハロウィンに、今日、このように見えます。 102 00:05:47,000 --> 00:05:53,000 我々は、代わりにこのファイルは、検索1.htmlをのバージョン1を開けば、私はそれを中心としてきました。 103 00:05:53,000 --> 00:05:57,000 まだかなり醜いが、少なくとも今のところ、私はこのページの美学を制御するために始めた、 104 00:05:57,000 --> 00:06:00,000 だけではなく、そのマークアップする。 105 00:06:00,000 --> 00:06:04,000 の検索1を見てみましょう、とただ一つの違いは、ここでは本当にあり、 106 00:06:04,000 --> 00:06:06,000 それは、あなたに飛び出す、またはそうでないかもしれないかもしれない 107 00:06:06,000 --> 00:06:11,000 その差の1行またはスニペットは何ですか? 108 00:06:11,000 --> 00:06:14,000 >> このスタイルの属性がありますので、それが判明し、そのHTML内の 109 00:06:14,000 --> 00:06:19,000 ほとんどの要素は、ほとんどのタグは、それらのスタイル属性を持つことができます 110 00:06:19,000 --> 00:06:23,000 そのスタイル属性の内部、引用符で囲んだ文字列です 111 00:06:23,000 --> 00:06:26,000 その引用符で囲まれた文字列はCSSです。 112 00:06:26,000 --> 00:06:29,000 あなたはそこにカスケーディング·スタイル·シートを置くことができます 113 00:06:29,000 --> 00:06:32,000 プロパティ名として指定することにより 114 00:06:32,000 --> 00:06:34,000 値は、コロン。 115 00:06:34,000 --> 00:06:37,000 これは何年か前に不幸な設計上の決定の一種である 116 00:06:37,000 --> 00:06:40,000 CSSは、それ自体が言語であること、 117 00:06:40,000 --> 00:06:43,000 しかし、文法的には、HTMLとは非常に異なるです。 118 00:06:43,000 --> 00:06:46,000 この場合において、我々は、HTMLで書かれている私のウェブページのその内部を見る 119 00:06:46,000 --> 00:06:51,000 私はこれらの引用符の内部CSSを持っており、CSSの規則 120 00:06:51,000 --> 00:06:55,000 あなたが続く財産、再び、コロン、と呼ばれるものを持っているということです 121 00:06:55,000 --> 00:06:58,000 そのプロパティの値が続くので、どんな等号はありません。 122 00:06:58,000 --> 00:07:00,000 追加の引用符がありません。 123 00:07:00,000 --> 00:07:03,000 それは、ちょうどこのコロンで区切られたキーと値のペアです 124 00:07:03,000 --> 00:07:05,000 とテキスト行は、それが言う正確に行います。 125 00:07:05,000 --> 00:07:09,000 それは、本当にページの根性あるページの本文にテキストを揃え 126 00:07:09,000 --> 00:07:11,000 中心部にあります。 127 00:07:11,000 --> 00:07:13,000 >> さて、最終的な結果は、その後、明確にすること、これである。 128 00:07:13,000 --> 00:07:17,000 すべてではないことをセクシーだが、少なくともそれをセンタリングして本物のGoogleのような、もう少しだ。 129 00:07:17,000 --> 00:07:21,000 しかし、私はこれに代えてバージョン2に何を開く場合 130 00:07:21,000 --> 00:07:25,000 と完全にダウンしてここに新たなタグを指摘? 131 00:07:25,000 --> 00:07:30,000 今では、以前はタグを持っていた私のページの頭で 132 00:07:30,000 --> 00:07:32,000 以前のすべての例では? 133 00:07:32,000 --> 00:07:34,000 それはちょうど、タイトルがこれを持っていた。 134 00:07:34,000 --> 00:07:38,000 少し前にheadタグはこのように見えた。 135 00:07:38,000 --> 00:07:40,000 今ではなく、それはそれの内のスタイルタグを持って、 136 00:07:40,000 --> 00:07:44,000 これはあまりにも、私は謝罪、構文的には、HTMLと非常に異なって見える 137 00:07:44,000 --> 00:07:47,000 しかし、あなたはそれによって内部のスタイルタグの、それに慣れる 138 00:07:47,000 --> 00:07:50,000 私は今、少し前に何であったかを考慮することができます 139 00:07:50,000 --> 00:07:54,000 属性、style属性、と私は私のページの最上部にそれを置くことができます。 140 00:07:54,000 --> 00:07:56,000 >> なぜですか? 141 00:07:56,000 --> 00:08:00,000 まあ、これは、Cのコードを書くことに多くのように、物事をクリーンアップの第一歩です 142 00:08:00,000 --> 00:08:04,000 我々は時々、共通の機能をくくり出すための関数を記述します。 143 00:08:04,000 --> 00:08:07,000 それだけで美学のようなものファクタリングアウトを開始する少しクリーナーです 144 00:08:07,000 --> 00:08:11,000 むしろあなたのHTML全体のすべてまき散らすそれを有する複数の中央の場所にコピーします。 145 00:08:11,000 --> 00:08:14,000 これは、あまりにも新しい構文のビットがあるにもかかわらず、それが言うことありません。 146 00:08:14,000 --> 00:08:19,000 これはここにセレクタであり、本体は本体だけの要素を選択することを意味します 147 00:08:19,000 --> 00:08:21,000 し、次のプロパティを適用します。 148 00:08:21,000 --> 00:08:23,000 さて、プロパティはまったく同じです。 149 00:08:23,000 --> 00:08:25,000 良い測定のために私は、末尾にセミコロンを追加しました 150 00:08:25,000 --> 00:08:29,000 どの大会になる傾向がある、と私はこの全体のプロパティをまとめました。 151 00:08:29,000 --> 00:08:33,000 中括弧でいるので、私は実際にここで別のものを持っている可能性があります。 152 00:08:33,000 --> 00:08:39,000 私は実際に色とか言うことができる:青; 153 00:08:39,000 --> 00:08:42,000 >> さて、これはすべてのことあまりにもきれいに何の第一歩になることはない、 154 00:08:42,000 --> 00:08:47,000 しかし、私は今のバージョンに戻す場合は2私は、少なくとも今私の身体を作った 155 00:08:47,000 --> 00:08:49,000 ページのテキストすべて青。 156 00:08:49,000 --> 00:08:51,000 それは入力だからボタンは同じままです。それは純粋なテキストではありません。 157 00:08:51,000 --> 00:08:56,000 しかし、トップアップCS50検索のように、テキストである他のすべては、実際に青になっています。 158 00:08:56,000 --> 00:09:01,000 繰り返しますが、我々が今やったすべては、bodyタグからの通知を削除している 159 00:09:01,000 --> 00:09:04,000 style属性、そして我々はここで因数分解し、それをしました。 160 00:09:04,000 --> 00:09:08,000 これは大きな改善はありませんが、我々はさらにこれを一歩進めた場合 161 00:09:08,000 --> 00:09:10,000 我々はここで、この第三版では何ができるかに注目してください。 162 00:09:10,000 --> 00:09:14,000 >> sea​​rch3.htmlでWebページはほとんど同じです 163 00:09:14,000 --> 00:09:17,000 今、何が新しいタグを除いて? 164 00:09:17,000 --> 00:09:20,000 リンクなので、この1つは非常に適切に名付けされていません 165 00:09:20,000 --> 00:09:24,000 あなたは、クリック可能なハイパーリンクの意味でリンクしていないので。 166 00:09:24,000 --> 00:09:28,000 むしろ、C言語での#includeに相当するものをやって一種のだ 167 00:09:28,000 --> 00:09:31,000 それによってhref属性を持つリンクタグ 168 00:09:31,000 --> 00:09:34,000 とrel属性は、先に行くと言う 169 00:09:34,000 --> 00:09:39,000 そしてコピーは本質的に、右ここsearch3.cssというファイルの内容を貼り付けます。 170 00:09:39,000 --> 00:09:42,000 それはかなりのことをしませんが、それはそれの精神だ。 171 00:09:42,000 --> 00:09:45,000 、search3.css、そのファイルを開いて行くそれを言う 172 00:09:45,000 --> 00:09:49,000 そして、ユーザーがページの頭の中で右ここでそれを入力したかのようにそれを扱う 173 00:09:49,000 --> 00:09:51,000 私は、前の例で行ったように。 174 00:09:51,000 --> 00:09:54,000 Search3.cssは、一方で、非常に単純です。 175 00:09:54,000 --> 00:09:58,000 それは本当にちょっと前だったかを正確に含まれています 176 00:09:58,000 --> 00:10:03,000 styleタグで、しかし、私は独自のファイルにそれをここに織り込ん出てきました。 177 00:10:03,000 --> 00:10:07,000 >> 私たちは、HTMLやWebプログラミングですべてで多くの時間を費やしていないにもかかわらず 178 00:10:07,000 --> 00:10:11,000 ただ直感的に動機がファクタリングのため、おそらく、何がアウト 179 00:10:11,000 --> 00:10:14,000 独自のファイルにあっても、CSSのこの小さな断片 180 00:10:14,000 --> 00:10:19,000 し、ここで、このリンクタグを使用して、それを含めて? 181 00:10:19,000 --> 00:10:21,000 [聞き取れない生徒の応答] 182 00:10:21,000 --> 00:10:25,000 さて、それはあなたがCSSファイルにCSSを持っているという意味で読みやすいです。 183 00:10:25,000 --> 00:10:28,000 あなたのHTMLファイルでHTMLを持っているので、その意味で読みやすい。 184 00:10:28,000 --> 00:10:30,000 他に何が魅力的になるのでしょうか?うん。 185 00:10:30,000 --> 00:10:32,000 [聞き取れない生徒の応答] 186 00:10:32,000 --> 00:10:35,000 ええ、そう、あなたがそれを何回も含めることができますので、今私たちは、これらをやっている 187 00:10:35,000 --> 00:10:38,000 個々のファイルの基本的な例ですが、あなたが実際に作っていると仮定 188 00:10:38,000 --> 00:10:42,000 あなたのような本物のウェブサイトは、PSET 7または多分あなたの最終的なプロジェクトの意志 189 00:10:42,000 --> 00:10:45,000 そしてあなたは確かに一般的であるように、複数のWebページを持ちたい 190 00:10:45,000 --> 00:10:48,000 実際のワールド·ワイド·ウェブ(WWW)、そして、それはラメのようなものであろう 191 00:10:48,000 --> 00:10:52,000 同じ青色のコピーと貼り付けを持っている 192 00:10:52,000 --> 00:10:56,000 と同じテキストは、それらのページの一つ一つに中心を揃え。 193 00:10:56,000 --> 00:10:59,000 むしろそれは、我々はC言語でやったのと同じように、睨むより理にかなっている 194 00:10:59,000 --> 00:11:02,000 hファイルで、1か所に置き、 195 00:11:02,000 --> 00:11:06,000 この場合search3.cssにして、任意のファイルを許可 196 00:11:06,000 --> 00:11:11,000 あなたのウェブサイトで実際にここ16行目で、このタグを経由して、そのファイルを含めることができます。 197 00:11:11,000 --> 00:11:14,000 一般的なケースとして、私たちは、バージョン0で開始作品のどの種類 198 00:11:14,000 --> 00:11:18,000 しかし、最善のは必ずしも、各作業段階と、それにされていません 199 00:11:18,000 --> 00:11:21,000 検索1、検索2、今検索3私たちは、これらの赤ちゃんの歩を踏み出しました 200 00:11:21,000 --> 00:11:26,000 少しクリーナーであり、より多くの準備なデザインに向かって 201 00:11:26,000 --> 00:11:30,000 我々は道をやるかもしれないという、より複雑なページのために。 202 00:11:30,000 --> 00:11:33,000 >> 私はただ見せるにはここを最後の一例を開いてみましょう 203 00:11:33,000 --> 00:11:36,000 さらに定型化されたページが、最初のHTMLを見てみましょう。 204 00:11:36,000 --> 00:11:41,000 これはsearch4.htmlであり、構造的にはほぼ同じだということに気づく 205 00:11:41,000 --> 00:11:44,000 新しいタグの導入のための点を除いて、div。 206 00:11:44,000 --> 00:11:48,000 divはページの分割を紹介タグです。 207 00:11:48,000 --> 00:11:51,000 あなたは、目に見えない長方形と考えることができます。 208 00:11:51,000 --> 00:11:54,000 これは、種のウェブページ内の領域の帯状を作成 209 00:11:54,000 --> 00:11:56,000 あなたは、一度にすべてを型にはめることができます。 210 00:11:56,000 --> 00:11:58,000 私がここでやったことは次のとおりです。 211 00:11:58,000 --> 00:12:01,000 すべてに沿ってあった私のbodyタグの内部では、 212 00:12:01,000 --> 00:12:05,000 私は、47を介してライン45を介してここにページの分割を作成して言っている 213 00:12:05,000 --> 00:12:09,000 それは本質的に私にページの上部に沿って目に見えない矩形を与えることを意味します。 214 00:12:09,000 --> 00:12:14,000 その後、以下、私には見えないとはいえ2つ目の四角形を、与えること、 215 00:12:14,000 --> 00:12:16,000 そして、最後に、名前の内容によってそれを識別し、 216 00:12:16,000 --> 00:12:19,000 私の一番下にあるページの第三師団を与える 217 00:12:19,000 --> 00:12:21,000 IDと呼ばれる。 218 00:12:21,000 --> 00:12:23,000 私は一瞬でこれをやった理由は我々が表示されます、 219 00:12:23,000 --> 00:12:26,000 しかし、概念的私はヘッダ部門を持っています。 220 00:12:26,000 --> 00:12:30,000 私は、コンテンツ部門を持っている、と私はページのフッター部門を持っている 221 00:12:30,000 --> 00:12:32,000 これらは単なるマークアップであるにもかかわらず。 222 00:12:32,000 --> 00:12:35,000 ユーザーは、3つの長方形を見に行くされていません 223 00:12:35,000 --> 00:12:37,000 しかし舞台裏で構造的にそこに一種の 224 00:12:37,000 --> 00:12:39,000 彼らは実際に存在している。 225 00:12:39,000 --> 00:12:41,000 >> さて、誰も気にしない?なぜ、実際にこれを行う? 226 00:12:41,000 --> 00:12:43,000 ページ上の他のすべては、我々は前に見たのと同じです。 227 00:12:43,000 --> 00:12:47,000 ここに私のフォームだ。ここに私の入力は、私の入力、改行などです。 228 00:12:47,000 --> 00:12:50,000 ここではイメージです、しかし、私たちはこれがちょうど瞬間にどこから来たのかがわかります。 229 00:12:50,000 --> 00:12:52,000 ここに新しいですフッターは、私が紹介したかったという理由だけで、だ 230 00:12:52,000 --> 00:12:54,000 ここではいくつかのより多くのコンテンツ。 231 00:12:54,000 --> 00:12:58,000 我々は上にスクロールする場合は、このdivのIDがヘッダーであることに気づく。 232 00:12:58,000 --> 00:13:02,000 このdivのIDがコンテンツであり、この1つのIDはフッターです。 233 00:13:02,000 --> 00:13:05,000 名前が示唆するようにと、あなたはID属性を持っているとき 234 00:13:05,000 --> 00:13:09,000 HTMLでは、定義によって、それは一意に識別する必要があります 235 00:13:09,000 --> 00:13:12,000 要素の一つで、あなたのページ内のタグの一つ。 236 00:13:12,000 --> 00:13:16,000 負担は、すでにヘッダIDを持っていることを覚えておくことは完全にあなたにある。 237 00:13:16,000 --> 00:13:19,000 あなたは、フッターを持っています。あなたは既にコンテンツIDを持っています。 238 00:13:19,000 --> 00:13:22,000 コンピュータが使用可能なIDはあなたのためであるかを理解するつもりはないが、 239 00:13:22,000 --> 00:13:27,000 そのため、誤って、2つのタグのヘッダーのIDを与えることができる 240 00:13:27,000 --> 00:13:29,000 そしてそれは単に間違っているでしょう。 241 00:13:29,000 --> 00:13:31,000 >> あなたは、あなたが作成したものを念頭に置いておく必要があり 242 00:13:31,000 --> 00:13:34,000 しかし、一度は、我々はここで何ができるのか、その予告をしました。 243 00:13:34,000 --> 00:13:38,000 私は今、一番上に自分のスタイルタグで指定することができます 244 00:13:38,000 --> 00:13:41,000 または同等に私のCSSファイルで、私はまだそのバージョンを使用していた場合、 245 00:13:41,000 --> 00:13:46,000 私は#ヘッダー、および手段はそのどんなタグであることを言うことができます 246 00:13:46,000 --> 00:13:49,000 このウェブページでヘッダーのIDを持っています 247 00:13:49,000 --> 00:13:53,000 と#、ちょうど人間の慣例により、IDを表します。 248 00:13:53,000 --> 00:13:56,000 シャープ記号またはポンド記号はIDを表します。 249 00:13:56,000 --> 00:13:58,000 ヘッダーには、私はそれを与えた名前です。 250 00:13:58,000 --> 00:14:01,000 これは、このCSSプロパティを適用することを意味 251 00:14:01,000 --> 00:14:04,000 ヘッダのIDが含まれていますこのページでどんなタグに。 252 00:14:04,000 --> 00:14:06,000 ここでは、同じ取引。 253 00:14:06,000 --> 00:14:09,000 どの要素にも、同じであることを起こる、このプロパティを適用 254 00:14:09,000 --> 00:14:11,000 IDを持つコンテンツであり、その後、ダウンここ 255 00:14:11,000 --> 00:14:14,000 私はフッターに少し手の込んだ気付く。 256 00:14:14,000 --> 00:14:18,000 IDを持つフッターで任意の要素、定義だけが存在する場合がある、そのうちの 257 00:14:18,000 --> 00:14:21,000 先に行くとそのフォントのサイズを小さくし、 258 00:14:21,000 --> 00:14:24,000 太字のフォントの太さは、その余白20ピクセル。 259 00:14:24,000 --> 00:14:26,000 >> どういう意味ですか? 260 00:14:26,000 --> 00:14:28,000 それはちょうど、上部、下部、左と右のマージンです。 261 00:14:28,000 --> 00:14:31,000 これは私にその周りに20ピクセルの不可視のマージンを与えることを意味 262 00:14:31,000 --> 00:14:35,000 ちょうどあなたがWordでやるかもしれないように離れてから他のすべての少しを、プッシュするには、 263 00:14:35,000 --> 00:14:37,000 Microsoft Wordやページなど。 264 00:14:37,000 --> 00:14:39,000 し、テキスト中心の位置を合わせます。 265 00:14:39,000 --> 00:14:43,000 最終的な結果を見てみましょうし、我々はそこにCSSの残りの1つの断片に戻るまで行くつもりです。 266 00:14:43,000 --> 00:14:48,000 これは、検索の例のための私達の最後のバージョンは4であり、そしてそれは、はるかにセクシーだ。 267 00:14:48,000 --> 00:14:54,000 さて、公平に見て、私は "Googleのフォントロゴジェネレータ"をGoogleで検索 268 00:14:54,000 --> 00:14:58,000 そして、それは私がそこにいるように見え、GIF、画像フォーマットを作成することができました。 269 00:14:58,000 --> 00:15:00,000 実際には、あなたもこれを行うことができます。 270 00:15:00,000 --> 00:15:03,000 私たちは、 "Googleのフォントロゴジェネレータ"を持っています。 271 00:15:03,000 --> 00:15:05,000 >> 我々はこれを行うことができるかどうかを確認してみましょう。 272 00:15:05,000 --> 00:15:07,000 さて、私はこれは私が使用したウェブサイトであると思います。 273 00:15:07,000 --> 00:15:11,000 我々は、例えば、Ecの10を言って、彼ら自身にすることができます。 274 00:15:11,000 --> 00:15:13,000 あなたは一日中これを再生し、その上で右クリックすることができます 275 00:15:13,000 --> 00:15:16,000 その後、すべて私がやったことです実際のGIFをダウンロードしてください。 276 00:15:16,000 --> 00:15:19,000 なぜ私は、HTML、リコールで、実際、こっち、それだ 277 00:15:19,000 --> 00:15:22,000 私たちは先週簡潔に見てイメージタグを持っていた 278 00:15:22,000 --> 00:15:24,000 logo.gifを持つソースです。 279 00:15:24,000 --> 00:15:28,000 そして、何は再び、このalt属性を持つための動機でした 280 00:15:28,000 --> 00:15:31,000 この代替属性? 281 00:15:31,000 --> 00:15:33,000 うん。 282 00:15:33,000 --> 00:15:35,000 [聞き取れない生徒の応答] 283 00:15:35,000 --> 00:15:37,000 良いので、2つの理由は本当に、ブラウザが画像をプルアップすることができない場合 284 00:15:37,000 --> 00:15:40,000 あなたは、低速ネットワーク接続を持っているか、イメージが破損しているため 285 00:15:40,000 --> 00:15:44,000 またはそのようなものは、少なくとも人間 "が、CS50の検索"を参照してくださいすることができます 286 00:15:44,000 --> 00:15:46,000 その後、アクセシビリティの問題があるためです。 287 00:15:46,000 --> 00:15:48,000 あなたは盲目であるユーザを持ち、スクリーン·リーダーを使用している場合 288 00:15:48,000 --> 00:15:50,000 したがって、明らかに彼らは、少なくとも缶画像を見ることができない 289 00:15:50,000 --> 00:15:52,000 自分のコンピュータがそれを彼らに話す場合は、テキストを聞く。 290 00:15:52,000 --> 00:15:56,000 >> それはページのアクセシビリティになると一般的には、これは最善の方法です 291 00:15:56,000 --> 00:16:00,000 そのような状況であってもユーザーは、聞いたり見、いわばことができるように 292 00:16:00,000 --> 00:16:03,000 何それはあなたのページにあるということです。 293 00:16:03,000 --> 00:16:05,000 私がここでやったもう一つの事はあります 294 00:16:05,000 --> 00:16:09,000 そのちょっと面白いであり、我々は問題セット7でこれについての詳細が表示されます 295 00:16:09,000 --> 00:16:12,000 ティーチングフェローの1率いるパンツのいずれかを介して。 296 00:16:12,000 --> 00:16:15,000 しかし、#内容はタグを参照 297 00:16:15,000 --> 00:16:20,000 ワード入力があると、そのidの内容ですが、その後空白文字があり、と。 298 00:16:20,000 --> 00:16:25,000 さて、どんなCSSについて興味深いのは、あなたができることです 299 00:16:25,000 --> 00:16:29,000 、階層のページの並べ替えでタグを参照してください。 300 00:16:29,000 --> 00:16:33,000 とCSS手段のこのスニペットは、タグを見つけるものです 301 00:16:33,000 --> 00:16:37,000 IDを持つ内容であるし、次のプロパティを適用 302 00:16:37,000 --> 00:16:42,000 コンテンツの子孫であるinputタグのすべてに、 303 00:16:42,000 --> 00:16:44,000 それはそれの内側にインデントされているということです。 304 00:16:44,000 --> 00:16:48,000 インデントは、再び、ではなく、人間には、コンピュータにのみ重要です。 305 00:16:48,000 --> 00:16:51,000 我々はページの奥深く行くとしてではなく、慣例により、我々は、物事をインデント 306 00:16:51,000 --> 00:16:54,000 ので、これは任意の入力要素に5ピクセルの余白を適用することを意味 307 00:16:54,000 --> 00:16:57,000 それはどこかに内部のだかの中にネストされた 308 00:16:57,000 --> 00:16:59,000  IDを持つ要素は、コンテンツです。 309 00:16:59,000 --> 00:17:01,000 >> それは誰にも適用されますか? 310 00:17:01,000 --> 00:17:03,000 さて、これらの2人はここだけで、実際にはそこだ。 311 00:17:03,000 --> 00:17:05,000 2入力は、そこのフォームの内側にいることに注意してください 312 00:17:05,000 --> 00:17:07,000 これらの例のすべてのためにそこにあっているとして。 313 00:17:07,000 --> 00:17:11,000 それらの2つの入力は内部で入れ子にすることが起こることが、予告、 314 00:17:11,000 --> 00:17:13,000 インデントを少し深く、カップル層とはいえ、 315 00:17:13,000 --> 00:17:16,000 IDの内容でタグの内側。 316 00:17:16,000 --> 00:17:18,000 これはどういう意味ですか? 317 00:17:18,000 --> 00:17:21,000 我々はここでブラウザに行く場合は、ほんの少し、見ることができます 318 00:17:21,000 --> 00:17:23,000 私はボタンの間のパディングビットがある中で、そのズームましょう 319 00:17:23,000 --> 00:17:25,000 とテキストフ​​ィールドの間に。 320 00:17:25,000 --> 00:17:27,000 >> 私は一時的にそれをオフにしましょう​​。 321 00:17:27,000 --> 00:17:30,000 私は私のCSSまで行こう、と私は先に、ただ手放す 322 00:17:30,000 --> 00:17:34,000 5ピクセルから0ピクセルにこの余白を変更します。 323 00:17:34,000 --> 00:17:37,000 私は、先に行くし、ファイルを保存し、検索エンジンに戻りましょう 324 00:17:37,000 --> 00:17:40,000 とリロードし、ページの中央を見る。 325 00:17:40,000 --> 00:17:43,000 すべてが一緒に圧縮されてしまった、と私は最初にこの例を手早く時 326 00:17:43,000 --> 00:17:46,000 私はその後、テキストフ​​ィールドとそのすぐ下のボタンを持つ愚かに見えたと思った。 327 00:17:46,000 --> 00:17:50,000 私はパッドそれ少ししたかったので、私はマージンを導入しました。 328 00:17:50,000 --> 00:17:55,000 私たちは講義中に行うことはありませんと、数十経るれ 329 00:17:55,000 --> 00:17:58,000 再び、フォントサイズのようなものがあるので存在しているCSSプロパティ、 330 00:17:58,000 --> 00:18:02,000 フォントの太さ、余白、テキストが整列し、数十の他、 331 00:18:02,000 --> 00:18:06,000 そして私たちは、あなたが問題にオンラインさまざまなチュートリアルに7を設定参照してくださいよ 332 00:18:06,000 --> 00:18:08,000 そしてあなたがこれらの事をピックアップすることができます参照しています。 333 00:18:08,000 --> 00:18:10,000 しかし、何が一日の終わりに本当に重要な 334 00:18:10,000 --> 00:18:12,000 >> これらのことがどのように適用されるかを理解することです。 335 00:18:12,000 --> 00:18:15,000 再び、我々はのスタイルタグの内側を持っている場合 336 00:18:15,000 --> 00:18:19,000 セレクタは、指定する識別子のソートを行くことができます 337 00:18:19,000 --> 00:18:21,000 誰にあなたは、これらのプロパティを適用したい、 338 00:18:21,000 --> 00:18:24,000 その後は、キーと値のペアとしてプロパティを置く 339 00:18:24,000 --> 00:18:28,000 コロンで区切られ、その後、セミコロンで終了 340 00:18:28,000 --> 00:18:32,000 または、そのうちのすべてをリッピングし、個別のCSSファイルにそれを置くことができます 341 00:18:32,000 --> 00:18:35,000 それ自体。 342 00:18:35,000 --> 00:18:39,000 すべての権利は​​、概念上の任意の質問 343 00:18:39,000 --> 00:18:41,000 またはCSSの全体像? 344 00:18:41,000 --> 00:18:43,000 あなたは再び、PSET 7に多くの情報を表示します 345 00:18:43,000 --> 00:18:47,000 しかし、我々はそれが一般的にはかなりシンプルに保つでしょう。 346 00:18:47,000 --> 00:18:49,000 いいえ?かしこまりました。 347 00:18:49,000 --> 00:18:51,000 それは、実際のプログラミング言語のための時間です 348 00:18:51,000 --> 00:18:54,000 そして我々は例の形でCSSの少しに戻るでしょう。 349 00:18:54,000 --> 00:18:58,000 PHPは実際に素晴らしくアクセス言語である 350 00:18:58,000 --> 00:19:02,000 それは文法的にCにほぼ等価であるという点で、 351 00:19:02,000 --> 00:19:06,000 あなたがCを知っていれば、言い換えれば、あなたは、ほとんどの部分のPHPを知っている 352 00:19:06,000 --> 00:19:08,000 構文的には、少なくとも、いくつかの新機能があるにもかかわらず 353 00:19:08,000 --> 00:19:10,000 といくつかの新しい概念は、我々は見なければならないでしょう。 354 00:19:10,000 --> 00:19:13,000 >> しかし、ほとんどの部分は、現在はCからPHPへの我々はその変遷 355 00:19:13,000 --> 00:19:16,000 新しいもののほとんどは、大きな絵で本当にです 356 00:19:16,000 --> 00:19:19,000 とは対照的に、あなたは、Web上のプログラムに言語を使用する方法 357 00:19:19,000 --> 00:19:23,000 コマンドラインで、または我々がこれまで行ってきたように点滅するプロンプトインチ 358 00:19:23,000 --> 00:19:27,000 参考のため、特にPSET 7と最終的なプロジェクト目以降に、 359 00:19:27,000 --> 00:19:31,000 あなたがPHPの手続き上読みたい場合は、ここをこのURLを利用ください。 360 00:19:31,000 --> 00:19:34,000 これは、実際に効果的に無料のオンライン教科書のようなものだ、 361 00:19:34,000 --> 00:19:37,000 そしてあなたも何がPHPについては本当にうれしいことがわかります 362 00:19:37,000 --> 00:19:41,000 、それに付属している機能が何百もあるということです 363 00:19:41,000 --> 00:19:44,000 あなたは、必ずしもへのアクセス権を持っていなかったのに対し、C 364 00:19:44,000 --> 00:19:47,000 数学ライブラリにあったよりも多くの機能、CS50ライブラリ。 365 00:19:47,000 --> 00:19:51,000 PHPと現代の言語の多くは、その中で、PythonやRubyでは、 366 00:19:51,000 --> 00:19:54,000 あなたが書くために得ることを意味しますので、より多くの機能へのアクセスを得る 367 00:19:54,000 --> 00:19:57,000 はるかに少ないコードあなたが他の人の肩の上に立つことができるため、 368 00:19:57,000 --> 00:19:59,000 既にあなたのために、特定のものを書かれている人。 369 00:19:59,000 --> 00:20:03,000 >> のは、PHPの構文のクイックツアーを取ると、次にいくつかの例を書いてみましょう。 370 00:20:03,000 --> 00:20:06,000 PHPに関する真っ先にいいものだ 371 00:20:06,000 --> 00:20:08,000 ない主な機能はまったくありません。 372 00:20:08,000 --> 00:20:10,000 PHPでプログラムを書きたい場合は、単に、コードを書き始める 373 00:20:10,000 --> 00:20:12,000 そして、メインを心配する必要はありません。 374 00:20:12,000 --> 00:20:14,000 全くintはありません。ノーリターンはありません。 375 00:20:14,000 --> 00:20:17,000 あなたがプログラムを書く時に必要となる、全くのargv、argcはありません。 376 00:20:17,000 --> 00:20:20,000 むしろあなたは、単にコードを書き始めることができ、これは一部になっている 377 00:20:20,000 --> 00:20:23,000 PHPはインタープリタ型言語と呼ばれるものだからです。 378 00:20:23,000 --> 00:20:26,000 Cはコンパイルされた、それはあなたが起動するという意味で、コンパイルされた 379 00:20:26,000 --> 00:20:29,000 ソースコードでは、コンパイラであるClangの、を介してそれを実行し、 380 00:20:29,000 --> 00:20:33,000 そして最終的に手順をいくつか実行したあとでは、オブジェクトコード、0と1を取得します。 381 00:20:33,000 --> 00:20:36,000 PHPやPythonやRubyやパールなど 382 00:20:36,000 --> 00:20:39,000 あなたがそれらをコンパイルしないという点で、言語の異なる種類があります。 383 00:20:39,000 --> 00:20:42,000 あなたは、ソースコードから、0と1には行かない。 384 00:20:42,000 --> 00:20:45,000 あなただけのソースコードを実行し、ソースコードを実行する 385 00:20:45,000 --> 00:20:49,000 この場合インチphpで終わる通常のテキストフ​​ァイルに書き込むことにより、 386 00:20:49,000 --> 00:20:53,000 代わりにC、およびコンピュータ上のどのプログラムが何の 387 00:20:53,000 --> 00:20:57,000 それは文字通り一行一行であなたのコード行を解釈しています。 388 00:20:57,000 --> 00:21:00,000 >> 言い換えれば、はなく、プログラムを書いて、プログラムを実行する 389 00:21:00,000 --> 00:21:04,000 直接ではなく。phpで終わるファイルを使ってプログラムを書いてください。 390 00:21:04,000 --> 00:21:09,000 あなたがWindowsを使っている場合、あなたは、php.exeと呼ばれる実際のプログラムを実行し、 391 00:21:09,000 --> 00:21:12,000 あるいは単に、PHPは、Mac OSやLinuxを使っているのであれば、 392 00:21:12,000 --> 00:21:17,000 そしてあなたは、PHPプログラムへの入力として、独自のソースコードを提供 393 00:21:17,000 --> 00:21:20,000 そして生活の中で、その目的は、左から右に、下にコードの上を読むことです 394 00:21:20,000 --> 00:21:23,000 そしてあなたがすることを言ったものは何でも。 395 00:21:23,000 --> 00:21:25,000 >> これは文法的に意味するように何が起こっているか見てみましょう。 396 00:21:25,000 --> 00:21:27,000 PHPでは、我々は条件があります。 397 00:21:27,000 --> 00:21:29,000 このスライドは、第1週に戻って見たものと同じです 398 00:21:29,000 --> 00:21:33,000 なぜなら、PHPの構文的条件、IFSとelse if文とelse 399 00:21:33,000 --> 00:21:35,000 まさにこのようにします。 400 00:21:35,000 --> 00:21:38,000 それはブール式に来るとき、彼らはこのように正確に見ていくつもりです。 401 00:21:38,000 --> 00:21:43,000 それがこのように正確に見えるように起こっているのはbooleanとして一緒に物事を論理積になると。 402 00:21:43,000 --> 00:21:46,000 スイッチは同じように見え、そしてあなたは、PHPで付加価値を得る 403 00:21:46,000 --> 00:21:51,000 Cでそのスイッチは、char型やintに切り替えることができます。 404 00:21:51,000 --> 00:21:53,000 あなたは、文字列値に切り替えることができませんでした。 405 00:21:53,000 --> 00:21:55,000 PHPでは、あなたは実際に式を持つことができます 406 00:21:55,000 --> 00:21:58,000 それは、その内容が文字列である変数であり、 407 00:21:58,000 --> 00:22:01,000 そして実際に、本当の直感的な方法で文字列の比較を行うことができます 408 00:22:01,000 --> 00:22:06,000 ていないポインタ比較、ケースiまたはjまたは他の何かをするかどうかを決定するため。 409 00:22:06,000 --> 00:22:09,000 我々は、長い前に、その潜在的に表示されます。 410 00:22:09,000 --> 00:22:11,000 >> ループがあまりにも素晴らしく同じです。 411 00:22:11,000 --> 00:22:15,000 forループの初期化、条件、およびいくつかの数の更新が適用されている。 412 00:22:15,000 --> 00:22:18,000 PHPでも存在してwhileループ。 413 00:22:18,000 --> 00:22:21,000 ループはまた、PHPには存在しながらやる 414 00:22:21,000 --> 00:22:26,000 と配列は、PHPには存在しますが、構文が少し異なる得るために始めるところです 415 00:22:26,000 --> 00:22:29,000 が、概念は同じであるが、概念は本当に同じです 416 00:22:29,000 --> 00:22:32,000 彼らはスクラッチで0週にあったように。 417 00:22:32,000 --> 00:22:34,000 まず第一にドル記号($)です。 418 00:22:34,000 --> 00:22:37,000 これは、PHPにおける設計上の決定であったことにより、任意の変数 419 00:22:37,000 --> 00:22:41,000 PHPでバイデザインは$記号で始まります。 420 00:22:41,000 --> 00:22:46,000 もうX、Y、Zは存在しませんそれはちょうどので、今、Z $ X、$ Y、$です。 421 00:22:46,000 --> 00:22:49,000 それは右側に今心に留めておくべきものだし、 422 00:22:49,000 --> 00:22:52,000 これは、配列に似ています 423 00:22:52,000 --> 00:22:54,000 しかし我々はここで、角括弧を使用しています。 424 00:22:54,000 --> 00:22:57,000 、我々は最終的にわかるように、PHPとJavaScriptで 425 00:22:57,000 --> 00:23:01,000 あなたは開き角括弧と閉じた角括弧を行う配列を宣言するには、 426 00:23:01,000 --> 00:23:04,000 そして、あなたはint型かどうかは、値をコンマで区切ったリストを持っている 427 00:23:04,000 --> 00:23:09,000 または内部にあり、その式の文字列や文字、何でもしたい、。 428 00:23:09,000 --> 00:23:11,000 >> 今、我々はC言語でこのようなものをどのように行うのですか? 429 00:23:11,000 --> 00:23:16,000 静的に既知の数の配列を宣言するための構文は何でしたか? 430 00:23:16,000 --> 00:23:19,000 それはここので、わずかの違い、中括弧でしたが、PHPの両方で 431 00:23:19,000 --> 00:23:22,000 それはちょうどので、本当に、角括弧を使用しており、最終的にはJavaScriptの 432 00:23:22,000 --> 00:23:25,000 ここでの唯一の興味深い詳細は、変数名に$記号である 433 00:23:25,000 --> 00:23:28,000 また、角かっこ、1奇妙なことはあり 434 00:23:28,000 --> 00:23:32,000 それは=記号の左側にあるだけでなく、省略されている。 435 00:23:32,000 --> 00:23:36,000 何が私たちが今何週間も必要としてきたことが欠けている?うん。 436 00:23:36,000 --> 00:23:38,000 [聞き取れない生徒の応答] 437 00:23:38,000 --> 00:23:41,000 サイズがあるため、配列の大きさについての言及はありません。 438 00:23:41,000 --> 00:23:45,000 率直に言って、左側の角括弧の言及はありません 439 00:23:45,000 --> 00:23:47,000 =記号の、そして他に何が回線から欠落している? 440 00:23:47,000 --> 00:23:49,000 うん。>> [聞こえない学生の応答] 441 00:23:49,000 --> 00:23:52,000 タイプが存在しないため、PHPについて、特に興味深いものだ 442 00:23:52,000 --> 00:23:56,000 それはCがあるとして、強く型付けされた言語ではない、ということです 443 00:23:56,000 --> 00:23:58,000 それは強く、あなたはcharと言わなければならないという意味で入力している 444 00:23:58,000 --> 00:24:00,000 あなたはint型と言わなければならない、あなたはfloatを言わなければならない。 445 00:24:00,000 --> 00:24:03,000 >> いつでもあなたは、その型が何であるClangのを伝える必要が変数として使用したい。 446 00:24:03,000 --> 00:24:05,000 PHPは少しlazierです。 447 00:24:05,000 --> 00:24:08,000 それは緩く感覚で入力していること 448 00:24:08,000 --> 00:24:11,000 あなたは、山車と文字と文字列を持つことができます 449 00:24:11,000 --> 00:24:14,000 やintなどが、言語自体 450 00:24:14,000 --> 00:24:17,000 本当にあなたは、変数の内部に入れたものは気にしません。 451 00:24:17,000 --> 00:24:20,000 あなたは事前にそれを通知する必要はありませんどのようなデータ型 452 00:24:20,000 --> 00:24:22,000 変数の中に起こっている。 453 00:24:22,000 --> 00:24:24,000 それは完全にあなた次第ですので、これはいいです 454 00:24:24,000 --> 00:24:27,000 あなたは、データの型付けについてはそれほど心配する必要はないという点で、 455 00:24:27,000 --> 00:24:29,000 そしてあなたの引数が何であるかを心配など。 456 00:24:29,000 --> 00:24:32,000 これは、PHPの関数が返すことができるようにしようとしている最終的には意味 457 00:24:32,000 --> 00:24:36,000 ほとんどの時間int、および多分たまにはどちらか 458 00:24:36,000 --> 00:24:40,000 彼らは何かが間違っていた意味するのは、例えば、ブール値、論理値FALSEを返すでしょう。 459 00:24:40,000 --> 00:24:44,000 これは私たちにいくつかの五分五分を与えるが、それはまた、デザインして並べ替えの私たちを行います 460 00:24:44,000 --> 00:24:47,000 それはデータの型付けに来るlazier少し。 461 00:24:47,000 --> 00:24:50,000 >> ここに心に留めておく他に何がある? 462 00:24:50,000 --> 00:24:54,000 変数は、$ s =ので、非常にこのように見えて、 "hello、world。" 463 00:24:54,000 --> 00:24:57,000 それは、多分前の例から推論可能だ 464 00:24:57,000 --> 00:24:59,000 そして我々はループの別の型を持っています。 465 00:24:59,000 --> 00:25:02,000 それは非常に便利ですので、この1つは、私たちは実際に、たまに表示されます 466 00:25:02,000 --> 00:25:04,000 foreach構文。 467 00:25:04,000 --> 00:25:11,000 このケースでは、foreachループは、典型的には、その括弧の内側に3つの言葉を取り 468 00:25:11,000 --> 00:25:16,000 あなたのメンバーを反復処理しますか配列である最初の$何か、、 469 00:25:16,000 --> 00:25:19,000 その後文字通りキーワードとして、その後最後に、 470 00:25:19,000 --> 00:25:21,000 あなたが選択して取得した別の変数名。 471 00:25:21,000 --> 00:25:23,000 それは、foo、bar、あるいは要素とすることができます 472 00:25:23,000 --> 00:25:26,000 そして、この構造は何を行います 473 00:25:26,000 --> 00:25:29,000 $配列は10個の要素が含まれている場合です 474 00:25:29,000 --> 00:25:34,000 この配列ごめんなさいを繰り返すたびに、このループの反復ごとに 475 00:25:34,000 --> 00:25:37,000 変数と呼ばれる要素が更新されようとしている 476 00:25:37,000 --> 00:25:40,000 次に、配列の最初の要素、配列内の2番目の要素であることが、 477 00:25:40,000 --> 00:25:44,000 次に、配列の3番目の要素は、それによって必要性をなくす 478 00:25:44,000 --> 00:25:46,000 少し迷惑な角括弧表記を行うと 479 00:25:46,000 --> 00:25:49,000 $ iは配列のインデックスに順番インチ 480 00:25:49,000 --> 00:25:53,000 PHPは、あなたのため、すべての繰り返しで、そのすべての作業を行います 481 00:25:53,000 --> 00:25:55,000 ちょうどあなたに配列から次の要素を手渡す 482 00:25:55,000 --> 00:26:01,000 あなたが知っているか、その数値のインデックスの場所を気にせずに。 483 00:26:01,000 --> 00:26:04,000 >> そして、最後に、今のところは、PHPのいずれかの他の機能はあり 484 00:26:04,000 --> 00:26:08,000 それは我々がWeb上でプログラミングを開始する場合は特に、非常に便利になるだろう、 485 00:26:08,000 --> 00:26:10,000 その連想配列として知られている。 486 00:26:10,000 --> 00:26:13,000 我々は20秒前の時点で、これまでにわかっている配列 487 00:26:13,000 --> 00:26:17,000 と過去8週間の数値配列をインデックス化され、 488 00:26:17,000 --> 00:26:20,000 インデックスはint型アール従来のアレイの一種、 489 00:26:20,000 --> 00:26:23,000 アップ時には0、1、2、すべての方法。 490 00:26:23,000 --> 00:26:25,000 連想配列は、多くのより強力です。 491 00:26:25,000 --> 00:26:28,000 彼らは、あなたが任意のキーを持つことができるように 492 00:26:28,000 --> 00:26:31,000 任意のインデックスと任意の値。 493 00:26:31,000 --> 00:26:34,000 伝統的な配列で、一方それは、0、1、2だ 494 00:26:34,000 --> 00:26:37,000 連想配列では、インデックスを持つことができます 495 00:26:37,000 --> 00:26:41,000 または値バーですfooのキー。 496 00:26:41,000 --> 00:26:46,000 その後、名前がバズで、値がかんぬんです別のキーを持つことができます。 497 00:26:46,000 --> 00:26:49,000 >> 繰り返しになりますが、ここで愚かなコンピュータサイエンスの汎用変数名、 498 00:26:49,000 --> 00:26:55,000 しかし、ポイントは、この配列は0またはブラケットブラケット1を持っていないということです。 499 00:26:55,000 --> 00:26:59,000 それは代わりにブラケットfooとbazのブラケットを持っているために起こっている。 500 00:26:59,000 --> 00:27:03,000 これは、我々は関連付けることができるようになるだろうという点で、より多くの汎用性があります 501 00:27:03,000 --> 00:27:07,000 他の単語と単語、完全に任意の値を持つキーは、 502 00:27:07,000 --> 00:27:12,000 そして我々は、一定の時間に戻ってそれらの値を取得できるようにするつもりだ 503 00:27:12,000 --> 00:27:14,000 なぜならフードの下に何を連想配列 504 00:27:14,000 --> 00:27:16,000 実際にハッシュテーブルがある。 505 00:27:16,000 --> 00:27:20,000 ハッシュテーブルは、あなたには、いくつかの入力に置くことを可能にしたことを思い出して 506 00:27:20,000 --> 00:27:25,000 あなたは辞書のいくつかの種類にデビッドを挿入したい場合は単語のDavidに入れたい、 507 00:27:25,000 --> 00:27:27,000 その後は、通常いくつかの値を取り戻す。 508 00:27:27,000 --> 00:27:29,000 スペルチェックの場合には、trueまたはfalse。 509 00:27:29,000 --> 00:27:33,000 デイビッドまたは何ワードはであるか、辞書にはありません。 510 00:27:33,000 --> 00:27:36,000 連想配列は、実際には単なるハッシュテーブルです 511 00:27:36,000 --> 00:27:38,000 それはそれをはるかにユーザーフレンドリーな化身だ。 512 00:27:38,000 --> 00:27:41,000 我々が見ていくように、それは、私たちはいくつかのことを実行できるようになるだろう 513 00:27:41,000 --> 00:27:43,000 非常に、非常に簡単。 514 00:27:43,000 --> 00:27:45,000 >> のは、いくつかの基本的なPHPを見てみましょう 515 00:27:45,000 --> 00:27:47,000 例と私たちはこの言語を使って何ができるかを参照してください。 516 00:27:47,000 --> 00:27:51,000 私が先に行くと、今日の我々のソースディレクトリで開くみよう 517 00:27:51,000 --> 00:27:54,000 hello1.phpと呼ばれるファイル。 518 00:27:54,000 --> 00:27:57,000 このファイルには、それが実際のコードよりも多くのコメントです 519 00:27:57,000 --> 00:28:00,000 ので、私は実際にファイルからのすべてのコメントを削除しましょう 520 00:28:00,000 --> 00:28:05,000 と右ここに多分あなたに最も簡単なPHPプログラムを紹介します。 521 00:28:05,000 --> 00:28:07,000 5行、およびそれらのいくつかが空白である、 522 00:28:07,000 --> 00:28:09,000 ので、ここでいくつかの重要な違いに気づく。 523 00:28:09,000 --> 00:28:12,000 ファイルがhello1.phpと呼ばれています。 524 00:28:12,000 --> 00:28:16,000 非常に最初の行には、しかし、<?PHPです。 525 00:28:16,000 --> 00:28:18,000 は、HTMLとその精神においては似 526 00:28:18,000 --> 00:28:21,000 その文字列は、コンピュータに指示 527 00:28:21,000 --> 00:28:25,000 "ねえ、コンピュータが、ここではPHPの中にいるプログラムを付属しています。" 528 00:28:25,000 --> 00:28:28,000 それは、それはいくつかの他の言語だと混乱はありませんを確認します。 529 00:28:28,000 --> 00:28:30,000 2行目では、興味深い空白です。 530 00:28:30,000 --> 00:28:32,000 3行目では、printfの私たちの古くからの友人である 531 00:28:32,000 --> 00:28:34,000 PHPのコンテキストでこの時間。 532 00:28:34,000 --> 00:28:37,000 PHPは、まったく同じように動作printfの独自のバージョンを持っている 533 00:28:37,000 --> 00:28:39,000 そう、これは単なる印刷しようとしている "こんにちは、世界" 534 00:28:39,000 --> 00:28:46,000 そして、ここにこの反対タグ、?>、私のPHPコードのためのそれであることを意味します。 535 00:28:46,000 --> 00:28:48,000 >> これを実行する方法を見てみましょう。 536 00:28:48,000 --> 00:28:50,000 私はここに私の端末ウィンドウに戻って行くつもりです。 537 00:28:50,000 --> 00:28:52,000 私はPHPのディレクトリに行くつもりです。 538 00:28:52,000 --> 00:28:56,000 我々はファイルの全体の束、hello.phpというなっている最初のものを持っていることに注意してください。 539 00:28:56,000 --> 00:29:01,000 私が先に行くとこの、hello1.phpを実行し、次のように入力してみましょう。 540 00:29:01,000 --> 00:29:03,000 アクセスが拒否されました。オーケー。 541 00:29:03,000 --> 00:29:06,000 私たちは、過去にこのようなものをどのように修正しました? 542 00:29:06,000 --> 00:29:08,000 それは何ですか?>> [聞こえない学生の応答] 543 00:29:08,000 --> 00:29:11,000 我々は、読み取りと書き込みが、私は、ls-lをやらせる必要はない。 544 00:29:11,000 --> 00:29:14,000 それによってhello1このやや不可解な出力を覚えている 545 00:29:14,000 --> 00:29:17,000 私が読み書き可能にしたと思われる 546 00:29:17,000 --> 00:29:19,000 しかし、誰もが読める。 547 00:29:19,000 --> 00:29:22,000 これが実際に正しい方向への一歩ではないと判明。 548 00:29:22,000 --> 00:29:25,000 インタープリタ型言語との違いは、再度、 549 00:29:25,000 --> 00:29:27,000 あなたが直接プログラムを実行しないことです。 550 00:29:27,000 --> 00:29:30,000 代わりに、インタプリタを実行し、そのコードを手渡す 551 00:29:30,000 --> 00:29:33,000 それは行ずつ解釈できるように、あなたが書いてきたこと。 552 00:29:33,000 --> 00:29:36,000 この場合には、通訳人又はプログラムは私が実際に実行したい 553 00:29:36,000 --> 00:29:38,000 文字通りPHPと呼ばれています。 554 00:29:38,000 --> 00:29:41,000 >> どこかにこのアプライアンスのハードドライブ上のプログラムがある 555 00:29:41,000 --> 00:29:45,000 他の誰かは、PHPと呼ばれる、またはWindowsではphp.exeに書いている。 556 00:29:45,000 --> 00:29:48,000 私がここで何をしようとしてたんだけど、私が実際にPHPを実行するつもりである 557 00:29:48,000 --> 00:29:51,000 しかし、コマンドライン引数として私が書いたコードを、それを与える、 558 00:29:51,000 --> 00:29:54,000 そして私はズームアウトしてエンターキーを押します。 559 00:29:54,000 --> 00:29:58,000 これは、左から右へ、上から下へ、私のためにプログラムを実行します。 560 00:29:58,000 --> 00:30:01,000 私が先に行くとこれのわずかな変化を開いてみましょう。 561 00:30:01,000 --> 00:30:05,000 あまりにもこのことhello2.php予告で 562 00:30:05,000 --> 00:30:08,000 ほとんどのコメントであるので、私は気晴らしとしてそれらを取り除くことができ、 563 00:30:08,000 --> 00:30:13,000 と苦情今やはっきりと何が違うのですか? 564 00:30:13,000 --> 00:30:15,000 上部にやや不可解なこの新ラインは、ありません。 565 00:30:15,000 --> 00:30:20,000 1行目では、#!/ bin / phpにあります。 566 00:30:20,000 --> 00:30:24,000 ビンは、バイナリ用のLinuxおよびMac OSでの慣習です 567 00:30:24,000 --> 00:30:27,000 ので、/ binには、これはバイナリの束が入っているフォルダであることを意味します 568 00:30:27,000 --> 00:30:29,000 プログラムされており、その中にPHPです。 569 00:30:29,000 --> 00:30:32,000 #! 、シバンと愛称で呼ばれる 570 00:30:32,000 --> 00:30:35,000 どのそれを言うための簡単​​な方法ですが、これは何を意味するのか 571 00:30:35,000 --> 00:30:40,000 あなたは今、このプログラムを実行するときにファイルの先頭にヒントがあるということです 572 00:30:40,000 --> 00:30:44,000 それはどのようなインタプリタが使用するコンピュータに指示します。 573 00:30:44,000 --> 00:30:47,000 >> あなたは、ユーザーと顧客に伝えなければならないとしたら、それは少し迷惑な取得 574 00:30:47,000 --> 00:30:50,000 "ねえ、私たちはhello1.phpと呼ばれるこのプログラムを書いた。" 575 00:30:50,000 --> 00:30:54,000 あなたがしなければならないすべては永遠にPHPを実行してから、このプログラムの名前です。 576 00:30:54,000 --> 00:30:58,000 率直に言って、それだけで、hello1.phpを実行するには良かったでしょう 577 00:30:58,000 --> 00:31:00,000 そして実際に、私たちは、次の操作を実行できます。 578 00:31:00,000 --> 00:31:05,000 私が先に行くとhello2でls-l、予告をやってみましょうそれはまだただ読み書きだ 579 00:31:05,000 --> 00:31:10,000 その後よく読んで理解しているので、私はまだこの、hello2.phpを行うことはできません。 580 00:31:10,000 --> 00:31:15,000 しかし、我々は、chmodコマンドは、この今までので、簡単に最後の時間を導入しました。 581 00:31:15,000 --> 00:31:20,000 私はすべてプラス実行可否を意味します。chmod + xをするのであれば、 582 00:31:20,000 --> 00:31:26,000 その後hello2.phpしてls-lは、再度変更何に気づくん。 583 00:31:26,000 --> 00:31:29,000 一つは、Linuxはアイデアを伝えるために、緑の中で私にファイル名が表示されている 584 00:31:29,000 --> 00:31:32,000 それが実行可能なことが、より重要なのは、左側に 585 00:31:32,000 --> 00:31:36,000 実行可​​能ファイルのxを表すビットが設定されましたことに気づく。 586 00:31:36,000 --> 00:31:42,000 これが何を意味する今、私はいつものように./hello2.phpを実行できることです 587 00:31:42,000 --> 00:31:45,000 ENTERキーを押して、して、そのファイルの最上部にシバンの 588 00:31:45,000 --> 00:31:48,000 それは言うLinuxには、もう一度、ヒントだ 589 00:31:48,000 --> 00:31:51,000 このファイルを実行するには、このインタプリタを使用します。 590 00:31:51,000 --> 00:31:54,000 ユーザーが実際にそれを入力するように心配する必要はありません。 591 00:31:54,000 --> 00:31:57,000 >> そして、どのような素敵なのは、今のようなものだ私の顧客には無関係または私の友人である 592 00:31:57,000 --> 00:32:01,000 私はこのプログラムを書いたものを言語なので、私はMVと前方に行くことができる 593 00:32:01,000 --> 00:32:04,000 そして例えば、hello2にこの事を名前を変更します。 594 00:32:04,000 --> 00:32:07,000 そして今、私は./hello2を行う場合 595 00:32:07,000 --> 00:32:10,000 と私のプログラムが実行され続けズームアウトします。 596 00:32:10,000 --> 00:32:13,000 これらのファイルの拡張子は必要だ人間大会アール 597 00:32:13,000 --> 00:32:15,000 Clangのような何かのために、彼らのために見ている人を確認します。 598 00:32:15,000 --> 00:32:18,000 しかし、PHPのために、私は私が欲しい、このファイルの拡張子は何を呼び出すことができます。 599 00:32:18,000 --> 00:32:22,000 私は、私はRubyで本当に良いんだと考えるように世界を騙すことができる 600 00:32:22,000 --> 00:32:25,000 と私は、hello2.rbを記述してから、これを実行することができます 601 00:32:25,000 --> 00:32:28,000 と出来上がりは、今、私は完全な嘘であるRubyのバージョンを持っています。 602 00:32:28,000 --> 00:32:30,000 しかし、ファイルの拡張子は意味がありません 603 00:32:30,000 --> 00:32:35,000 ファイルが実行可能であり、ファイルの先頭に、この特殊なヒントを持っている場合。 604 00:32:35,000 --> 00:32:38,000 >> さて、余談ですが、私はすぐにバージョン3をお見せしましょう 605 00:32:38,000 --> 00:32:40,000 それは知っている便利なトリックのようなものです。 606 00:32:40,000 --> 00:32:45,000 hello3では、私は少し何か間違ったことをやった 607 00:32:45,000 --> 00:32:47,000 私はソースコードをオンラインで更新するだろうという。 608 00:32:47,000 --> 00:32:50,000 バージョン3では、それが判明しているほとんどのLinuxコンピューターで 609 00:32:50,000 --> 00:32:53,000 環境のためにenvを呼ばれるプログラムが、そこ 610 00:32:53,000 --> 00:32:56,000 あなたは見当がつかない場合、何をここで行うことができることであるPHPの 611 00:32:56,000 --> 00:33:00,000 確かにそれはコンピュータによって異なりなかったため、ローカルハードドライブにインストールされている 612 00:33:00,000 --> 00:33:03,000 誰かが使用していること、envはちょうど実行envを言う、 613 00:33:03,000 --> 00:33:07,000 これは、ほとんどのシステムであり、PHPがどこにあるか把握する。 614 00:33:07,000 --> 00:33:11,000 ただ一般的なトリックは、プログラムがどこにあるかを見つけ出すことを心配する必要はありませんので。 615 00:33:11,000 --> 00:33:14,000 しかし、あなたはプログラムがどこにあるかを見つけるために世話をして、あなたがこれまで世話をしていない場合 616 00:33:14,000 --> 00:33:16,000 あなたは、どのコマンドを使用することができます。 617 00:33:16,000 --> 00:33:19,000 >> 私はズームアウトしてみましょうタイプのphp、 618 00:33:19,000 --> 00:33:23,000 そしてそれはusr / bin / phpが、実際だと言われますがわかります。 619 00:33:23,000 --> 00:33:25,000 それは嘘のようなものだ。それはビンでもあります。 620 00:33:25,000 --> 00:33:27,000 それはちょうど私の最初のヒットを見せている。 621 00:33:27,000 --> 00:33:31,000 Clangのがどこにあるか疑問に思った場合は、、それは、usr / binに/カーンという音になるClangのだ 622 00:33:31,000 --> 00:33:34,000 構成している、usr / binに/を確認し、何を意味は、このすべての時間です 623 00:33:34,000 --> 00:33:38,000 あなたはusr / binに/打ち鳴らすはClangのを実行するために入力すると入力されている可能性が、 624 00:33:38,000 --> 00:33:41,000 しかし退屈のようなものだが、それをするので、いくつかのフォルダ 625 00:33:41,000 --> 00:33:44,000 usr / binとビンのようにデフォルト値であると仮定され 626 00:33:44,000 --> 00:33:50,000 ので、コンピュータがあなたのためにそれらを探すように知っている。 627 00:33:50,000 --> 00:33:53,000 超、超簡単なHello Worldプログラムを書く上の任意の質問 628 00:33:53,000 --> 00:33:55,000 PHPで、それを実行している? 629 00:33:55,000 --> 00:33:59,000 今ので、我々はより魅力的な構文を導入することから始めましょう。 630 00:33:59,000 --> 00:34:01,000 すべての権利、ここに私達は行く。 631 00:34:01,000 --> 00:34:03,000 これらのプログラムは、我々は彼らのすべての前に実際に見てきました。 632 00:34:03,000 --> 00:34:07,000 >> 私が開く場合、例えば、、beer1.php行いましょう 633 00:34:07,000 --> 00:34:09,000 我々は、このいくつかのバージョンを通ることはありませんが、私は何をした 634 00:34:09,000 --> 00:34:13,000 私は座って、それを注ぎ、または変換された 635 00:34:13,000 --> 00:34:15,000 ここでPHPコードと私のCコード。 636 00:34:15,000 --> 00:34:18,000 ファイルの先頭のほとんどは、コメントをここまでです。 637 00:34:18,000 --> 00:34:20,000 readlineが呼ばれる我々が必要とする一つの新しい関数があり、それはアウトになります。 638 00:34:20,000 --> 00:34:23,000 GetStringメソッド、リコールは、0週以降からCS50のものだった。 639 00:34:23,000 --> 00:34:27,000 PHPはreadlineが呼ばれる独自のユーザーフレンドリーな機能が付属しています 640 00:34:27,000 --> 00:34:30,000 プロンプトを指定する1つの引数を取り、その 641 00:34:30,000 --> 00:34:33,000 あなたは、ユーザーに見せたい、と何readlineはないこと 642 00:34:33,000 --> 00:34:35,000 それは何インチユーザーは種類が返され 643 00:34:35,000 --> 00:34:39,000 この場合、私は$ Nという変数を宣言しています。 644 00:34:39,000 --> 00:34:42,000 私はそれでreadlineの戻り値を格納しています 645 00:34:42,000 --> 00:34:44,000 この文字列を使用して、ユーザーにメッセージを表示した後。 646 00:34:44,000 --> 00:34:47,000 ただ実際にこの事を実行するには、バックアップするために、私は先に行かせて 647 00:34:47,000 --> 00:34:50,000 とphp beer1.phpを実行します。 648 00:34:50,000 --> 00:34:53,000 そこにどのように多くのボトルになるでしょうか?ちょうど2を行うのこの時間してみましょう。 649 00:34:53,000 --> 00:34:55,000 入力します。それがすべてです。 650 00:34:55,000 --> 00:34:59,000 >> プログラムは、数週間前からCバージョンと機能的に同じです。 651 00:34:59,000 --> 00:35:01,000 しかし、文法的に違うのかを見てみましょう。 652 00:35:01,000 --> 00:35:05,000 私はいくつかのエラーチェックをやっていることをユーザーに通知からintを取得した後 653 00:35:05,000 --> 00:35:08,000 nが1未満である場合、私は終了し、私はプリントアウト 654 00:35:08,000 --> 00:35:11,000 1を使用して、ユーザーと出口に申し訳ないメッセージ。 655 00:35:11,000 --> 00:35:13,000 これは、あまりにも少し異なっています。 656 00:35:13,000 --> 00:35:16,000  Cでは、私たちは何をしたのですか? C言語では、我々は1が返されました。 657 00:35:16,000 --> 00:35:20,000 PHPにおいては、率直に言って、私はもう少し直感的だと思うが1、で終了 658 00:35:20,000 --> 00:35:22,000 あなたは文字通り、プログラムを終了しているため。 659 00:35:22,000 --> 00:35:25,000 すべての権利は​​、その後ダウンここに迷惑な歌は、構文的に同一である 660 00:35:25,000 --> 00:35:29,000 変数を除いて、その下にここに24行目以降で 661 00:35:29,000 --> 00:35:31,000 私のためのループは、ほぼ同じであることがわかる 662 00:35:31,000 --> 00:35:34,000 しかし、私は、iとnの前に$を持っている 663 00:35:34,000 --> 00:35:37,000 そして何も我々が過去に持っていたことを26行から欠落している 664 00:35:37,000 --> 00:35:39,000 変数iを宣言するときに? 665 00:35:39,000 --> 00:35:41,000 全くタイプはありません。 666 00:35:41,000 --> 00:35:43,000 それは、intと言うためにPHPで間違っています。 667 00:35:43,000 --> 00:35:45,000 あなたは、単にそれを行う必要はありません。 668 00:35:45,000 --> 00:35:48,000 コンピュータ、インタプリタ、PHPは実現するのに十分スマートです 669 00:35:48,000 --> 00:35:51,000 あなたは、私が$で番号を置けば、それはそれを扱うことが 670 00:35:51,000 --> 00:35:53,000 あなたのための番号など。 671 00:35:53,000 --> 00:35:57,000 そして、ダウンここでプラグ$ I、$ I、$ iの - 1。 672 00:35:57,000 --> 00:36:00,000 すべてのことは同じですし、ダウンここで我々は "うわー、それは迷惑なんだ" printfを行う 673 00:36:00,000 --> 00:36:02,000 その後(0)終了します。 674 00:36:02,000 --> 00:36:05,000 >> 繰り返しになりますが、ここに持ち帰り、我々は比較的過ごすつもりだにもかかわらず、ということです 675 00:36:05,000 --> 00:36:09,000 PHPの少しの時間、確かに、我々はCでやった対 676 00:36:09,000 --> 00:36:12,000 それは我々が何をしようとしていますので、今日と来週はほぼ同じだし、 677 00:36:12,000 --> 00:36:14,000 以降、新しいアイデアのいくつかに本当に焦点となっています。 678 00:36:14,000 --> 00:36:17,000 ただもうひとつはCから引き継い翻訳ないことを確認し、 679 00:36:17,000 --> 00:36:20,000 これは我々が週1で行った超簡単なプログラムだった 680 00:36:20,000 --> 00:36:22,000 値を乗または2。 681 00:36:22,000 --> 00:36:25,000 しかし、このプログラムについての時点で面白いものだったことは、それ 682 00:36:25,000 --> 00:36:28,000 私たち自身が書いたカスタム書かれた関数の概念を導入しました。 683 00:36:28,000 --> 00:36:31,000 PHPの構文はほぼ同じです。 684 00:36:31,000 --> 00:36:33,000 ここにトップアップ私のプログラムです。 685 00:36:33,000 --> 00:36:35,000 再び不在通知がメインの任意の概念である。 686 00:36:35,000 --> 00:36:39,000 私は、コードを書き始めるが、これはインタプリタによって実行されるために何が起こっているのです。 687 00:36:39,000 --> 00:36:42,000 私はxはおそらく、今2でプリントアウト。 688 00:36:42,000 --> 00:36:44,000 それから私は、キュービング主張... 689 00:36:44,000 --> 00:36:47,000 それから私は、$ xの中にキューブ関数を呼び出して渡す 690 00:36:47,000 --> 00:36:50,000 と$ xに戻り値を代入する。 691 00:36:50,000 --> 00:36:53,000 その後、私はそれがCubedのことを主張し、私はこれを言う、これうまくいけば 692 00:36:53,000 --> 00:36:55,000 xは現在8であると言うだろう。 693 00:36:55,000 --> 00:36:59,000 PHPの関数の構文は、ほんの少し異なっています。 694 00:36:59,000 --> 00:37:01,000 再び行方不明は、戻り値の型です。 695 00:37:01,000 --> 00:37:05,000 再び行方不明では、戻り値の型であり、また不足しているが他にどのようなタイプですか? 696 00:37:05,000 --> 00:37:07,000 [聞き取れない生徒の応答] 697 00:37:07,000 --> 00:37:10,000 ああ、そうだ、それは良いことだ。第二のそれに戻ってみましょう。 698 00:37:10,000 --> 00:37:12,000 >> 我々は、例えば、ここでINT、持っていない。 699 00:37:12,000 --> 00:37:15,000 我々は、例えば、PHPで、再び、ので、ここでintに持っていない 700 00:37:15,000 --> 00:37:18,000 あなたは単に、する必要はありませんし、それを行うべきではありません 701 00:37:18,000 --> 00:37:20,000 むしろ関数と呼ばれるこの新しいキーワードはあり。 702 00:37:20,000 --> 00:37:23,000 関数をときたいので、PHPでそれはほとんど少し明確だ 703 00:37:23,000 --> 00:37:26,000 あなたは文字通りの機能を言うときは、カンマで区切られたリスト、それに名前を付けて 704 00:37:26,000 --> 00:37:28,000 その関数の引数のいずれかの。 705 00:37:28,000 --> 00:37:32,000 いいえ、リターンが同じであるから、そのようなボイドや何かを言う必要はないし、 706 00:37:32,000 --> 00:37:35,000 $ * $ * $。 707 00:37:35,000 --> 00:37:38,000 また、何が欠けている?サミーはこれをここで指摘している。 708 00:37:38,000 --> 00:37:43,000 PHPで完全に存在しないファイルの先頭にもプロトタイプです。 709 00:37:43,000 --> 00:37:45,000 これも仕様によるものです。 710 00:37:45,000 --> 00:37:48,000 Cは今までにあったより、PHPのような言語と通訳者は賢い 711 00:37:48,000 --> 00:37:50,000 Clangのようなコンパイラインチ 712 00:37:50,000 --> 00:37:53,000 >> 、キューブが存在するということを教えていなかった場合、そのClangのを思い出して 713 00:37:53,000 --> 00:37:56,000 あなたは、printfのプロトタイプと同様に存在することを教えていなかった場合 714 00:37:56,000 --> 00:38:00,000 または#includeで、まあ、それはあなたに叫ぶつもりも、あなたのコードをコンパイルしていませんでした。 715 00:38:00,000 --> 00:38:03,000 それはこのに来るときにPHP、より近代的な言語がたくさん賢い。 716 00:38:03,000 --> 00:38:07,000 彼らはあなたのすべてのコードを介して読み取ることが自分自身にそれを取るだろう 717 00:38:07,000 --> 00:38:11,000 そしてそれはどこにもキューブを見つけた場合にのみ怒鳴りつける。 718 00:38:11,000 --> 00:38:15,000 キューブは下部または上部にあるいはいくつかの独立したファイルであるかどうかは関係ありません。 719 00:38:15,000 --> 00:38:18,000 PHPと同じような言語は今や先読みするのに十分スマートです 720 00:38:18,000 --> 00:38:26,000 ミスをしたとしてあなたを認める前に何事につけても。 721 00:38:26,000 --> 00:38:28,000 それは私たちをどこに出ますか? 722 00:38:28,000 --> 00:38:32,000 >> 、条件でここ1最後の例を実行してみましょう 723 00:38:32,000 --> 00:38:35,000 と私もconditions2.php通知を開く場合 724 00:38:35,000 --> 00:38:37,000 ここで構文はほぼ同じです。 725 00:38:37,000 --> 00:38:40,000 私はreadlineの代わりにGetStringを使用していますが、そのラインは、前と同じです 726 00:38:40,000 --> 00:38:42,000 "私は整数でお願いしたいと思います。" 727 00:38:42,000 --> 00:38:45,000 私はその後、if条件if、else、およびその後、他を持っている 728 00:38:45,000 --> 00:38:48,000 しかし、機能的に、このプログラムはまた、我々は数週間前にやったことと同じですが、 729 00:38:48,000 --> 00:38:51,000 ので、私はこの事、conditions2のPHPを実行した場合 730 00:38:51,000 --> 00:38:54,000 そして私はそれを23のように番号を与える - 731 00:38:54,000 --> 00:38:57,000 私は、正の数を選んだ。私はそれが-1与える場合、私は負の数を選んだ。 732 00:38:57,000 --> 00:39:00,000 私はそれを0与える場合、私は確かに0を選んだ。 733 00:39:00,000 --> 00:39:02,000 だから誰がこのすべてを気遣う? 734 00:39:02,000 --> 00:39:06,000 ここでの練習の楽しさ一種のまあ、1 735 00:39:06,000 --> 00:39:10,000 少なくとも私にとっては、戻って、私はPSET 5を実装することができますどのように迅速に確認することでした 736 00:39:10,000 --> 00:39:12,000 スペルミスのpset。 737 00:39:12,000 --> 00:39:15,000 speller.cと呼ばれるこのファイルは、そこにあったことを思い出してください 738 00:39:15,000 --> 00:39:17,000 とdictionary.cというファイルがありました。 739 00:39:17,000 --> 00:39:20,000 私が何をしたか、私は一種の数分を過ごし、私はC言語のコードに変換された 740 00:39:20,000 --> 00:39:23,000 PHPコードに、我々はスペルチェックにあまり時間をかけません 741 00:39:23,000 --> 00:39:26,000 ただのpset 5のようにあなたが本当にする必要はありませんでしたので、 742 00:39:26,000 --> 00:39:29,000 あなたの注意が辞書にあったので、スペル自体に多くの時間を費やす。 743 00:39:29,000 --> 00:39:32,000 >> 、あなたはスペルを通読したとすればと言うだけにとどめておき 744 00:39:32,000 --> 00:39:35,000 ここでは、このファイルは、それはかなりのCコードと等価です 745 00:39:35,000 --> 00:39:37,000 我々は、pset 5のためあなたを与えた。 746 00:39:37,000 --> 00:39:39,000 私はただの場所でいくつかの$を追加しました。 747 00:39:39,000 --> 00:39:43,000 彼らはPHPには存在しなかった場合、私は特定の関数名を変更しました。 748 00:39:43,000 --> 00:39:45,000 つの追加のことは時点でpreg_matchは、ここにあります 749 00:39:45,000 --> 00:39:48,000 これは、何かをするの少し手の込んだ方法ですが、我々は最終的に戻ってくる。 750 00:39:48,000 --> 00:39:51,000 しかし、短期的には、スペルチェックはほぼ同一であり、あなたは非常に底を見れば 751 00:39:51,000 --> 00:39:54,000 何それが最終的に出してくれると、これは、ここにある 752 00:39:54,000 --> 00:39:57,000 言葉は、テキスト内の単語を辞書で単語をスペルミス。 753 00:39:57,000 --> 00:40:00,000 すべての権利、だから何今面白いのは、以下の通りです。 754 00:40:00,000 --> 00:40:05,000 私のファイルの先頭に私がdictionary.phpを必要としています。 755 00:40:05,000 --> 00:40:09,000 C#は、PHPが必要という特殊な機能を持って含まれたのと同様に 756 00:40:09,000 --> 00:40:14,000 ほとんど同じことをやっていること、dictionary.phpというファイルが必要になります。 757 00:40:14,000 --> 00:40:18,000 私は、pset 5を実装するにはどうしたらできますか? 758 00:40:18,000 --> 00:40:21,000 私が先に行くと、ここにファイルを開いてみましょう。 759 00:40:21,000 --> 00:40:24,000 私はここで少しのリファレンスを見てみましょう。 760 00:40:24,000 --> 00:40:29,000 そして、私は新しいファイルを作成し、このdictionary.phpの呼び出しを開始しましょう​​。 761 00:40:29,000 --> 00:40:31,000 我々は、このライブを​​行うことができますので、私は別のフォルダに入れてみましょう。 762 00:40:31,000 --> 00:40:33,000 そして今、私はズームインよ 763 00:40:33,000 --> 00:40:37,000 私はphpブラケットを閉じたオープンブラケットと私のPHPファイルを開始するつもりだ。 764 00:40:37,000 --> 00:40:40,000 そして、ここで、私はPSET 5のために実装するために必要ないくつかの関数があった 765 00:40:40,000 --> 00:40:42,000 そう、私はそれらのいくつかを実装して始めましょう 766 00:40:42,000 --> 00:40:47,000 引数としての単語を取らなければならなかったので、機能チェック、。 767 00:40:47,000 --> 00:40:49,000 我々はそれを行うと、その瞬間にそれに戻ってくるでしょう。 768 00:40:49,000 --> 00:40:53,000 >> 引数として何を取り入れた機能の負荷があった? 769 00:40:53,000 --> 00:40:56,000 辞書、私が実際にロードしたかったので、ファイル。 770 00:40:56,000 --> 00:41:00,000 任意の引数を取らなかった関数のサイズがあったが、 771 00:41:00,000 --> 00:41:04,000 と関数他にどのようであったがあったのでしょうか? 772 00:41:04,000 --> 00:41:06,000 どちらかの引数を取るしなかった、アンロードします。 773 00:41:06,000 --> 00:41:10,000 これらは、私は今、PHPで実装する必要があるだろうと4関数です 774 00:41:10,000 --> 00:41:13,000 と私は何をするつもりだと、先に行くとこれを行うにしています。 775 00:41:13,000 --> 00:41:16,000 あなた方の多くは、pset 5にハッシュテーブルを使用し、 776 00:41:16,000 --> 00:41:21,000 ので、私は先に行くと、PHPでハッシュテーブルを作成してみましょう。 777 00:41:21,000 --> 00:41:23,000 完了しました。 778 00:41:23,000 --> 00:41:25,000 それは私にハッシュテーブルを提供します。さて、なぜ? 779 00:41:25,000 --> 00:41:30,000 一つは、変数は単なるハッシュテーブルのアイデアをひねり出すために、$表と呼ばれます。 780 00:41:30,000 --> 00:41:34,000 角カッコは、しかし、何を表して、リコール? 781 00:41:34,000 --> 00:41:37,000 配列ではなくPHPの配列では、数値インデックスを作成する必要はありません。 782 00:41:37,000 --> 00:41:41,000 彼らはまた、連想配列することができます 783 00:41:41,000 --> 00:41:44,000 それはあなたが任意のキーと値を持つことができることを意味します。 784 00:41:44,000 --> 00:41:49,000 >> あまりのpset 5、ハッシュテーブルの実装をしたあなたの人々のように 785 00:41:49,000 --> 00:41:53,000 あなたはおそらく、単語を挿入し、リンクリストのチェーンに挿入し 786 00:41:53,000 --> 00:41:56,000 またはあなたは、その旨を真のどこかか何かの値が格納されている。 787 00:41:56,000 --> 00:41:59,000 あなたは何とか言葉があったという事実を思い出した。 788 00:41:59,000 --> 00:42:01,000 今のところ、それは、私のハッシュテーブルになるだろう 789 00:42:01,000 --> 00:42:06,000 そして、今チェック機能を実装することについて移動する 790 00:42:06,000 --> 00:42:09,000 私はちょうどそのハッシュテーブルの内部を見てする必要があります 791 00:42:09,000 --> 00:42:11,000 単語があるかどうかとしてください。 792 00:42:11,000 --> 00:42:15,000 私は何をするつもりだ、私が言おうとしているされている場合、- 793 00:42:15,000 --> 00:42:20,000 のは、文字通りキー設定されていることを意味するPHP関数ですかどうかの判断を、言わせて 794 00:42:20,000 --> 00:42:24,000 そうかどうかの判断($表[$ワード]、 795 00:42:24,000 --> 00:42:29,000 そうだとすればことはtrueを返します。 796 00:42:29,000 --> 00:42:32,000 それはそれだ。つまり、PHPでのpset 5です。 797 00:42:32,000 --> 00:42:34,000 まあ、公平の見地から、大丈夫。 798 00:42:34,000 --> 00:42:37,000 そうでない場合はfalseを返すので、それはなさそうだ。 799 00:42:37,000 --> 00:42:39,000 本当にここで何が起こっているのでしょうか? 800 00:42:39,000 --> 00:42:42,000 まあ、もっと一般的にここでテーブルまたはハッシュテーブルの場合 801 00:42:42,000 --> 00:42:46,000 あなたがそれにインデックスを付けることができますを意味し、連想配列です 802 00:42:46,000 --> 00:42:50,000 "ワード"、そしてあなたには、いくつかの値を戻らなければならないような言葉である。 803 00:42:50,000 --> 00:42:52,000 >> 我々は先走りの一歩を得ることの一種だ。 804 00:42:52,000 --> 00:42:56,000 我々は実際には、最初のファイルをロードした場合、それはいいの一種だろう 805 00:42:56,000 --> 00:42:58,000 そう負荷はそれほど単純ではありませんが、私が先に行くとかき立てるう 806 00:42:58,000 --> 00:43:00,000  負荷の本当に迅速な実装。 807 00:43:00,000 --> 00:43:07,000 私が先に行くと言葉が辞書ファイルを取得しましょう​​。 808 00:43:07,000 --> 00:43:10,000 PHPのファイル関数はファイルを開き 809 00:43:10,000 --> 00:43:12,000 そして、あなたにそのファイル内のすべての単語の配列を返します 810 00:43:12,000 --> 00:43:14,000 ちょうどあなたにそれらを手渡す。 811 00:43:14,000 --> 00:43:16,000 すなわち、それは、あまりにも大きな痛みされていませんでしたか? 812 00:43:16,000 --> 00:43:21,000 今すぐforeachは、これは私たちの新しい構築物は、foreach($ $単語としてワード)です。 813 00:43:21,000 --> 00:43:25,000 このループは、配列の言葉を反復処理を開始しようとしている 814 00:43:25,000 --> 00:43:30,000 と$ワード変数、ファイル内の各単語を割り当てる 815 00:43:30,000 --> 00:43:32,000 第一から第四のすべての方法に第三に第二に 816 00:43:32,000 --> 00:43:35,000 ので、私は迷惑な[i]の表記などを行う必要はありません。 817 00:43:35,000 --> 00:43:38,000 そして、どのような私は単純にこれらの単語ごとにするつもりです 818 00:43:38,000 --> 00:43:43,000 テーブルのインデックスで、私のテーブルに格納されている 819 00:43:43,000 --> 00:43:47,000 覚えているので、その後真やって 820 00:43:47,000 --> 00:43:50,000 言葉は私の辞書になっていることをすべて私が本当にしなければならない 821 00:43:50,000 --> 00:43:55,000 ビットを反転し、私のハッシュテーブル内のこの言葉は、そこに真であると言う種類のものである。 822 00:43:55,000 --> 00:43:58,000 それがそこにはありませんならば、私は、明示的にfalse配置する必要はありません 823 00:43:58,000 --> 00:44:01,000 そうでなければ私は宇宙のすべての可能な単語に対してfalseを入れなければならないと思います。 824 00:44:01,000 --> 00:44:05,000 >> それだけでインデックス値を設定するために私のために十分である 825 00:44:05,000 --> 00:44:09,000 言葉は私のハッシュテーブルに実際にある場合はtrueに。 826 00:44:09,000 --> 00:44:12,000 さて、私は、今のところで私の手を振るだろうとここでのコーナーのカップルを切断しています 827 00:44:12,000 --> 00:44:15,000 しかし今ではload関数が実行されます。 828 00:44:15,000 --> 00:44:18,000 私は、ファイルから配列にすべての単語を読み込みます。 829 00:44:18,000 --> 00:44:21,000 私は、その配列を反復処理し、配列内の各単語の 830 00:44:21,000 --> 00:44:24,000 私は、コードの1行で私のハッシュテーブルに差し込みます。 831 00:44:24,000 --> 00:44:26,000 これは楽しいです。あなたは、私たちは今、サイズを実装する方法を知っていますか? 832 00:44:26,000 --> 00:44:28,000 まあ、サイズが公平に見て、いつもはとても簡単です。 833 00:44:28,000 --> 00:44:32,000 ここでは、単にテーブルの戻りカウントを行うことができます。 834 00:44:32,000 --> 00:44:34,000 それはあまりにも非常に簡単です、テーブルに物事の数を数えます。 835 00:44:34,000 --> 00:44:36,000 それが最も効率的ではありませんが、実際のようなものだ。 836 00:44:36,000 --> 00:44:39,000 我々はそれを行うことができますので、私はおそらく、変数と呼ばれるサイズである必要があり 837 00:44:39,000 --> 00:44:41,000 一定の時間で、それは非常に簡単です。 838 00:44:41,000 --> 00:44:45,000 ああ、その後アンロード、私たちは本当にここに肛門になりたい場合 839 00:44:45,000 --> 00:44:47,000 私たちは、あなたが何かをアンロードする方法だと言うことができます。 840 00:44:47,000 --> 00:44:49,000 あなたはただ、空の配列に等しい変数を設定 841 00:44:49,000 --> 00:44:51,000 そして、それはそこにあったすべてのものを取り除きます。 842 00:44:51,000 --> 00:44:53,000 いいえフリー呼ぶ必要はありません。 843 00:44:53,000 --> 00:44:56,000 >> 繰り返しますが、私はいくつかのコーナーをカットした、と私は問題セット5を割り当てることをお詫び 844 00:44:56,000 --> 00:45:00,000 おそらくCで、しかし、我々は今先に行くと、これを実行した場合 845 00:45:00,000 --> 00:45:02,000 私は実際に私が事前に書いたバージョンを実行するつもりです 846 00:45:02,000 --> 00:45:05,000 ちょうどので、私は一切の構文ミスを犯さなかったこと。 847 00:45:05,000 --> 00:45:08,000 私が先に行くと、スペルチェックを実行してみましょう。使い方は同じです。 848 00:45:08,000 --> 00:45:12,000 ここだけの単語fooを含む辞書ファイルです。 849 00:45:12,000 --> 00:45:15,000 ここだけfooバーを含むテキストフ​​ァイルです。 850 00:45:15,000 --> 00:45:19,000 このテキストフ​​ァイルに、この辞書ファイルを使用して、このため、スペルをスペルチェックしてみましょう。 851 00:45:19,000 --> 00:45:21,000 1スペルミスのある単語、バー、出来上がりがある。 852 00:45:21,000 --> 00:45:23,000 PSET 5で行われます。 853 00:45:23,000 --> 00:45:30,000 のがここで5分間の休憩を取り、我々はPHPに戻ってくると、もっとでしょう。 854 00:45:30,000 --> 00:45:32,000 すべての権利、私たちは戻ってきた。 855 00:45:32,000 --> 00:45:34,000 しばらくの間、私を嫌いましょう。 856 00:45:34,000 --> 00:45:37,000 これが正でなかった場合はすぐに実際に見てみましょう 857 00:45:37,000 --> 00:45:39,000 実際にPHPでこの事を実現する。 858 00:45:39,000 --> 00:45:43,000 確かに、それは実装するために45秒かかった。 859 00:45:43,000 --> 00:45:45,000 >> しかし、今度は、先に行くと、物事を実行してみましょう。 860 00:45:45,000 --> 00:45:49,000 私が先に行くとCバージョンを実行してみましょう 861 00:45:49,000 --> 00:45:52,000 スペルチェックの、我々は最大のファイルのいずれかでそれを実行することになるでしょう、 862 00:45:52,000 --> 00:45:54,000 欽定訳聖書はどれですか。 863 00:45:54,000 --> 00:45:57,000 そして、それはここで、のは私達のCフォルダに移動で-letがある 864 00:45:57,000 --> 00:46:01,000 ジェームズ王第五にスペルチェック。 865 00:46:01,000 --> 00:46:03,000 スペルミスのある単語がたくさん。 866 00:46:03,000 --> 00:46:06,000 わかりましたので、それは、時間が少し異なっている場合でも、あなたは、おそらく持って出力だ 867 00:46:06,000 --> 00:46:09,000 あなたは合計で正常に動作してすべてのもの、などの時​​間を得た場合、スペルチェック 868 00:46:09,000 --> 00:46:13,000 欽定訳聖書は、その実装を使用しますので、かなり良い0.38秒であった。 869 00:46:13,000 --> 00:46:16,000 今私は、我々だけで書いたPHPのバージョン、に行くことができます。 870 00:46:16,000 --> 00:46:18,000 私はジェームズ王にスペルチェックを実行してみましょう。 871 00:46:18,000 --> 00:46:21,000 おっと、そのエラーを無視してください。私が間違ったディレクトリにいるよ。 872 00:46:21,000 --> 00:46:24,000 王ジェームズ5日スペル。 873 00:46:46,000 --> 00:46:48,000 これでほぼ完了。 874 00:46:48,000 --> 00:46:51,000 >> さて、観察力の鋭い人は、そこに3秒以上であったことを理解するであろう。 875 00:46:51,000 --> 00:46:54,000 それが真の実行時間である。 876 00:46:54,000 --> 00:46:58,000 それは大量のテキストを吐き出すには時間がかかることが判明 877 00:46:58,000 --> 00:47:00,000 なぜなら短いバッファリングの問題が、長い物語の、 878 00:47:00,000 --> 00:47:04,000 それはマシンタイムの3.15秒、CPU時間、だった 879 00:47:04,000 --> 00:47:07,000 対それは少し前に何だったのですか? 880 00:47:07,000 --> 00:47:09,000 0.3のような。 881 00:47:09,000 --> 00:47:11,000 私が言いたいのは、それが格段に遅くなので、それがどこにあるの 882 00:47:11,000 --> 00:47:14,000 とんでもない減速はから来る? 883 00:47:14,000 --> 00:47:17,000 そうですね、私たちが作った中で最もどんなデザインの決定にそうだった 884 00:47:17,000 --> 00:47:21,000 過去9週間以上のクラスで、このトレードオフはほぼ常にあります。 885 00:47:21,000 --> 00:47:24,000 時には、単にスペースの間に、時々、空間と時間の間に、 886 00:47:24,000 --> 00:47:27,000 空間、時間、開発努力、そして実際に、ここにもかかわらず、 887 00:47:27,000 --> 00:47:31,000 我々は多分潜在的に膨大な時間、10-20-30時間を保存 888 00:47:31,000 --> 00:47:34,000 スペルチェッカーを実装する開発時間の 889 00:47:34,000 --> 00:47:36,000 この言語を使ってわずか45秒でそれを泡立てることによって 890 00:47:36,000 --> 00:47:40,000 我々が支払う価格は、それが結果として遅く桁違いだということです 891 00:47:40,000 --> 00:47:43,000 これは一般的に、ほとんどすべてのインタプリタ言語の場合と同様に、 892 00:47:43,000 --> 00:47:46,000 PHPやPython、Ruby、パールまたは他者により 893 00:47:46,000 --> 00:47:49,000 あなたは通訳を介してそれを実行するつもりだし、それはあなたのコードを読んだ場合 894 00:47:49,000 --> 00:47:52,000 行ずつ、上から下へ、左から右へ 895 00:47:52,000 --> 00:47:55,000 その仲介者は、独自のいくつかの時間がかかるために起こっている、 896 00:47:55,000 --> 00:47:59,000 とどのような0.3秒とは対照的に、あなたが3秒でここに感じていた 897 00:47:59,000 --> 00:48:02,000 文字通り私たちのコードを解釈する必要があり、この仲介者が存在するという事実である 898 00:48:02,000 --> 00:48:05,000 あなたがループ内なら行ずつ、神は禁止 899 00:48:05,000 --> 00:48:08,000 言葉の数十万人を含む巨大なファイルを持つ。 900 00:48:08,000 --> 00:48:11,000 >> そのオーバーヘッドが加算と加算と加算とまで追加しようとしている。 901 00:48:11,000 --> 00:48:16,000 このようなツールのためにそれはおそらく実装するために使用するのに最適な言語​​ではありません 902 00:48:16,000 --> 00:48:20,000 即時場合、スペルチェッカーは、ユーザーに、あなたに興味があります。 903 00:48:20,000 --> 00:48:23,000 しかし、我々は一瞬にして持っている贅沢されている場合 904 00:48:23,000 --> 00:48:27,000 PHPのような言語やインタプリタ型言語の多くを使用する 905 00:48:27,000 --> 00:48:30,000 Webのコンテキストで、そのことについて、あなたは利益を持っている 906 00:48:30,000 --> 00:48:34,000 インターネットは、ほとんどのコンピュータよりもずっと遅いこと。 907 00:48:34,000 --> 00:48:38,000 お使いのコンピュータ、2 GHzの、多分多くのこれらの日におけるGHzのCPUを持っています。 908 00:48:38,000 --> 00:48:41,000 しかし、現実がインターネットに接続されている待ち時間の高い量がある 909 00:48:41,000 --> 00:48:45,000 それによって我々は先週見ていても、サーバと通信するために、ブラウザの 910 00:48:45,000 --> 00:48:47,000 、それは非常に高速だと、半分ミリ秒かそ​​こら 911 00:48:47,000 --> 00:48:51,000 あなたがイメージのようなものをダウンロードしている場合、あまりにも追加され、その 912 00:48:51,000 --> 00:48:54,000 またはFacebookの写真や、Facebookのおしゃべりを介したインスタントメッセージを取得 913 00:48:54,000 --> 00:48:57,000 Gchatなど、これらのラウンドトリップ時間のすべて 914 00:48:57,000 --> 00:49:00,000 ブラウザとまで追加するには、サーバーの開始の間、 915 00:49:00,000 --> 00:49:03,000 多くの場合、言語の特定の選択肢となっている 916 00:49:03,000 --> 00:49:07,000 すべてではないが、関連するので、わずかに遅い言語を使用していいですよ 917 00:49:07,000 --> 00:49:10,000 PHPやPythonやRubyのような 918 00:49:10,000 --> 00:49:13,000 しかしそのために、あなたとあなたの同僚に巨大五分五分があります 919 00:49:13,000 --> 00:49:17,000 とあなたの友人あなたがそうなので、はるかに高速なものを実装することができるからです。 920 00:49:17,000 --> 00:49:20,000 しかも、あなたは、特定のセキュリティ上の欠陥がはるかに少ないリスクを持っています。 921 00:49:20,000 --> 00:49:22,000 PHPにはポインタはありません。 922 00:49:22,000 --> 00:49:25,000 あなたは簡単に誘導することができることはワンセグ障害はありません 923 00:49:25,000 --> 00:49:27,000 あなたはCでできたのと同じ方法で、 924 00:49:27,000 --> 00:49:29,000 C言語を使用すると、ハードウェアに近いスーパーだ。 925 00:49:29,000 --> 00:49:33,000 PHPと同じような言語では、より高いレベルのソート、いわばだ 926 00:49:33,000 --> 00:49:37,000 あなたと実際に起こっている間に防御の多くの 927 00:49:37,000 --> 00:49:39,000 マシンの内部で、そしてそれはちょうどトレードオフです。 928 00:49:39,000 --> 00:49:42,000 >> 我々は、これらのより近代的な、高レベルの言語を持っていることのポイントに得ている 929 00:49:42,000 --> 00:49:47,000 PHPのようなので、C言語のPHPなどの言語で学んだ教訓 930 00:49:47,000 --> 00:49:50,000 しかし、あなたは、フードの下にすべてのこの時間に起こっているのか理解していない場合 931 00:49:50,000 --> 00:49:53,000 あなたは確かに、右の設計上の決定を行うことはできません 932 00:49:53,000 --> 00:49:56,000 そして確かにそれは、FacebookやGoogleのような場所で働くことになると 933 00:49:56,000 --> 00:49:59,000 ますます大規模なデータセットで遊んでいるこれらの場所のいずれかまたは 934 00:49:59,000 --> 00:50:01,000 あなたは戻って、医学部進学課程の学生かといくつかのMDで作業している場合でも 935 00:50:01,000 --> 00:50:04,000 患者と医師を含むいくつかの大規模なデータセット上の 936 00:50:04,000 --> 00:50:08,000 と適切なツールを使用してのように非常に説得力がある 937 00:50:08,000 --> 00:50:11,000 そうでなければ、いくつかのデータセットの解析結果は、数秒かかる場合がありますので、 938 00:50:11,000 --> 00:50:14,000 またはそれは文字通り時間がかかる場合があります。 939 00:50:14,000 --> 00:50:17,000 これは、どのように多くの努力であなたを挫折させるためではなく、ほんの一例です 940 00:50:17,000 --> 00:50:21,000 それはCであったが、あなたがC言語で何かを実装しない場合に役立つことを理解する 941 00:50:21,000 --> 00:50:24,000 あなたは本当に理解したり、理論的には、本当に理解して 942 00:50:24,000 --> 00:50:28,000 すべてはどのようにしているか、機能しなければならない、とあなたはほぼ完全に制御している 943 00:50:28,000 --> 00:50:31,000 フードの下で何が起こっている以上、これらのより高いレベルの言語で 944 00:50:31,000 --> 00:50:34,000 あなたがそれらを発明した人々に多くの制御を放棄しなければならない 945 00:50:34,000 --> 00:50:37,000 そしてあなたよりも彼らの設計上の決定に、より対象となります。 946 00:50:37,000 --> 00:50:41,000 しかし、パフォーマンスは当然私たちが取る場合 947 00:50:41,000 --> 00:50:44,000 なぜなら、これらの他の問題のWeb上で非常に重要ではありません 948 00:50:44,000 --> 00:50:47,000 ただネットワークの速度が、とにかくCPU速度よりも少し遅いです 949 00:50:47,000 --> 00:50:50,000 ので、我々はわずかに遅い言語を使用するように余裕を並べ替えることができます 950 00:50:50,000 --> 00:50:55,000 五分五分である場合、我々は10倍の速さ、あるいはそれ以上のものを開発することができます。 951 00:50:55,000 --> 00:50:57,000 >> 我々はこれを使用して起動する方法を見てみましょう。 952 00:50:57,000 --> 00:51:00,000 私はフォルダに行ってみよう 953 00:51:00,000 --> 00:51:03,000 今日の例のうち、frosh.imsと呼ばれる 954 00:51:03,000 --> 00:51:06,000 これは非常にまず最初に、その事実により、実際に個人的に動機づけられていた 955 00:51:06,000 --> 00:51:10,000 私はCS50とCS51を受けた後、数年前のWebのために書いた 956 00:51:10,000 --> 00:51:14,000 新入生IMSプログラムのためのウェブサイト、新入生学内スポーツだった 957 00:51:14,000 --> 00:51:16,000 一度これは、一度に十分な数年前にあることであった 958 00:51:16,000 --> 00:51:19,000 プログラムのためのウェブサイトは、Webがあったにもかかわらず、ありませんでした 959 00:51:19,000 --> 00:51:22,000 あなたが望んでいる場合、代わりにそれによってウィグルスワースでプロクターがあった 960 00:51:22,000 --> 00:51:26,000 バレーボールやサッカーや何のために登録するためには、一枚の紙に記入します。 961 00:51:26,000 --> 00:51:28,000 その後、ヤードを歩いて渡ると思います。 962 00:51:28,000 --> 00:51:31,000 その後、試験監督官へのドアや手に彼らのドアとスライドをノックでしょう 963 00:51:31,000 --> 00:51:34,000 あなたはチームのキャプテンになりたいかどうか、その上にあなたの名前を書いた紙を指さし、 964 00:51:34,000 --> 00:51:37,000 あなたはインチだったあなたが何をしたいか、スポーツ、どの寮 965 00:51:37,000 --> 00:51:39,000 それは物事の古い学校の道のようなものだったが、これは素数であった 966 00:51:39,000 --> 00:51:41,000 このプロセスの多くを自動化するための機会。 967 00:51:41,000 --> 00:51:43,000 あなただけのWebサイトを参照してください。あなたが何かを入力してインチ 968 00:51:43,000 --> 00:51:46,000 あなたが電子メールの確認、及びブームを取得すれば完了です。 969 00:51:46,000 --> 00:51:49,000 >> これは、パールと呼ばれる言語ではあるが、私が行った非常に最初のものだった 970 00:51:49,000 --> 00:51:52,000 それはPHPで行うのが比較的簡単だが、これは代表的なの一種である 971 00:51:52,000 --> 00:51:55,000 あなたが自分自身を表現することができたときに解決を開始する可能性のある問題の 972 00:51:55,000 --> 00:51:58,000 プログラムで、Googleサイトのようなものに頼る必要はありません 973 00:51:58,000 --> 00:52:01,000 またはExcelまたはあなたに手渡されているツール。 974 00:52:01,000 --> 00:52:03,000 君たちは今、このようなことをする能力を持っています。 975 00:52:03,000 --> 00:52:06,000 これは、フォームの超醜いバージョンです 976 00:52:06,000 --> 00:52:09,000 しかし、let 'sは、ちょうどこれはそれによって会話の初めのためにそれを使用する 977 00:52:09,000 --> 00:52:12,000 フォームは、私たちのために数年前のように見えた大体何 978 00:52:12,000 --> 00:52:14,000 Web上で人々が一年生のIMにサインアップできるようにします。 979 00:52:14,000 --> 00:52:18,000 我々は、彼らがキャプテンになりたかったかどうかのために、名前のチェックボックスを尋ね 980 00:52:18,000 --> 00:52:21,000 彼らは何であったか寮その後男性または女性、と、 981 00:52:21,000 --> 00:52:23,000 その後彼らは、このフォームを送信します。 982 00:52:23,000 --> 00:52:27,000 このウェブページを表すHTMLでフードの下に初見てみましょう。 983 00:52:27,000 --> 00:52:31,000 、私はfroshims0に行こう 984 00:52:31,000 --> 00:52:35,000 そして余談ですが、PSET 7のために、私は当たり前の取っている 985 00:52:35,000 --> 00:52:37,000 私はインチのものを入れていることをディレクトリとフォルダ 986 00:52:37,000 --> 00:52:40,000 ものがアプライアンスに行かなければならない場所を正確に我々はあなたを見ていきます、 987 00:52:40,000 --> 00:52:43,000 どのmodのコマンドは、実行する必要がありますので、すべての心配はありません 988 00:52:43,000 --> 00:52:46,000 愚かな詳細は、get-ここに行くからで同期。 989 00:52:46,000 --> 00:52:49,000 >> すべての権利、ここのfroshims0.php。 990 00:52:49,000 --> 00:52:52,000 、私は下にスクロールしてみましょう、何がここで好奇心旺盛だ 991 00:52:52,000 --> 00:52:56,000 これは明らかに、PHPのファイルですが、その中には何ですか? 992 00:52:56,000 --> 00:52:59,000 これはHTMLの全体の多くだし、確かに、PHPの起源 993 00:52:59,000 --> 00:53:02,000 本当にWeb中心の言語であるためだった。 994 00:53:02,000 --> 00:53:04,000 少し前に、我々は、ビールの例を実装するためにそれを使用し 995 00:53:04,000 --> 00:53:07,000 条件たとえば、Helloの例、および罰金です。 996 00:53:07,000 --> 00:53:11,000 あなたは、スクリプト言語としてPHPを使用することができます 997 00:53:11,000 --> 00:53:15,000 スクリプトは本当に迅速かつ汚いプログラムに与えられただけで命名です 998 00:53:15,000 --> 00:53:19,000 またはスクリプト化あるいはより一般的に解釈された言語で記述するもの。 999 00:53:19,000 --> 00:53:22,000 あなたはどのように迅速に見てきたので、PHPはそのための超便利です 1000 00:53:22,000 --> 00:53:24,000 相対的に我々は、PHPでプログラムを手早く作ることができます。 1001 00:53:24,000 --> 00:53:27,000 しかし、それは実際には、Web用に使用するように設計されました 1002 00:53:27,000 --> 00:53:31,000 とファイルの先頭に、ここに気づく感覚でWeb用に設計された 1003 00:53:31,000 --> 00:53:34,000 私は<?phpで始まるのですか。 1004 00:53:34,000 --> 00:53:38,000 それから私は、無駄なコメントの束を持って与えられますが、その後私はPHPモードを閉じます。 1005 00:53:38,000 --> 00:53:41,000 しかし、その後、私は、HTMLモードにドロップします。 1006 00:53:41,000 --> 00:53:45,000 >> 何PHPに関する興味深いのは、ファイルの末尾にもかかわらずです。PHP 1007 00:53:45,000 --> 00:53:48,000 それは一般的には、HTMLと共存混じりれることを意図している 1008 00:53:48,000 --> 00:53:50,000 いくつかのPHPコードは、一部のHTML。 1009 00:53:50,000 --> 00:53:53,000 そして、我々は我々が離れてそれらをいじめるために開始できることを最終的に表示されます 1010 00:53:53,000 --> 00:53:56,000 そして、完全に私たちのPHPから私たちのHTMLを分離しておく 1011 00:53:56,000 --> 00:53:59,000 しかし、PHPの起源は、本当に、あなたにこのような柔軟性を与えるためだった 1012 00:53:59,000 --> 00:54:02,000 あなたには、いくつかのHTMLをしたい場合はそれを書いて、それがされること 1013 00:54:02,000 --> 00:54:04,000 ブラウザとまったく同じように吐き出す。 1014 00:54:04,000 --> 00:54:07,000 しかし、あなたはいくつかのプログラミング技術を必要とする場合、 1015 00:54:07,000 --> 00:54:12,000 いくつかのプログラミング·コード我々はすぐにわかるように、あなたも、まったく同じファイルにそれを置くことができます。 1016 00:54:12,000 --> 00:54:14,000 ここに私のHTMLです。 1017 00:54:14,000 --> 00:54:16,000 私は一年生IMSのこのタイトルを持っている。 1018 00:54:16,000 --> 00:54:20,000 私は、途中でセンターのすべてに、その上にいくつかのCSSを持ってbodyタグを持っている 1019 00:54:20,000 --> 00:54:23,000 その後ダウンここで私は明らかに提出されようとしているフォームがある 1020 00:54:23,000 --> 00:54:27,000 register0.phpという名前の新しいファイルに、私たちは一瞬にしていることがわかります。 1021 00:54:27,000 --> 00:54:31,000 それは、我々は同様に戻ってくるポストと呼ばれるメソッドを使用している。 1022 00:54:31,000 --> 00:54:34,000 それから私はそのタイプがテキストであるいくつかのフォーム入力、名前と呼ばれるものを、持っている 1023 00:54:34,000 --> 00:54:37,000 名前タイプのチェックボックスです船長、ある1、 1024 00:54:37,000 --> 00:54:40,000 そして、この、我々の前にそれを見ていないが、それは正確にそれが言うことありません。 1025 00:54:40,000 --> 00:54:42,000 代わりに、テキストボックスのチェックボックスが表示されます。 1026 00:54:42,000 --> 00:54:46,000 ダウンここでは、それらの円形のボタンの一つであるラジオボタンを、持っている 1027 00:54:46,000 --> 00:54:48,000 あなたはどちらか、この1またはそのいずれかを選択することができます。 1028 00:54:48,000 --> 00:54:52,000 >> それは私が両方のラジオボタンの性別の名前を与えたことを意図的に気づく。 1029 00:54:52,000 --> 00:54:55,000 これは、あなたがクリックしなければなりませんそれによって相互排他を取得する方法である 1030 00:54:55,000 --> 00:54:58,000 この1またはその1、その他をクリックすることにより、どちらかの 1031 00:54:58,000 --> 00:55:01,000 それは、他のチェックを外しているので、それらに同じ名前を付ける必要があります 1032 00:55:01,000 --> 00:55:03,000 あなたは彼らがそのような相互に排他的なようにしたい場合。 1033 00:55:03,000 --> 00:55:07,000 そして、寮のために、私たちはこれをまだ見たことがないと思いますが、選択メニュー、ドロップダウンメニューです。 1034 00:55:07,000 --> 00:55:09,000 のタグはSELECTです。 1035 00:55:09,000 --> 00:55:11,000 次に、ドロップダウンメニューに名前を付ける 1036 00:55:11,000 --> 00:55:13,000 その後、これらのオプションの全体の束を持っています。 1037 00:55:13,000 --> 00:55:16,000 最初のものは、ただ美学のために、空の文字列です。 1038 00:55:16,000 --> 00:55:20,000 私はただ、デフォルトでは空白にドロップダウンを望ん 1039 00:55:20,000 --> 00:55:22,000 その後などApley、Canaday、グレー、その他のものがあります。 1040 00:55:22,000 --> 00:55:24,000 そして、ここで二分法に注目してください。 1041 00:55:24,000 --> 00:55:27,000 ドロップダウンオプションは、値を持っている 1042 00:55:27,000 --> 00:55:30,000 しかし、それは人間に優しい名前を持っているこの例では、 1043 00:55:30,000 --> 00:55:33,000 同じですが、私たちは本当に肛門になりたかった場合、我々は可能性があります 1044 00:55:33,000 --> 00:55:36,000 このドロップダウンの値は、ショートバージョンだけかも 1045 00:55:36,000 --> 00:55:39,000 グレーが、私たちは本当に人間が実際に表示されるグレーホールを言うことができる、 1046 00:55:39,000 --> 00:55:43,000 しかし、それはすべてのことは面白くないので、私はちょうどそれが簡単に保たそれらが同一で作りました。 1047 00:55:43,000 --> 00:55:46,000 次に、下底部に我々は、送信ボタンを持っている 1048 00:55:46,000 --> 00:55:49,000 その我々の前に見てきましたが、私はちょうどそれを別の単語を与えたにも注意してください。 1049 00:55:49,000 --> 00:55:53,000 代わりにCS50検索、私はラベル与えた "登録します" 1050 00:55:53,000 --> 00:55:56,000 >> 最終的な結果は、ここで再び、このウェブページであり、 1051 00:55:56,000 --> 00:56:00,000 これはどこに提出するのでしょうか。 1052 00:56:00,000 --> 00:56:04,000 それは、いくつかのファイル、action属性の値に提出される 1053 00:56:04,000 --> 00:56:07,000 どのregister0.phpだった。 1054 00:56:07,000 --> 00:56:09,000 ここで実際に何が起こるか見てみましょう。 1055 00:56:09,000 --> 00:56:13,000 私が先に行くと、このフォームに記入してみましょう、ダビデは、言う 1056 00:56:13,000 --> 00:56:16,000 男性、マシューズ、その後私は登録と言うでしょう。 1057 00:56:16,000 --> 00:56:18,000 私はズームアウトして登録をクリックしてみましょう。 1058 00:56:18,000 --> 00:56:22,000 わかりましたので、無用の一種が、実際に何が起こっているのを見てみましょう。 1059 00:56:22,000 --> 00:56:26,000 URLはregister0.phpなるように変更されたことに注意してください。 1060 00:56:26,000 --> 00:56:34,000 我々だけでフォームを送信していても、しかし、URLから妙に欠席とは何ですか? 1061 00:56:34,000 --> 00:56:37,000 [聞き取れない生徒の応答] 1062 00:56:37,000 --> 00:56:39,000 さて、それは優しいだけChromeのあるユーザは、これらの日です。 1063 00:56:39,000 --> 00:56:42,000 それはそこに実際にです。彼らはただ、スペースを節約するためにそれを隠す。 1064 00:56:42,000 --> 00:56:44,000 しかし、良い思考、良い考え。 1065 00:56:44,000 --> 00:56:46,000 URLのもう一方の端に向かって、しかし、何が欠けている?うん。 1066 00:56:46,000 --> 00:56:48,000 [学生]クエリ文字列。 1067 00:56:48,000 --> 00:56:51,000 クエリ文字列なので、私たちのシンプルなGoogle検索の例を思い出してください。 1068 00:56:51,000 --> 00:56:54,000 私はURL送信ボタンをクリックするとすぐに 1069 00:56:54,000 --> 00:57:00,000 Googleに連れて行ってくれましたが、その後があったか私はインチ入力したQ =コンピュータサイエンスまたはものは何でも 1070 00:57:00,000 --> 00:57:04,000 我々は検索の例でgetメソッドを使用しているためです。 1071 00:57:04,000 --> 00:57:06,000 >> 今回は、代わりにどのような方法を使っている? 1072 00:57:06,000 --> 00:57:10,000 ポスト、および即時の区別の1 1073 00:57:10,000 --> 00:57:14,000 GETとPOSTの間にその記事には、URLにユーザーの入力を入れていませんです。 1074 00:57:14,000 --> 00:57:16,000 それを隠します。それはまだそれを送信します。 1075 00:57:16,000 --> 00:57:19,000 我々は一瞬にして明らかに説明するように実際には、我々は、ここでブラウザで見ているもの 1076 00:57:19,000 --> 00:57:22,000 レジスタ0を見ることによって、私は内容を見ているされている 1077 00:57:22,000 --> 00:57:25,000 ブラウザからサーバーに送信された配列の。 1078 00:57:25,000 --> 00:57:29,000 しかし、URLは?を持っていない、任意のキーワードを持っていません 1079 00:57:29,000 --> 00:57:31,000 またはその中の値、およびその理由とは? 1080 00:57:31,000 --> 00:57:35,000 まあ、後は、あなたがまだサーバーにフォームからデータを送信することができます 1081 00:57:35,000 --> 00:57:38,000 しかし、それがURLに入れていない、情報の種類にはどのようなので、投稿です 1082 00:57:38,000 --> 00:57:41,000 あなたは、ユーザーを求めているときに、おそらく特に適し 1083 00:57:41,000 --> 00:57:44,000 フォームへの入力のタイプは? 1084 00:57:44,000 --> 00:57:48,000 パスワードのようなもの、他に何のようなもの? 1085 00:57:48,000 --> 00:57:50,000 クレジットカード番号。 1086 00:57:50,000 --> 00:57:53,000 あなたはおそらく、URLで終わるしたくない穏やかに敏感だもの 1087 00:57:53,000 --> 00:57:56,000 それはあなたのルームメイトや家族がちょうど通って輪唱できることを意味しますので、場合にのみ、 1088 00:57:56,000 --> 00:57:59,000 あなたのインターネットの歴史やその後文字通り、あなたのパスワードを参照してください。 1089 00:57:59,000 --> 00:58:02,000 文字通り、ほとんどのブラウザので、あなたのクレジットカード番号を参照してください。 1090 00:58:02,000 --> 00:58:05,000 あなたが見てきたどのようなURLが歴史の中で覚えている、 1091 00:58:05,000 --> 00:58:09,000 そうそれが悪い考えになるので、場合にのみ。 1092 00:58:09,000 --> 00:58:11,000 ユーザーからのポストを隠し、その詳細を使用しています。 1093 00:58:11,000 --> 00:58:14,000 >> また、どのようにFacebookに写真をアップロードするのですか? 1094 00:58:14,000 --> 00:58:17,000 さて、あなたは本当に使用できる唯一の​​2のメカニズム、 1095 00:58:17,000 --> 00:58:21,000 他のいくつかのより難解なものがあるにもかかわらず、GETとPOSTされています。 1096 00:58:21,000 --> 00:58:26,000 どのようにあなたは、おそらくURL経由で写真をアップロードするのですか? 1097 00:58:26,000 --> 00:58:28,000 あなたが実際にそれを行うことができます。 1098 00:58:28,000 --> 00:58:30,000 あなたは、JPEGまたはビットマップまたはGIFを取ることができ、あなたは、16進数でそれを表すことができます 1099 00:58:30,000 --> 00:58:32,000 ベース64と呼ばれるとか。 1100 00:58:32,000 --> 00:58:35,000 代わりに、基部16のあなたは本質的に次のようになりますベース64を使用 1101 00:58:35,000 --> 00:58:38,000 ASCII文字とは、実際にはURLを介して写真をアップロードすることができます 1102 00:58:38,000 --> 00:58:41,000 疑問符の後ですが、サイズの制限は、一般的にあります。 1103 00:58:41,000 --> 00:58:44,000 ほとんどのブラウザではURLは、文字数は1,000文字以内であることを強制 1104 00:58:44,000 --> 00:58:47,000 多分2000文字等がいるので、アップロードすることはできません 1105 00:58:47,000 --> 00:58:50,000 10メガバイトFacebookの写真。 1106 00:58:50,000 --> 00:58:54,000 そのためにあなたが同様のポストを使用しておりますので、今のところは、URLのパラメータを入れ始める 1107 00:58:54,000 --> 00:58:57,000 それは時々いいと便利ですが、敏感であるか、または大きい何のため 1108 00:58:57,000 --> 00:58:59,000 ポストは移動するための方法です。 1109 00:58:59,000 --> 00:59:02,000 レジスタ0は、実際にはここで何をやっている? 1110 00:59:02,000 --> 00:59:05,000 さて、私はこれは超簡単なページであることを通知レジスタ0を開く場合は、 1111 00:59:05,000 --> 00:59:09,000 それは、良くも悪くも、私は共同付き合うことができるという事実を実証している 1112 00:59:09,000 --> 00:59:12,000 PHPを使ってHTMLを表示します。 1113 00:59:12,000 --> 00:59:15,000 このファイル全体では、上部のコメントの場合を除き、HTMLです 1114 00:59:15,000 --> 00:59:19,000 ここでこの男を除いて。 1115 00:59:19,000 --> 00:59:22,000 >> 私のPHPコードの途中で注意してください、 1116 00:59:22,000 --> 00:59:26,000 私のHTMLの途中で、私は一時的のようなものを持って 1117 00:59:26,000 --> 00:59:28,000 PHPモードに入りました。 1118 00:59:28,000 --> 00:59:31,000 私は印刷Rと呼ばれる特殊な関数を呼んでいる。 1119 00:59:31,000 --> 00:59:34,000 これは、再帰的な印刷を意味し、何をするかと、それが再帰的に出力している 1120 00:59:34,000 --> 00:59:38,000 あなたがそれを渡すどんな変数、セミコロン、出口PHPモード。 1121 00:59:38,000 --> 00:59:40,000 とpreタグは、あなたに事前にフォーマットされたテキストを与える 1122 00:59:40,000 --> 00:59:43,000 すべてのスペース、あなたが実際にそれを参照するようにモノスペースのテキスト。 1123 00:59:43,000 --> 00:59:46,000 それが消えることはありません。ポストとは何ですか? 1124 00:59:46,000 --> 00:59:48,000 まあ、面白いとPHPに関する説得力のあるものだ 1125 00:59:48,000 --> 00:59:52,000 つまりあなたはGETまたはPOSTを使用してフォームを送信するたびに 1126 00:59:52,000 --> 00:59:56,000 ブラウザによってあなたに提出しているもの 1127 00:59:56,000 --> 01:00:00,000 PHPそれ自体は、それらのキーと値のペアが何であるかを割り出し 1128 01:00:00,000 --> 01:00:02,000 数字出疑問符があったら等号、数字はそこましょう。 1129 01:00:02,000 --> 01:00:07,000 それはあなたのためのすべてのハードワークを行い、その後、それはあなたに連想配列を渡す 1130 01:00:07,000 --> 01:00:10,000 ユーザーがフォームに入力したすべてのものを含む。 1131 01:00:10,000 --> 01:00:12,000 さて、このフォームがどのような分野を持っていたのですか? 1132 01:00:12,000 --> 01:00:14,000 >> それは4つのフィールドを持っていた。 1133 01:00:14,000 --> 01:00:16,000 ひとつは、名前というテキストフ​​ィールドだった。 1134 01:00:16,000 --> 01:00:18,000 一つは、キャプテンと呼ばれるチェックボックスでした。 1135 01:00:18,000 --> 01:00:22,000 一つは、ジェンダーと呼ばれるラジオボタンだった 1136 01:00:22,000 --> 01:00:24,000 もう一つは、寮と呼ばれるドロップダウンメニューであった 1137 01:00:24,000 --> 01:00:27,000 私は再帰的に印刷するときにそう気付く 1138 01:00:27,000 --> 01:00:29,000 この特殊変数の内容。 1139 01:00:29,000 --> 01:00:34,000 これは、すべて大文字で、$ _POST文字通りと呼ばれる特別なグローバル変数です。 1140 01:00:34,000 --> 01:00:39,000 これは、PHPがあなたのためだけに作成される特別なグローバル変数である 1141 01:00:39,000 --> 01:00:42,000 と手をあなたにあなたがすべてにアクセスできるように 1142 01:00:42,000 --> 01:00:45,000 それは、ユーザによるフォームから提出された。 1143 01:00:45,000 --> 01:00:48,000 と上の印刷rを呼び出すことによって、あなたは、通常のアプリケーションでこれをしないだろう。 1144 01:00:48,000 --> 01:00:50,000 我々は、この変数の内部を見るためにこれをやっている、 1145 01:00:50,000 --> 01:00:53,000 と、まあ、その中に4つのキー何だ、 1146 01:00:53,000 --> 01:00:56,000 4 HTTPパラメータ、いわば 1147 01:00:56,000 --> 01:00:59,000 次に名前、船長、性別、寮、そのユーザーの値 1148 01:00:59,000 --> 01:01:01,000 一つの例外でタイプされた。 1149 01:01:01,000 --> 01:01:03,000 私はタイプD-V-I-Dをやった。 1150 01:01:03,000 --> 01:01:05,000 私は明らかに値を送信した、男性のために、しかし、ボックスにチェックマークを付けた 1151 01:01:05,000 --> 01:01:07,000 簡潔に言えばちょうどmの。 1152 01:01:07,000 --> 01:01:10,000 >> 私が選択してしまった値ですマシューズを選択したとき 1153 01:01:10,000 --> 01:01:12,000 そして、この1つは少し愚かですが、それは慣習的なやり方です。 1154 01:01:12,000 --> 01:01:17,000 私は、ボックス上の値をチェックすると "オン"チェックボックスのために提出されました。 1155 01:01:17,000 --> 01:01:21,000 私はそれをチェックしていなかった場合、値は一切送信されませんでした。 1156 01:01:21,000 --> 01:01:26,000 これは、ちょうど私達に、この特別なグローバル変数の中身についての洞察を与えている、 1157 01:01:26,000 --> 01:01:29,000 そしてそれはスーパーグローバル変数と呼ばれるように特別なのです。 1158 01:01:29,000 --> 01:01:33,000 あなたが実際にそれにアクセスできるように、それはあなたのコードの中にあなたのためにどこにでも存在しています。 1159 01:01:33,000 --> 01:01:36,000 これは説得力のある、それでは、実際にスーパーグローバルを使用してみましょうということではありません 1160 01:01:36,000 --> 01:01:38,000 そして実際に誰かを登録しよう。 1161 01:01:38,000 --> 01:01:41,000 froshims1では、私は1つの変更を行いたいと思います。 1162 01:01:41,000 --> 01:01:44,000 私は、register1.phpするアクションを変更している 1163 01:01:44,000 --> 01:01:46,000 そして私はもう一つのことをやっています。 1164 01:01:46,000 --> 01:01:48,000 私は私のウェブページの品質が恥ずかしいのようなものだった。 1165 01:01:48,000 --> 01:01:52,000 それはかなり恐ろしいですが、正直なところなので、それが判明した 1166 01:01:52,000 --> 01:01:56,000 あなたは、Web上で非常に簡単に使用することができます 1167 01:01:56,000 --> 01:01:59,000 他の人のJavaScriptコードは、他の人のCSS 1168 01:01:59,000 --> 01:02:02,000 彼らが書かれており、オープンソースやライブラリとして利用可能にしたこと、 1169 01:02:02,000 --> 01:02:06,000 いわば、そして例えば、ここで私は自由に利用可能なライブラリを使用している、 1170 01:02:06,000 --> 01:02:08,000 他の誰かが書いたコードの束。 1171 01:02:08,000 --> 01:02:11,000 >> Twitterは、このコードを記述するために起こって、それは、ブートストラップ·ライブラリと呼ばれています 1172 01:02:11,000 --> 01:02:15,000 そしてそれはちょうど、CSSスタイルシートの束、cssファイルの束だ 1173 01:02:15,000 --> 01:02:19,000 その他の誰かが書いた、すべてが素晴らしく、非常に取得する方法を考え出した 1174 01:02:19,000 --> 01:02:22,000 私たちのような人々が美学について少し心配してはるかに多くを焦点を合わせることができるように 1175 01:02:22,000 --> 01:02:24,000 ロジックと実際のプログラミングについて。 1176 01:02:24,000 --> 01:02:30,000 私が以前styles3.cssために覚え使用したのと同じタグで、そのタグと、それをリンクすることにより、 1177 01:02:30,000 --> 01:02:34,000 私は今bootstrap.min.cssと呼ばれるファイルにアクセスすることができます。 1178 01:02:34,000 --> 01:02:37,000 Minは、ちょうど彼らがそれを縮小したことを意味し、彼らはなど、すべての空白を脱却しました 1179 01:02:37,000 --> 01:02:40,000 ちょうど彼らが私に私が実際に必要とするより多くのバイトを送信していないことを確認します。 1180 01:02:40,000 --> 01:02:45,000 私は今一年生のIMのバージョン1を開くので、もししかしそこには、CSSの全体の束である 1181 01:02:45,000 --> 01:02:49,000 私のファイルは間違いなくきれいであることに気づく。 1182 01:02:49,000 --> 01:02:54,000 今ではまだ黒と白だけだが、ちょうど彼らのスタイルシートを使用してことに気付く 1183 01:02:54,000 --> 01:02:58,000 と私のフォーム上の特定の機能を使用するには、驚くべきではありません 1184 01:02:58,000 --> 01:03:01,000 しかし、それは間違いなく、それは以前よりクリーンだし、プロジェクターはそれを正義を実行していません。 1185 01:03:01,000 --> 01:03:05,000 ボタンの周りと、テキストフ​​ィールドの周りに少し灰色の線は、右ここにあります 1186 01:03:05,000 --> 01:03:07,000 しかし、それは間違いなく、それが以前よりも明確なのです。 1187 01:03:07,000 --> 01:03:09,000 >> さて、公平に見て、私は私のマークアップビットを変更する必要がなかった。 1188 01:03:09,000 --> 01:03:12,000 これは、バージョン1であり、私はいくつかの新しいタグを使用していたことに気付く 1189 01:03:12,000 --> 01:03:17,000 私はマニュアルを読むまでは、正直なところ、私はこれを行う方法を知りませんでした 1190 01:03:17,000 --> 01:03:20,000 あなたが私たちのライブラリを使用したい場合は、Twitterのブートストラップ·ライブラリに対して、彼らは私に言った 1191 01:03:20,000 --> 01:03:23,000 、あなたのフォームの中にfieldset要素を使用 1192 01:03:23,000 --> 01:03:27,000 ラベル·タグのフィールド内側の横に表示させたい言葉を入れて、 1193 01:03:27,000 --> 01:03:30,000 その後、直前のように、あなたの入力の名前を付ける 1194 01:03:30,000 --> 01:03:34,000 その後、チェックボックスを、あなたは、label要素でそれをラップしないだけでなく、 1195 01:03:34,000 --> 01:03:36,000 あなたは、クラスと呼ばれるものを使用するので、我々は、前にこれを見ていない 1196 01:03:36,000 --> 01:03:39,000 しかし、あなたは、pset 7のショートパンツのいずれかでこれを見ることができます。 1197 01:03:39,000 --> 01:03:43,000 CSS内のクラスを使用すると、IDと非常によく似た何かを行うことができます 1198 01:03:43,000 --> 01:03:46,000 しかし、我々は、シャープ記号(#)でIDを持っていたときの前に 1199 01:03:46,000 --> 01:03:48,000 それは唯一無二の1つの要素だった。 1200 01:03:48,000 --> 01:03:51,000 どのクラスについての素晴らしいのは、複数の要素が同じクラスを持つことができるということです 1201 01:03:51,000 --> 01:03:54,000 あるいは同じCSSものがそれに適用される。 1202 01:03:54,000 --> 01:03:57,000 >> しかし、再び、短期のものについて、これの残りの部分は単なるコピー&ペーストです 1203 01:03:57,000 --> 01:04:00,000 私はこことそこにラベルを追加したところ、それぞれのドキュメントから。 1204 01:04:00,000 --> 01:04:03,000 そして最後に、ので、私は、上部にあるリンクタグを用意しました 1205 01:04:03,000 --> 01:04:06,000 すべてが自動的にきれいに見えます 1206 01:04:06,000 --> 01:04:10,000 単にそのように私のページをマークアップされたことにより、 1207 01:04:10,000 --> 01:04:12,000 Twitterが期待されており、非常に多くの異なる方法があり 1208 01:04:12,000 --> 01:04:14,000 これをやって、これは確かに非常に適していますの。 1209 01:04:14,000 --> 01:04:17,000 学期のこの時点で、あなたはPSET 7の仕様で説明するように、 1210 01:04:17,000 --> 01:04:20,000 、周りグーグルライブラリ上に読んで、他の人のCSSを使用して 1211 01:04:20,000 --> 01:04:23,000 とJavaScriptは、補助的な問題を解決する 1212 01:04:23,000 --> 01:04:26,000 問題セットにそれ自体は確かに奨励されている方法です 1213 01:04:26,000 --> 01:04:29,000 Webは他の人の肩の上に立って、これらの日に構築され 1214 01:04:29,000 --> 01:04:32,000 あなたは本当に新しくて面白い問題に焦点を当てることができるように。 1215 01:04:32,000 --> 01:04:34,000 しかし、それでは、再び、ロジックに集中することができます。 1216 01:04:34,000 --> 01:04:38,000 >> それはちょうどあなたが行くことができる方向を示すために美学上の迅速な回り道だった。 1217 01:04:38,000 --> 01:04:40,000 私は今のところ、醜いものに戻すつもりだという理由だけで 1218 01:04:40,000 --> 01:04:44,000 そこにTwitterのようなものとの気晴らしはありません、と私は先に行くと開いてみましょう 1219 01:04:44,000 --> 01:04:51,000 再び、register2.php、アクションだけが異なる、froshims2、 1220 01:04:51,000 --> 01:04:55,000 とのは効果がここにあるものを見てみましょう。 1221 01:04:55,000 --> 01:04:57,000 私が先に行くとDavidに入力しましょう​​。 1222 01:04:57,000 --> 01:04:59,000 今回は船長ではありません。 1223 01:04:59,000 --> 01:05:01,000 私はマシューズ、レジスタ、男性と言うでしょう。 1224 01:05:01,000 --> 01:05:05,000 ちくしょう。さて、それは私の一部で台無しだ。 1225 01:05:05,000 --> 01:05:07,000 スタンドバイ。 1226 01:05:07,000 --> 01:05:17,000 レジスタ2、22行目、空の場合、または-申し訳ありませんが。 1227 01:05:17,000 --> 01:05:19,000 リロードしてみましょう。 1228 01:05:19,000 --> 01:05:22,000 さて、ちょうど何が起こったのか、このフォームを送信すると? 1229 01:05:22,000 --> 01:05:25,000 私はデイヴィッドで入力し、マシューズ、レジスタをクリックすると、男性のチェック。 1230 01:05:25,000 --> 01:05:27,000 あなたが登録されています。 (まあ、そういうわけではありません。) 1231 01:05:27,000 --> 01:05:32,000 これは、明らかに単にいくつかの変数の内容をプリントアウトする一歩である 1232 01:05:32,000 --> 01:05:34,000 ただし、このファイルは実際に何をやっている? 1233 01:05:34,000 --> 01:05:37,000 register2.phpで 1234 01:05:37,000 --> 01:05:40,000 私はいくつかの新しいコードを持っていることに気づく。 1235 01:05:40,000 --> 01:05:44,000 私のbodyタグの内部で私が構築した場合、他の本質的に持っている、 1236 01:05:44,000 --> 01:05:47,000 しかし、私はいくつかのHTMLでこれを共同混ざってるから 1237 01:05:47,000 --> 01:05:51,000 私は前後にPHPモードを開始および終了する必要がありますので、私がやっているのか見てみましょう。 1238 01:05:51,000 --> 01:05:55,000 >> それが事実である場合は、ここを最初の行では、私は言っている 1239 01:05:55,000 --> 01:06:00,000 ポストスーパーグローバルは、名前のキーの空であること 1240 01:06:00,000 --> 01:06:04,000 だから、他の言葉で、ユーザーが私のフォームでnameの値を与えていない場合 1241 01:06:04,000 --> 01:06:07,000 次に、空の値が空であるためtrueを返すために起こっている。 1242 01:06:07,000 --> 01:06:11,000 性別は空であるか、気付く縦棒、場合 1243 01:06:11,000 --> 01:06:15,000 再度、フォームの内容を表し、この特別なスーパーグローバルでの内部 1244 01:06:15,000 --> 01:06:19,000 寮が空であるか、私は先に行くとユーザーで叫ぶつもりです。 1245 01:06:19,000 --> 01:06:22,000 どうやって?まあ、私はあなたの名前、性別、寮を提供しなければならないと言うつもりですがわかります。 1246 01:06:22,000 --> 01:06:24,000 実際にその間違いを誘発してみましょう。 1247 01:06:24,000 --> 01:06:27,000 私は私のフォームに戻りましょう。私はそれをクリアするためにリロードしてみましょう。 1248 01:06:27,000 --> 01:06:30,000 そして、私はちょうどそれらにデビッドを与えるつもりだ、と彼らは私が住んでいるかを知る必要はありません。 1249 01:06:30,000 --> 01:06:33,000 登録します。どうやら私は、私が住んでいる場所を指示する必要があります。 1250 01:06:33,000 --> 01:06:35,000 あなたの名前、性別、寮を提供する必要があります。戻ってください。 1251 01:06:35,000 --> 01:06:39,000 >> そして、私はそのフォームに戻ってクリックすることもできますが、その理由は何ですか? 1252 01:06:39,000 --> 01:06:43,000 まあ、そのケース名で、空ではありませんでしたが、性別があって、寮があった 1253 01:06:43,000 --> 01:06:47,000 ので、この式全体が構文が少し新しい場合でもtrueに評価され、、 1254 01:06:47,000 --> 01:06:51,000 再び、我々は、if文おなじみのPHPモードを、次のように入力します 1255 01:06:51,000 --> 01:06:54,000 しかし、ここで新たな部分は、ちょうどこのコロンですが、私は括弧を省略することで台無しにしていた 1256 01:06:54,000 --> 01:06:57,000 偶然ですが、コロンに気づく、それが意味する 1257 01:06:57,000 --> 01:07:00,000 我々は、PHPモードのすべてを終了しているにもかかわらず、 1258 01:07:00,000 --> 01:07:03,000 それは、ブラウザにそのまま吐き出すべきである次の 1259 01:07:03,000 --> 01:07:07,000 我々がここでやっているようでは、elseブロックが表示されるまで、 1260 01:07:07,000 --> 01:07:10,000 代わりにこれを吐き出すべきで、その場合、 1261 01:07:10,000 --> 01:07:13,000 あなたはとてもendifの、いくつかのわずかに新しい構文が表示されるまで 1262 01:07:13,000 --> 01:07:16,000 それは私がHTMLとPHPを切り替えることができます。 1263 01:07:16,000 --> 01:07:19,000 我々は、今のところ、最終的にはこの上をきれいにすることができる 1264 01:07:19,000 --> 01:07:22,000 それには、フォームをチェックし、エラーの説得力のある方法のようなものだ。 1265 01:07:22,000 --> 01:07:25,000 >> 今、私は、明らかに我々がしますが、データ何もしなかったので、あなたが本当に登録していないと言う 1266 01:07:25,000 --> 01:07:28,000 ので、実際に涼しい何かをしてみましょう。 1267 01:07:28,000 --> 01:07:33,000 froshims3の唯一の違いは、私はレジスタ3に提出するつもりである 1268 01:07:33,000 --> 01:07:35,000 HTMLのように同じことがあります。 1269 01:07:35,000 --> 01:07:38,000 レジスタ3でこれに気づく。 1270 01:07:38,000 --> 01:07:40,000 この1つは、セクシーの一種である。 1271 01:07:40,000 --> 01:07:44,000 私はrequireステートメントを使用している上部には、これは#includeのようなものです。 1272 01:07:44,000 --> 01:07:46,000 今回は、それがstdio.hやそれに類するものではありません。 1273 01:07:46,000 --> 01:07:50,000 これは、PHPのライブラリだし、この1はphpmailerのと呼ばれています。 1274 01:07:50,000 --> 01:07:53,000 どのように私は、まさにこの引用符で囲まれた文字列を含めることをご存知でしたか? 1275 01:07:53,000 --> 01:07:56,000 彼らは私がファイルの先頭にこれを入れて話したとき、私はそう、マニュアルにそれを読む 1276 01:07:56,000 --> 01:08:00,000 あなたはそれが言っていることphpmailerのと呼ばれる特殊なライブラリを使用したい場合。 1277 01:08:00,000 --> 01:08:03,000 それは、PHP経由で電子メールを送信することができます。 1278 01:08:03,000 --> 01:08:05,000 今ではさらに下にスクロールしてみましょう。 1279 01:08:05,000 --> 01:08:08,000 >> 私はPHPモードでこの全体の時間だを開始するに注意してください、 1280 01:08:08,000 --> 01:08:11,000 だから今は、そのライブラリをインポートした後、ここに気付く 1281 01:08:11,000 --> 01:08:13,000  いわば、私はいくつかの健全度チェックをやっています。 1282 01:08:13,000 --> 01:08:16,000 それは、名前が空でない場合なら 1283 01:08:16,000 --> 01:08:19,000 と性別は空に気付かないで感嘆符を 1284 01:08:19,000 --> 01:08:24,000 と寮が空でない場合、ユーザーは、論理的には、少なくとも十分に、フォームに記入しています。 1285 01:08:24,000 --> 01:08:28,000 彼らは船長またはいないのであれば私は気にしないでください。私は自分の名前、性別、寮をちょうど必要とする。 1286 01:08:28,000 --> 01:08:31,000 これらのフィールドのどれも空になっていないので、彼らは、それらのうちを満たしている場合 1287 01:08:31,000 --> 01:08:33,000 これは少し新しい構文です。 1288 01:08:33,000 --> 01:08:36,000 PHPは、余談ですが、オブジェクト指向プログラミング言語である 1289 01:08:36,000 --> 01:08:39,000 あなたたちの一部は、APC等から思い出すかもしれない。 1290 01:08:39,000 --> 01:08:42,000 不慣れな場合、今のところ、ちょうどこのライブラリを使用することを知っている 1291 01:08:42,000 --> 01:08:45,000 あなたは、新しいキーワードを使用して、このようなコードの行を記述する必要があります 1292 01:08:45,000 --> 01:08:47,000 文字通り新しいキーワードは新しいと呼ばれる。 1293 01:08:47,000 --> 01:08:50,000 しかし、それを超えて、我々はいくつかの見慣れた構文を持っています。 1294 01:08:50,000 --> 01:08:54,000 それは、我々はポインタの文脈で構造体に対して使用されるものに類似している矢印演算子、です。 1295 01:08:54,000 --> 01:08:57,000 今日のためにPHPは、ポインタを持っていません 1296 01:08:57,000 --> 01:09:01,000 しかし、今、メール変数と内部のために知って 1297 01:09:01,000 --> 01:09:05,000 特別なライブラリへのポインタの本質一種である 1298 01:09:05,000 --> 01:09:08,000 他の誰かが書いて、私は特定の機能にアクセスしたい場合は、その 1299 01:09:08,000 --> 01:09:12,000 そのライブラリの内部で、私は、C言語のように、矢印演算子を使用するのですか、 1300 01:09:12,000 --> 01:09:14,000 これらは実際にはポインタではないにもかかわらず。 1301 01:09:14,000 --> 01:09:16,000 それは、そのPHPの独自のバージョンのようなものだ。 1302 01:09:16,000 --> 01:09:20,000 これは、図書館に行くとIsSMTP関数を呼び出すことを意味します。 1303 01:09:20,000 --> 01:09:23,000 電子メールを参照するネットの戦士達からのSMTP、リコール、 1304 01:09:23,000 --> 01:09:28,000 そしてそれはちょうどこの一年生IMS登録のための電子メールサーバを使用することを意味します。 1305 01:09:28,000 --> 01:09:30,000 >> 私が使用するには、どのようなホストをしたいですか? 1306 01:09:30,000 --> 01:09:34,000 さて、ハーバード、あなたの周りのGoogleは、smtp.fas.harvard.edu呼ばれる電子メールサーバを持っている場合。 1307 01:09:34,000 --> 01:09:37,000 またはご自宅で一緒にプレーしている場合は、Comcastがネットワーク上に生きる 1308 01:09:37,000 --> 01:09:40,000 それはsmtp.comcast.netようなものかもしれない。 1309 01:09:40,000 --> 01:09:43,000 それは完全にあなたが住んでおり、ISPが誰なのか場所によって異なります。 1310 01:09:43,000 --> 01:09:47,000 その後、私はjharvard@cs50.netように任意にされた住所からは、私を設定するつもりです。 1311 01:09:47,000 --> 01:09:52,000 私はその後、jharvard@cs50.netように対処するために設定するつもりです。 1312 01:09:52,000 --> 01:09:55,000 私は、これらの関数が呼び出されたことを知っていた唯一の方法そして本文とAddAddress 1313 01:09:55,000 --> 01:09:57,000 再び、私は資料をお読みください。 1314 01:09:57,000 --> 01:09:59,000 これは、魔法のように、すべてのプログラマーに知られたものでもありません。 1315 01:09:59,000 --> 01:10:02,000 それから私は対象に設定された "登録を。" 1316 01:10:02,000 --> 01:10:07,000 ドット演算子は、PHPで何を意味していないため、現在はこの行は少し醜いですか? 1317 01:10:07,000 --> 01:10:09,000 誰もが知っているか? 1318 01:10:09,000 --> 01:10:11,000 連結します。 1319 01:10:11,000 --> 01:10:14,000 C言語では、それは一緒に2文字列を連結するための首の痛みです。 1320 01:10:14,000 --> 01:10:17,000 あなたは、mallocやreallocまたはその原料のすべてに対処しなければならない 1321 01:10:17,000 --> 01:10:20,000 単に文字列の長さを拡張することができます。 1322 01:10:20,000 --> 01:10:22,000 JavaScriptでPHPと他の言語で 1323 01:10:22,000 --> 01:10:24,000 あなたは通常、単一の文字でこれを行うことができます。 1324 01:10:24,000 --> 01:10:28,000 この場合、ドットがここにこの文字列を取ることを意味します 1325 01:10:28,000 --> 01:10:30,000 そしてそれには、この文字列を追加します。 1326 01:10:30,000 --> 01:10:32,000 >> 、ああ、ところで、それには、この文字列を追加 1327 01:10:32,000 --> 01:10:34,000 これは、そのスーパーグローバル変数の内部にあることを起こる。 1328 01:10:34,000 --> 01:10:37,000 それに新しい行を追加しますので、これらのすべてのドットの意味は、単に 1329 01:10:37,000 --> 01:10:39,000 、どんどん大きくし、大きな文字列を作り続ける 1330 01:10:39,000 --> 01:10:43,000 そしてあなたは、mallocまたはこのような言語のような約全然気にする必要はありません 1331 01:10:43,000 --> 01:10:46,000 そしてそこにこれを行うには、他の方法ですが、これは最速の一つである 1332 01:10:46,000 --> 01:10:48,000 それをレイアウトする方法。 1333 01:10:48,000 --> 01:10:50,000 これは何をやっている? 1334 01:10:50,000 --> 01:10:55,000 キャプテン:性別:寮、それは名前を言おうとしている電子メールの本文を作成している: 1335 01:10:55,000 --> 01:10:58,000 してから、最後に、別々の行にすべての 1336 01:10:58,000 --> 01:11:00,000 1行のコード、と私は今のところ、これを無視するつもりです。 1337 01:11:00,000 --> 01:11:02,000 偽==はちょうど何かが間違っていた場合を意味し、場合 1338 01:11:02,000 --> 01:11:04,000 しかしマジックはここで起こる。 1339 01:11:04,000 --> 01:11:08,000 メール送信は、このメールを送ることを意味します。 1340 01:11:08,000 --> 01:11:10,000 正味の結果が何であるかを確認してみましょう。 1341 01:11:10,000 --> 01:11:13,000 ファイルの一番下にある、それはあなたが本当に登録されていると言うことが起こっているのに気付く 1342 01:11:13,000 --> 01:11:15,000 私はそこまで行く場合。 1343 01:11:15,000 --> 01:11:18,000 しかし、場合には、ユーザーがネジまで、我々がこれを始めたことに気付く 1344 01:11:18,000 --> 01:11:21,000 ここまで条件があれば、それが空と空ではないではない場合 1345 01:11:21,000 --> 01:11:24,000 そして我々はメールを送って空にしない。 1346 01:11:24,000 --> 01:11:27,000 そうでなければ我々は、このコード行を送信しようとしている 1347 01:11:27,000 --> 01:11:30,000 ユーザーをリダイレクトするのどちらがPSET 7でわかるように、効果があることを行って、 1348 01:11:30,000 --> 01:11:35,000 彼らが戻って来て、froshims3.phpへ。 1349 01:11:35,000 --> 01:11:38,000 >> 指がそうでなければ、これは今日最も期待はずれデモになるだろう、交差させた。 1350 01:11:38,000 --> 01:11:40,000 ここに私達は行く。 1351 01:11:40,000 --> 01:11:42,000 私はGmailでjharvardのための私の電子メールの受信トレイを開いてみましょう。 1352 01:11:42,000 --> 01:11:44,000 今も電子メールはありません。かしこまりました。 1353 01:11:44,000 --> 01:11:53,000 今私は、私たちがここを見てみましょう3番目と最後の例ですfroshims3を開くことができます。 1354 01:11:53,000 --> 01:11:55,000 さて、ここで私達は行く。 1355 01:11:55,000 --> 01:12:00,000 ネイトは、彼がApley、言うから、、、男性のキャプテンになるでしょう。 1356 01:12:00,000 --> 01:12:04,000 登録します。さて、あなたは、本当に登録されています。 1357 01:12:04,000 --> 01:12:07,000 今私は私の電子メールに上にスクロールすると、ああ、私の神。 1358 01:12:07,000 --> 01:12:09,000 私は動的にWeb上で電子メールを送信した。 1359 01:12:09,000 --> 01:12:11,000 >> そのノートに残しましょう​​。 1360 01:12:11,000 --> 01:12:16,000 ビデオは、我々は逃した講演のために準備しています。来週お会いしましょう​​。 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]