[Powered by Google Translate] [週8]
[デビッド·Jマラン] [ハーバード大学]
[これはCS50です。] [CS50.TV]
>> お帰りなさい。
これはCS50であり、これは第8週の始まりです。
機会のカップル今週、
その中でここでこの話は、その時にいくつかの食品が提供されます。
詳細については、オンラインになっているスライドをチェックアウト。
そしてまた、私たち自身のトーマスCarrieroによって別のイベント今週。
彼は、DropboxのになりましたCS50の元ヘッドティーチングフェローの一つだ
そして彼は、あなたが何を知っていると私たちを夢中に男だ
あなたがDropboxと詳細については、この日の午後彼らの話にその頭のもっとしたいので、もし。
CS50ランチは今週の金曜日です。
あなたは火と氷で、いつものように、1時15分、できましたらご参加ください。
>> そして今、我々はセミナーと呼ばれる何かに飛び込む。
当社CS​​50セミナー、リコールは、ティーチング·フェロー率いるこれらのオプションのクラスです
もちろん、もちろんアシスタントや友人、
のグループであるABCDと呼ばれるキャンパスのグループからの人々
キャンパスでtechnophilesならびにHCSと呼ばれるグループ、
ハーバードコンピュータ協会、同様のコンピューティングに興味を持っている大学生。
セミナーの今年の名簿には、AndroidとiOSとJavaScriptに関するセミナーが含まれています
とPHPは、Unix、Vimは、よりので、これらのセミナーが予定されていることを認識しています。
あなたがのためのRSVPを希望される場合は、それらのいずれかが存在し、そのURLへ向かいます。
彼らが確定されれば、我々はその後、コースのウェブサイト上で時間と場所を掲示します。
しかし、使用可能な事前のオンラインセミナーのそこの5年間の価値を知っている
それらの多くはあなたが可能性がある技術の面でまだ非常に現在のものです
あなたの最終的なプロジェクトのためにプレーしたいので、そのいくつかの利用可能なビデオのためにそこに向かう。
>> CSSは、すでにCSSに精通しているあなたの人々、
一言で言えば、それは何ですか？
CSSとは何ですか？
それは、カスケーディングスタイルシートだし、それが何を意味するのか？
それは、私たちのためにCSSを何をしますか？
すべての権利は​​、のは簡単1、HTMLハイパーテキストマークアップ言語でウォームアップします。
それが私たちのために何をしますか？
まったく誰ですか？
それは、これらの質問を本当に厄介になってきている。
HTML、ハイパーテキストマークアップ言語。
はい？いいえ？
[聞き取れない生徒の応答]
さて、良い、それは私たちがWebブラウザに表示するテキストをマークアップすることができます。
それは、プログラミング言語ではありません。
それは確かにそれが表示する方法をブラウザに指示意味のマークアップ言語です
情報は、我々が見てきたように、このように最も簡単なの化身
boldfacingような何か超シンプルですが、オープンブラケットbはブラケットと言う閉じた
このテキストを太字にすると、それだけで実際には多くの方法の1つです
我々は確かにそれを行う、とのできる、これらの日より良いアプローチ
物事は太字や斜体作り、あなたのWeb​​ページをスタイに
そして中心に、正当化などが挙げられ、単独でHTMLタグを介して行われていません
むしろ、CSSと呼ばれる技術では、カスケーディングスタイルシート。
これはそれ自体が言語です。
それはあまりにもプログラミング言語ではありませんが、
誰もが、これが今日の私たちに参加保ちダンです。
いくつかの技術的な難しさ。問題ありません。
>> CSSは、私たちがページを型にはめることができます
プロパティと呼ばれるものを設定することで、それでは、これを見てみましょう
基本的な例をいくつかの方法で。
私は今日アプライアンスに行こう。
私は、ここでソース8月曜日のディレクトリを持って
と私は、全体の束を持っているCSSというディレクトリに行くつもりです
右ここに私達を待っているファイルの、
そしてこのフォルダ内に、我々は、例えば、前回からsearch0.htmlを持っています。
今、私たちがこのノートに残さsearch0とリコール
一週間ほど前にGoogleや本当にそれだけのためにフロントエンドを実装するための並べ替え、
そして我々はそこにいくつかの新しいタグを持っていたことに気づく。
私たちは、大きな、大胆な見出しのh1を持っていた
私たちは実際にユーザ入力用のHTMLフォームを持つことを許さフォーム、。
アクション、action属性の意味は何だった
HTMLのformタグに？
この、行動の意味は何でしたか？
私は、今日はこれだけやる。
アクションは、フォームが送信されようとしている場所へのデスティネーションです。
言う事実アクション= "google.com /検索"
ユーザーがクリックしたときに、ボタンまたは同等のものを提出することを意味します
どんなフォーム彼らは記入しないフィールドが当社のサーバーに送信しようとしている
または当社のアプライアンスではなく、Googleのその特定のURLへ。
そして、それは使用するために起こっているメソッドは、取得と呼ばれ
そして、今のところ、ちょうどWebサーバに沿った情報を渡すための技術であり、取得
URLを使用して、それでは、どのようにこの作品で戻って簡単に見てみましょう。
>> 名前はqである入力があることに注意してください
提出してから、テキスト型の第二の入力を持つタイプです
その値は、CS50検索であり、確かに、我々はここで、このファイルを開く場合は、
sea​​rch0.html、それが超簡単な形ですが、
とコンピュータ科学のような何かのために、私が検索した場合
と入力し、EnterまたはCS50検索をクリックして打つ
何が起こるかGoogleになって超えていることに気付く
私は具体的には、上部に次のURLにアクセスしてしまった
google.com /索？Q =コンピュータ+科学、
と計算機科学は、私が入って入力した内容は明らかにされ
+はちょうど空白文字があったところであることを意味
そしてそれはちょうどノーがあることを確認するためにブラウザで行うの
実際のURLの混乱と空白。
そして、Qはもちろん、パラメータ名です。
我々は、プログラマが、まだ実際にはqをアクセスする方法を見ていない。
我々は、Googleがここにこれをどのように処理するかを知っていると仮定することができます
しかし、我々は今日が期限内にあり得るでしょう。
>> しかし、私はsearch1.htmlではなく見てみましょう
これは私がここでこの形がほんの少しラメであると判断しましたので、多少異なって見えます。
私が言いたいのは、それが左上にあります。
そこには美学はそれに本当にありません、ので、私はこれを型にはめるたい
より多くのホームページにGoogleのようなビット、リコール、
あなたはそれを頻繁に訪問しないかもしれませんが、ハロウィンに、今日、このように見えます。
我々は、代わりにこのファイルは、検索1.htmlをのバージョン1を開けば、私はそれを中心としてきました。
まだかなり醜いが、少なくとも今のところ、私はこのページの美学を制御するために始めた、
だけではなく、そのマークアップする。
の検索1を見てみましょう、とただ一つの違いは、ここでは本当にあり、
それは、あなたに飛び出す、またはそうでないかもしれないかもしれない
その差の1行またはスニペットは何ですか？
>> このスタイルの属性がありますので、それが判明し、そのHTML内の
ほとんどの要素は、ほとんどのタグは、それらのスタイル属性を持つことができます
そのスタイル属性の内部、引用符で囲んだ文字列です
その引用符で囲まれた文字列はCSSです。
あなたはそこにカスケーディング·スタイル·シートを置くことができます
プロパティ名として指定することにより
値は、コロン。
これは何年か前に不幸な設計上の決定の一種である
CSSは、それ自体が言語であること、
しかし、文法的には、HTMLとは非常に異なるです。
この場合において、我々は、HTMLで書かれている私のウェブページのその内部を見る
私はこれらの引用符の内部CSSを持っており、CSSの規則
あなたが続く財産、再び、コロン、と呼ばれるものを持っているということです
そのプロパティの値が続くので、どんな等号はありません。
追加の引用符がありません。
それは、ちょうどこのコロンで区切られたキーと値のペアです
とテキスト行は、それが言う正確に行います。
それは、本当にページの根性あるページの本文にテキストを揃え
中心部にあります。
>> さて、最終的な結果は、その後、明確にすること、これである。
すべてではないことをセクシーだが、少なくともそれをセンタリングして本物のGoogleのような、もう少しだ。
しかし、私はこれに代えてバージョン2に何を開く場合
と完全にダウンしてここに新たなタグを指摘？
今では、以前はタグを持っていた私のページの頭で
以前のすべての例では？
それはちょうど、タイトルがこれを持っていた。
少し前にheadタグはこのように見えた。
今ではなく、それはそれの内のスタイルタグを持って、
これはあまりにも、私は謝罪、構文的には、HTMLと非常に異なって見える
しかし、あなたはそれによって内部のスタイルタグの、それに慣れる
私は今、少し前に何であったかを考慮することができます
属性、style属性、と私は私のページの最上部にそれを置くことができます。
>> なぜですか？
まあ、これは、Cのコードを書くことに多くのように、物事をクリーンアップの第一歩です
我々は時々、共通の機能をくくり出すための関数を記述します。
それだけで美学のようなものファクタリングアウトを開始する少しクリーナーです
むしろあなたのHTML全体のすべてまき散らすそれを有する複数の中央の場所にコピーします。
これは、あまりにも新しい構文のビットがあるにもかかわらず、それが言うことありません。
これはここにセレクタであり、本体は本体だけの要素を選択することを意味します
し、次のプロパティを適用します。
さて、プロパティはまったく同じです。
良い測定のために私は、末尾にセミコロンを追加しました
どの大会になる傾向がある、と私はこの全体のプロパティをまとめました。
中括弧でいるので、私は実際にここで別のものを持っている可能性があります。
私は実際に色とか言うことができる：青;
>> さて、これはすべてのことあまりにもきれいに何の第一歩になることはない、
しかし、私は今のバージョンに戻す場合は2私は、少なくとも今私の身体を作った
ページのテキストすべて青。
それは入力だからボタンは同じままです。それは純粋なテキストではありません。
しかし、トップアップCS50検索のように、テキストである他のすべては、実際に青になっています。
繰り返しますが、我々が今やったすべては、bodyタグからの通知を削除している
style属性、そして我々はここで因数分解し、それをしました。
これは大きな改善はありませんが、我々はさらにこれを一歩進めた場合
我々はここで、この第三版では何ができるかに注目してください。
>> sea​​rch3.htmlでWebページはほとんど同じです
今、何が新しいタグを除いて？
リンクなので、この1つは非常に適切に名付けされていません
あなたは、クリック可能なハイパーリンクの意味でリンクしていないので。
むしろ、C言語での＃includeに相当するものをやって一種のだ
それによってhref属性を持つリンクタグ
とrel属性は、先に行くと言う
そしてコピーは本質的に、右ここsearch3.cssというファイルの内容を貼り付けます。
それはかなりのことをしませんが、それはそれの精神だ。
、search3.css、そのファイルを開いて行くそれを言う
そして、ユーザーがページの頭の中で右ここでそれを入力したかのようにそれを扱う
私は、前の例で行ったように。
Search3.cssは、一方で、非常に単純です。
それは本当にちょっと前だったかを正確に含まれています
styleタグで、しかし、私は独自のファイルにそれをここに織り込ん出てきました。
>> 私たちは、HTMLやWebプログラミングですべてで多くの時間を費やしていないにもかかわらず
ただ直感的に動機がファクタリングのため、おそらく、何がアウト
独自のファイルにあっても、CSSのこの小さな断片
し、ここで、このリンクタグを使用して、それを含めて？
[聞き取れない生徒の応答]
さて、それはあなたがCSSファイルにCSSを持っているという意味で読みやすいです。
あなたのHTMLファイルでHTMLを持っているので、その意味で読みやすい。
他に何が魅力的になるのでしょうか？うん。
[聞き取れない生徒の応答]
ええ、そう、あなたがそれを何回も含めることができますので、今私たちは、これらをやっている
個々のファイルの基本的な例ですが、あなたが実際に作っていると仮定
あなたのような本物のウェブサイトは、PSET 7または多分あなたの最終的なプロジェクトの意志
そしてあなたは確かに一般的であるように、複数のWebページを持ちたい
実際のワールド·ワイド·ウェブ（WWW）、そして、それはラメのようなものであろう
同じ青色のコピーと貼り付けを持っている
と同じテキストは、それらのページの一つ一つに中心を揃え。
むしろそれは、我々はC言語でやったのと同じように、睨むより理にかなっている
hファイルで、1か所に置き、
この場合search3.cssにして、任意のファイルを許可
あなたのウェブサイトで実際にここ16行目で、このタグを経由して、そのファイルを含めることができます。
一般的なケースとして、私たちは、バージョン0で開始作品のどの種類
しかし、最善のは必ずしも、各作業段階と、それにされていません
検索1、検索2、今検索3私たちは、これらの赤ちゃんの歩を踏み出しました
少しクリーナーであり、より多くの準備なデザインに向かって
我々は道をやるかもしれないという、より複雑なページのために。
>> 私はただ見せるにはここを最後の一例を開いてみましょう
さらに定型化されたページが、最初のHTMLを見てみましょう。
これはsearch4.htmlであり、構造的にはほぼ同じだということに気づく
新しいタグの導入のための点を除いて、div。
divはページの分割を紹介タグです。
あなたは、目に見えない長方形と考えることができます。
これは、種のウェブページ内の領域の帯状を作成
あなたは、一度にすべてを型にはめることができます。
私がここでやったことは次のとおりです。
すべてに沿ってあった私のbodyタグの内部では、
私は、47を介してライン45を介してここにページの分割を作成して言っている
それは本質的に私にページの上部に沿って目に見えない矩形を与えることを意味します。
その後、以下、私には見えないとはいえ2つ目の四角形を、与えること、
そして、最後に、名前の内容によってそれを識別し、
私の一番下にあるページの第三師団を与える
IDと呼ばれる。
私は一瞬でこれをやった理由は我々が表示されます、
しかし、概念的私はヘッダ部門を持っています。
私は、コンテンツ部門を持っている、と私はページのフッター部門を持っている
これらは単なるマークアップであるにもかかわらず。
ユーザーは、3つの長方形を見に行くされていません
しかし舞台裏で構造的にそこに一種の
彼らは実際に存在している。
>> さて、誰も気にしない？なぜ、実際にこれを行う？
ページ上の他のすべては、我々は前に見たのと同じです。
ここに私のフォームだ。ここに私の入力は、私の入力、改行などです。
ここではイメージです、しかし、私たちはこれがちょうど瞬間にどこから来たのかがわかります。
ここに新しいですフッターは、私が紹介したかったという理由だけで、だ
ここではいくつかのより多くのコンテンツ。
我々は上にスクロールする場合は、このdivのIDがヘッダーであることに気づく。
このdivのIDがコンテンツであり、この1つのIDはフッターです。
名前が示唆するようにと、あなたはID属性を持っているとき
HTMLでは、定義によって、それは一意に識別する必要があります
要素の一つで、あなたのページ内のタグの一つ。
負担は、すでにヘッダIDを持っていることを覚えておくことは完全にあなたにある。
あなたは、フッターを持っています。あなたは既にコンテンツIDを持っています。
コンピュータが使用可能なIDはあなたのためであるかを理解するつもりはないが、
そのため、誤って、2つのタグのヘッダーのIDを与えることができる
そしてそれは単に間違っているでしょう。
>> あなたは、あなたが作成したものを念頭に置いておく必要があり
しかし、一度は、我々はここで何ができるのか、その予告をしました。
私は今、一番上に自分のスタイルタグで指定することができます
または同等に私のCSSファイルで、私はまだそのバージョンを使用していた場合、
私は＃ヘッダー、および手段はそのどんなタグであることを言うことができます
このウェブページでヘッダーのIDを持っています
と＃、ちょうど人間の慣例により、IDを表します。
シャープ記号またはポンド記号はIDを表します。
ヘッダーには、私はそれを与えた名前です。
これは、このCSSプロパティを適用することを意味
ヘッダのIDが含まれていますこのページでどんなタグに。
ここでは、同じ取引。
どの要素にも、同じであることを起こる、このプロパティを適用
IDを持つコンテンツであり、その後、ダウンここ
私はフッターに少し手の込んだ気付く。
IDを持つフッターで任意の要素、定義だけが存在する場合がある、そのうちの
先に行くとそのフォントのサイズを小さくし、
太字のフォントの太さは、その余白20ピクセル。
>> どういう意味ですか？
それはちょうど、上部、下部、左と右のマージンです。
これは私にその周りに20ピクセルの不可視のマージンを与えることを意味
ちょうどあなたがWordでやるかもしれないように離れてから他のすべての少しを、プッシュするには、
Microsoft Wordやページなど。
し、テキスト中心の位置を合わせます。
最終的な結果を見てみましょうし、我々はそこにCSSの残りの1つの断片に戻るまで行くつもりです。
これは、検索の例のための私達の最後のバージョンは4であり、そしてそれは、はるかにセクシーだ。
さて、公平に見て、私は "Googleのフォントロゴジェネレータ"をGoogleで検索
そして、それは私がそこにいるように見え、GIF、画像フォーマットを作成することができました。
実際には、あなたもこれを行うことができます。
私たちは、 "Googleのフォントロゴジェネレータ"を持っています。
>> 我々はこれを行うことができるかどうかを確認してみましょう。
さて、私はこれは私が使用したウェブサイトであると思います。
我々は、例えば、Ecの10を言って、彼ら自身にすることができます。
あなたは一日中これを再生し、その上で右クリックすることができます
その後、すべて私がやったことです実際のGIFをダウンロードしてください。
なぜ私は、HTML、リコールで、実際、こっち、それだ
私たちは先週簡潔に見てイメージタグを持っていた
logo.gifを持つソースです。
そして、何は再び、このalt属性を持つための動機でした
この代替属性？
うん。
[聞き取れない生徒の応答]
良いので、2つの理由は本当に、ブラウザが画像をプルアップすることができない場合
あなたは、低速ネットワーク接続を持っているか、イメージが破損しているため
またはそのようなものは、少なくとも人間 "が、CS50の検索"を参照してくださいすることができます
その後、アクセシビリティの問題があるためです。
あなたは盲目であるユーザを持ち、スクリーン·リーダーを使用している場合
したがって、明らかに彼らは、少なくとも缶画像を見ることができない
自分のコンピュータがそれを彼らに話す場合は、テキストを聞く。
>> それはページのアクセシビリティになると一般的には、これは最善の方法です
そのような状況であってもユーザーは、聞いたり見、いわばことができるように
何それはあなたのページにあるということです。
私がここでやったもう一つの事はあります
そのちょっと面白いであり、我々は問題セット7でこれについての詳細が表示されます
ティーチングフェローの1率いるパンツのいずれかを介して。
しかし、＃内容はタグを参照
ワード入力があると、そのidの内容ですが、その後空白文字があり、と。
さて、どんなCSSについて興味深いのは、あなたができることです
、階層のページの並べ替えでタグを参照してください。
とCSS手段のこのスニペットは、タグを見つけるものです
IDを持つ内容であるし、次のプロパティを適用
コンテンツの子孫であるinputタグのすべてに、
それはそれの内側にインデントされているということです。
インデントは、再び、ではなく、人間には、コンピュータにのみ重要です。
我々はページの奥深く行くとしてではなく、慣例により、我々は、物事をインデント
ので、これは任意の入力要素に5ピクセルの余白を適用することを意味
それはどこかに内部のだかの中にネストされた
IDを持つ要素は、コンテンツです。
>> それは誰にも適用されますか？
さて、これらの2人はここだけで、実際にはそこだ。
2入力は、そこのフォームの内側にいることに注意してください
これらの例のすべてのためにそこにあっているとして。
それらの2つの入力は内部で入れ子にすることが起こることが、予告、
インデントを少し深く、カップル層とはいえ、
IDの内容でタグの内側。
これはどういう意味ですか？
我々はここでブラウザに行く場合は、ほんの少し、見ることができます
私はボタンの間のパディングビットがある中で、そのズームましょう
とテキストフ​​ィールドの間に。
>> 私は一時的にそれをオフにしましょう​​。
私は私のCSSまで行こう、と私は先に、ただ手放す
5ピクセルから0ピクセルにこの余白を変更します。
私は、先に行くし、ファイルを保存し、検索エンジンに戻りましょう
とリロードし、ページの中央を見る。
すべてが一緒に圧縮されてしまった、と私は最初にこの例を手早く時
私はその後、テキストフ​​ィールドとそのすぐ下のボタンを持つ愚かに見えたと思った。
私はパッドそれ少ししたかったので、私はマージンを導入しました。
私たちは講義中に行うことはありませんと、数十経るれ
再び、フォントサイズのようなものがあるので存在しているCSSプロパティ、
フォントの太さ、余白、テキストが整列し、数十の他、
そして私たちは、あなたが問題にオンラインさまざまなチュートリアルに7を設定参照してくださいよ
そしてあなたがこれらの事をピックアップすることができます参照しています。
しかし、何が一日の終わりに本当に重要な
>> これらのことがどのように適用されるかを理解することです。
再び、我々はのスタイルタグの内側を持っている場合
セレクタは、指定する識別子のソートを行くことができます
誰にあなたは、これらのプロパティを適用したい、
その後は、キーと値のペアとしてプロパティを置く
コロンで区切られ、その後、セミコロンで終了
または、そのうちのすべてをリッピングし、個別のCSSファイルにそれを置くことができます
それ自体。
すべての権利は​​、概念上の任意の質問
またはCSSの全体像？
あなたは再び、PSET 7に多くの情報を表示します
しかし、我々はそれが一般的にはかなりシンプルに保つでしょう。
いいえ？かしこまりました。
それは、実際のプログラミング言語のための時間です
そして我々は例の形でCSSの少しに戻るでしょう。
PHPは実際に素晴らしくアクセス言語である
それは文法的にCにほぼ等価であるという点で、
あなたがCを知っていれば、言い換えれば、あなたは、ほとんどの部分のPHPを知っている
構文的には、少なくとも、いくつかの新機能があるにもかかわらず
といくつかの新しい概念は、我々は見なければならないでしょう。
>> しかし、ほとんどの部分は、現在はCからPHPへの我々はその変遷
新しいもののほとんどは、大きな絵で本当にです
とは対照的に、あなたは、Web上のプログラムに言語を使用する方法
コマンドラインで、または我々がこれまで行ってきたように点滅するプロンプトインチ
参考のため、特にPSET 7と最終的なプロジェクト目以降に、
あなたがPHPの手続き上読みたい場合は、ここをこのURLを利用ください。
これは、実際に効果的に無料のオンライン教科書のようなものだ、
そしてあなたも何がPHPについては本当にうれしいことがわかります
、それに付属している機能が何百もあるということです
あなたは、必ずしもへのアクセス権を持っていなかったのに対し、C
数学ライブラリにあったよりも多くの機能、CS50ライブラリ。
PHPと現代の言語の多くは、その中で、PythonやRubyでは、
あなたが書くために得ることを意味しますので、より多くの機能へのアクセスを得る
はるかに少ないコードあなたが他の人の肩の上に立つことができるため、
既にあなたのために、特定のものを書かれている人。
>> のは、PHPの構文のクイックツアーを取ると、次にいくつかの例を書いてみましょう。
PHPに関する真っ先にいいものだ
ない主な機能はまったくありません。
PHPでプログラムを書きたい場合は、単に、コードを書き始める
そして、メインを心配する必要はありません。
全くintはありません。ノーリターンはありません。
あなたがプログラムを書く時に必要となる、全くのargv、argcはありません。
むしろあなたは、単にコードを書き始めることができ、これは一部になっている
PHPはインタープリタ型言語と呼ばれるものだからです。
Cはコンパイルされた、それはあなたが起動するという意味で、コンパイルされた
ソースコードでは、コンパイラであるClangの、を介してそれを実行し、
そして最終的に手順をいくつか実行したあとでは、オブジェクトコード、0と1を取得します。
PHPやPythonやRubyやパールなど
あなたがそれらをコンパイルしないという点で、言語の異なる種類があります。
あなたは、ソースコードから、0と1には行かない。
あなただけのソースコードを実行し、ソースコードを実行する
この場合インチphpで終わる通常のテキストフ​​ァイルに書き込むことにより、
代わりにC、およびコンピュータ上のどのプログラムが何の
それは文字通り一行一行であなたのコード行を解釈しています。
>> 言い換えれば、はなく、プログラムを書いて、プログラムを実行する
直接ではなく。phpで終わるファイルを使ってプログラムを書いてください。
あなたがWindowsを使っている場合、あなたは、php.exeと呼ばれる実際のプログラムを実行し、
あるいは単に、PHPは、Mac OSやLinuxを使っているのであれば、
そしてあなたは、PHPプログラムへの入力として、独自のソースコードを提供
そして生活の中で、その目的は、左から右に、下にコードの上を読むことです
そしてあなたがすることを言ったものは何でも。
>> これは文法的に意味するように何が起こっているか見てみましょう。
PHPでは、我々は条件があります。
このスライドは、第1週に戻って見たものと同じです
なぜなら、PHPの構文的条件、IFSとelse if文とelse
まさにこのようにします。
それはブール式に来るとき、彼らはこのように正確に見ていくつもりです。
それがこのように正確に見えるように起こっているのはbooleanとして一緒に物事を論理積になると。
スイッチは同じように見え、そしてあなたは、PHPで付加価値を得る
Cでそのスイッチは、char型やintに切り替えることができます。
あなたは、文字列値に切り替えることができませんでした。
PHPでは、あなたは実際に式を持つことができます
それは、その内容が文字列である変数であり、
そして実際に、本当の直感的な方法で文字列の比較を行うことができます
ていないポインタ比較、ケースiまたはjまたは他の何かをするかどうかを決定するため。
我々は、長い前に、その潜在的に表示されます。
>> ループがあまりにも素晴らしく同じです。
forループの初期化、条件、およびいくつかの数の更新が適用されている。
PHPでも存在してwhileループ。
ループはまた、PHPには存在しながらやる
と配列は、PHPには存在しますが、構文が少し異なる得るために始めるところです
が、概念は同じであるが、概念は本当に同じです
彼らはスクラッチで0週にあったように。
まず第一にドル記号（$）です。
これは、PHPにおける設計上の決定であったことにより、任意の変数
PHPでバイデザインは$記号で始まります。
もうX、Y、Zは存在しませんそれはちょうどので、今、Z $ X、$ Y、$です。
それは右側に今心に留めておくべきものだし、
これは、配列に似ています
しかし我々はここで、角括弧を使用しています。
、我々は最終的にわかるように、PHPとJavaScriptで
あなたは開き角括弧と閉じた角括弧を行う配列を宣言するには、
そして、あなたはint型かどうかは、値をコンマで区切ったリストを持っている
または内部にあり、その式の文字列や文字、何でもしたい、。
>> 今、我々はC言語でこのようなものをどのように行うのですか？
静的に既知の数の配列を宣言するための構文は何でしたか？
それはここので、わずかの違い、中括弧でしたが、PHPの両方で
それはちょうどので、本当に、角括弧を使用しており、最終的にはJavaScriptの
ここでの唯一の興味深い詳細は、変数名に$記号である
また、角かっこ、1奇妙なことはあり
それは=記号の左側にあるだけでなく、省略されている。
何が私たちが今何週間も必要としてきたことが欠けている？うん。
[聞き取れない生徒の応答]
サイズがあるため、配列の大きさについての言及はありません。
率直に言って、左側の角括弧の言及はありません
=記号の、そして他に何が回線から欠落している？
うん。>> [聞こえない学生の応答]
タイプが存在しないため、PHPについて、特に興味深いものだ
それはCがあるとして、強く型付けされた言語ではない、ということです
それは強く、あなたはcharと言わなければならないという意味で入力している
あなたはint型と言わなければならない、あなたはfloatを言わなければならない。
>> いつでもあなたは、その型が何であるClangのを伝える必要が変数として使用したい。
PHPは少しlazierです。
それは緩く感覚で入力していること
あなたは、山車と文字と文字列を持つことができます
やintなどが、言語自体
本当にあなたは、変数の内部に入れたものは気にしません。
あなたは事前にそれを通知する必要はありませんどのようなデータ型
変数の中に起こっている。
それは完全にあなた次第ですので、これはいいです
あなたは、データの型付けについてはそれほど心配する必要はないという点で、
そしてあなたの引数が何であるかを心配など。
これは、PHPの関数が返すことができるようにしようとしている最終的には意味
ほとんどの時間int、および多分たまにはどちらか
彼らは何かが間違っていた意味するのは、例えば、ブール値、論理値FALSEを返すでしょう。
これは私たちにいくつかの五分五分を与えるが、それはまた、デザインして並べ替えの私たちを行います
それはデータの型付けに来るlazier少し。
>> ここに心に留めておく他に何がある？
変数は、$ s =ので、非常にこのように見えて、 "hello、world。"
それは、多分前の例から推論可能だ
そして我々はループの別の型を持っています。
それは非常に便利ですので、この1つは、私たちは実際に、たまに表示されます
foreach構文。
このケースでは、foreachループは、典型的には、その括弧の内側に3つの言葉を取り
あなたのメンバーを反復処理しますか配列である最初の$何か、、
その後文字通りキーワードとして、その後最後に、
あなたが選択して取得した別の変数名。
それは、foo、bar、あるいは要素とすることができます
そして、この構造は何を行います
$配列は10個の要素が含まれている場合です
この配列ごめんなさいを繰り返すたびに、このループの反復ごとに
変数と呼ばれる要素が更新されようとしている
次に、配列の最初の要素、配列内の2番目の要素であることが、
次に、配列の3番目の要素は、それによって必要性をなくす
少し迷惑な角括弧表記を行うと
$ iは配列のインデックスに順番インチ
PHPは、あなたのため、すべての繰り返しで、そのすべての作業を行います
ちょうどあなたに配列から次の要素を手渡す
あなたが知っているか、その数値のインデックスの場所を気にせずに。
>> そして、最後に、今のところは、PHPのいずれかの他の機能はあり
それは我々がWeb上でプログラミングを開始する場合は特に、非常に便利になるだろう、
その連想配列として知られている。
我々は20秒前の時点で、これまでにわかっている配列
と過去8週間の数値配列をインデックス化され、
インデックスはint型アール従来のアレイの一種、
アップ時には0、1、2、すべての方法。
連想配列は、多くのより強力です。
彼らは、あなたが任意のキーを持つことができるように
任意のインデックスと任意の値。
伝統的な配列で、一方それは、0、1、2だ
連想配列では、インデックスを持つことができます
または値バーですfooのキー。
その後、名前がバズで、値がかんぬんです別のキーを持つことができます。
>> 繰り返しになりますが、ここで愚かなコンピュータサイエンスの汎用変数名、
しかし、ポイントは、この配列は0またはブラケットブラケット1を持っていないということです。
それは代わりにブラケットfooとbazのブラケットを持っているために起こっている。
これは、我々は関連付けることができるようになるだろうという点で、より多くの汎用性があります
他の単語と単語、完全に任意の値を持つキーは、
そして我々は、一定の時間に戻ってそれらの値を取得できるようにするつもりだ
なぜならフードの下に何を連想配列
実際にハッシュテーブルがある。
ハッシュテーブルは、あなたには、いくつかの入力に置くことを可能にしたことを思い出して
あなたは辞書のいくつかの種類にデビッドを挿入したい場合は単語のDavidに入れたい、
その後は、通常いくつかの値を取り戻す。
スペルチェックの場合には、trueまたはfalse。
デイビッドまたは何ワードはであるか、辞書にはありません。
連想配列は、実際には単なるハッシュテーブルです
それはそれをはるかにユーザーフレンドリーな化身だ。
我々が見ていくように、それは、私たちはいくつかのことを実行できるようになるだろう
非常に、非常に簡単。
>> のは、いくつかの基本的なPHPを見てみましょう
例と私たちはこの言語を使って何ができるかを参照してください。
私が先に行くと、今日の我々のソースディレクトリで開くみよう
hello1.phpと呼ばれるファイル。
このファイルには、それが実際のコードよりも多くのコメントです
ので、私は実際にファイルからのすべてのコメントを削除しましょう
と右ここに多分あなたに最も簡単なPHPプログラムを紹介します。
5行、およびそれらのいくつかが空白である、
ので、ここでいくつかの重要な違いに気づく。
ファイルがhello1.phpと呼ばれています。
非常に最初の行には、しかし、<？PHPです。
は、HTMLとその精神においては似
その文字列は、コンピュータに指示
"ねえ、コンピュータが、ここではPHPの中にいるプログラムを付属しています。"
それは、それはいくつかの他の言語だと混乱はありませんを確認します。
2行目では、興味深い空白です。
3行目では、printfの私たちの古くからの友人である
PHPのコンテキストでこの時間。
PHPは、まったく同じように動作printfの独自のバージョンを持っている
そう、これは単なる印刷しようとしている "こんにちは、世界"
そして、ここにこの反対タグ、？>、私のPHPコードのためのそれであることを意味します。
>> これを実行する方法を見てみましょう。
私はここに私の端末ウィンドウに戻って行くつもりです。
私はPHPのディレクトリに行くつもりです。
我々はファイルの全体の束、hello.phpというなっている最初のものを持っていることに注意してください。
私が先に行くとこの、hello1.phpを実行し、次のように入力してみましょう。
アクセスが拒否されました。オーケー。
私たちは、過去にこのようなものをどのように修正しました？
それは何ですか？>> [聞こえない学生の応答]
我々は、読み取りと書き込みが、私は、ls-lをやらせる必要はない。
それによってhello1このやや不可解な出力を覚えている
私が読み書き可能にしたと思われる
しかし、誰もが読める。
これが実際に正しい方向への一歩ではないと判明。
インタープリタ型言語との違いは、再度、
あなたが直接プログラムを実行しないことです。
代わりに、インタプリタを実行し、そのコードを手渡す
それは行ずつ解釈できるように、あなたが書いてきたこと。
この場合には、通訳人又はプログラムは私が実際に実行したい
文字通りPHPと呼ばれています。
>> どこかにこのアプライアンスのハードドライブ上のプログラムがある
他の誰かは、PHPと呼ばれる、またはWindowsではphp.exeに書いている。
私がここで何をしようとしてたんだけど、私が実際にPHPを実行するつもりである
しかし、コマンドライン引数として私が書いたコードを、それを与える、
そして私はズームアウトしてエンターキーを押します。
これは、左から右へ、上から下へ、私のためにプログラムを実行します。
私が先に行くとこれのわずかな変化を開いてみましょう。
あまりにもこのことhello2.php予告で
ほとんどのコメントであるので、私は気晴らしとしてそれらを取り除くことができ、
と苦情今やはっきりと何が違うのですか？
上部にやや不可解なこの新ラインは、ありません。
1行目では、＃！/ bin / phpにあります。
ビンは、バイナリ用のLinuxおよびMac OSでの慣習です
ので、/ binには、これはバイナリの束が入っているフォルダであることを意味します
プログラムされており、その中にPHPです。
＃！ 、シバンと愛称で呼ばれる
どのそれを言うための簡単​​な方法ですが、これは何を意味するのか
あなたは今、このプログラムを実行するときにファイルの先頭にヒントがあるということです
それはどのようなインタプリタが使用するコンピュータに指示します。
>> あなたは、ユーザーと顧客に伝えなければならないとしたら、それは少し迷惑な取得
"ねえ、私たちはhello1.phpと呼ばれるこのプログラムを書いた。"
あなたがしなければならないすべては永遠にPHPを実行してから、このプログラムの名前です。
率直に言って、それだけで、hello1.phpを実行するには良かったでしょう
そして実際に、私たちは、次の操作を実行できます。
私が先に行くとhello2でls-l、予告をやってみましょうそれはまだただ読み書きだ
その後よく読んで理解しているので、私はまだこの、hello2.phpを行うことはできません。
しかし、我々は、chmodコマンドは、この今までので、簡単に最後の時間を導入しました。
私はすべてプラス実行可否を意味します。chmod + xをするのであれば、
その後hello2.phpしてls-lは、再度変更何に気づくん。
一つは、Linuxはアイデアを伝えるために、緑の中で私にファイル名が表示されている
それが実行可能なことが、より重要なのは、左側に
実行可​​能ファイルのxを表すビットが設定されましたことに気づく。
これが何を意味する今、私はいつものように./hello2.phpを実行できることです
ENTERキーを押して、して、そのファイルの最上部にシバンの
それは言うLinuxには、もう一度、ヒントだ
このファイルを実行するには、このインタプリタを使用します。
ユーザーが実際にそれを入力するように心配する必要はありません。
>> そして、どのような素敵なのは、今のようなものだ私の顧客には無関係または私の友人である
私はこのプログラムを書いたものを言語なので、私はMVと前方に行くことができる
そして例えば、hello2にこの事を名前を変更します。
そして今、私は./hello2を行う場合
と私のプログラムが実行され続けズームアウトします。
これらのファイルの拡張子は必要だ人間大会アール
Clangのような何かのために、彼らのために見ている人を確認します。
しかし、PHPのために、私は私が欲しい、このファイルの拡張子は何を呼び出すことができます。
私は、私はRubyで本当に良いんだと考えるように世界を騙すことができる
と私は、hello2.rbを記述してから、これを実行することができます
と出来上がりは、今、私は完全な嘘であるRubyのバージョンを持っています。
しかし、ファイルの拡張子は意味がありません
ファイルが実行可能であり、ファイルの先頭に、この特殊なヒントを持っている場合。
>> さて、余談ですが、私はすぐにバージョン3をお見せしましょう
それは知っている便利なトリックのようなものです。
hello3では、私は少し何か間違ったことをやった
私はソースコードをオンラインで更新するだろうという。
バージョン3では、それが判明しているほとんどのLinuxコンピューターで
環境のためにenvを呼ばれるプログラムが、そこ
あなたは見当がつかない場合、何をここで行うことができることであるPHPの
確かにそれはコンピュータによって異なりなかったため、ローカルハードドライブにインストールされている
誰かが使用していること、envはちょうど実行envを言う、
これは、ほとんどのシステムであり、PHPがどこにあるか把握する。
ただ一般的なトリックは、プログラムがどこにあるかを見つけ出すことを心配する必要はありませんので。
しかし、あなたはプログラムがどこにあるかを見つけるために世話をして、あなたがこれまで世話をしていない場合
あなたは、どのコマンドを使用することができます。
>> 私はズームアウトしてみましょうタイプのphp、
そしてそれはusr / bin / phpが、実際だと言われますがわかります。
それは嘘のようなものだ。それはビンでもあります。
それはちょうど私の最初のヒットを見せている。
Clangのがどこにあるか疑問に思った場合は、、それは、usr / binに/カーンという音になるClangのだ
構成している、usr / binに/を確認し、何を意味は、このすべての時間です
あなたはusr / binに/打ち鳴らすはClangのを実行するために入力すると入力されている可能性が、
しかし退屈のようなものだが、それをするので、いくつかのフォルダ
usr / binとビンのようにデフォルト値であると仮定され
ので、コンピュータがあなたのためにそれらを探すように知っている。
超、超簡単なHello Worldプログラムを書く上の任意の質問
PHPで、それを実行している？
今ので、我々はより魅力的な構文を導入することから始めましょう。
すべての権利、ここに私達は行く。
これらのプログラムは、我々は彼らのすべての前に実際に見てきました。
>> 私が開く場合、例えば、、beer1.php行いましょう
我々は、このいくつかのバージョンを通ることはありませんが、私は何をした
私は座って、それを注ぎ、または変換された
ここでPHPコードと私のCコード。
ファイルの先頭のほとんどは、コメントをここまでです。
readlineが呼ばれる我々が必要とする一つの新しい関数があり、それはアウトになります。
GetStringメソッド、リコールは、0週以降からCS50のものだった。
PHPはreadlineが呼ばれる独自のユーザーフレンドリーな機能が付属しています
プロンプトを指定する1つの引数を取り、その
あなたは、ユーザーに見せたい、と何readlineはないこと
それは何インチユーザーは種類が返され
この場合、私は$ Nという変数を宣言しています。
私はそれでreadlineの戻り値を格納しています
この文字列を使用して、ユーザーにメッセージを表示した後。
ただ実際にこの事を実行するには、バックアップするために、私は先に行かせて
とphp beer1.phpを実行します。
そこにどのように多くのボトルになるでしょうか？ちょうど2を行うのこの時間してみましょう。
入力します。それがすべてです。
>> プログラムは、数週間前からCバージョンと機能的に同じです。
しかし、文法的に違うのかを見てみましょう。
私はいくつかのエラーチェックをやっていることをユーザーに通知からintを取得した後
nが1未満である場合、私は終了し、私はプリントアウト
1を使用して、ユーザーと出口に申し訳ないメッセージ。
これは、あまりにも少し異なっています。
Cでは、私たちは何をしたのですか？ C言語では、我々は1が返されました。
PHPにおいては、率直に言って、私はもう少し直感的だと思うが1、で終了
あなたは文字通り、プログラムを終了しているため。
すべての権利は​​、その後ダウンここに迷惑な歌は、構文的に同一である
変数を除いて、その下にここに24行目以降で
私のためのループは、ほぼ同じであることがわかる
しかし、私は、iとnの前に$を持っている
そして何も我々が過去に持っていたことを26行から欠落している
変数iを宣言するときに？
全くタイプはありません。
それは、intと言うためにPHPで間違っています。
あなたは、単にそれを行う必要はありません。
コンピュータ、インタプリタ、PHPは実現するのに十分スマートです
あなたは、私が$で番号を置けば、それはそれを扱うことが
あなたのための番号など。
そして、ダウンここでプラグ$ I、$ I、$ iの - 1。
すべてのことは同じですし、ダウンここで我々は "うわー、それは迷惑なんだ" printfを行う
その後（0）終了します。
>> 繰り返しになりますが、ここに持ち帰り、我々は比較的過ごすつもりだにもかかわらず、ということです
PHPの少しの時間、確かに、我々はCでやった対
それは我々が何をしようとしていますので、今日と来週はほぼ同じだし、
以降、新しいアイデアのいくつかに本当に焦点となっています。
ただもうひとつはCから引き継い翻訳ないことを確認し、
これは我々が週1で行った超簡単なプログラムだった
値を乗または2。
しかし、このプログラムについての時点で面白いものだったことは、それ
私たち自身が書いたカスタム書かれた関数の概念を導入しました。
PHPの構文はほぼ同じです。
ここにトップアップ私のプログラムです。
再び不在通知がメインの任意の概念である。
私は、コードを書き始めるが、これはインタプリタによって実行されるために何が起こっているのです。
私はxはおそらく、今2でプリントアウト。
それから私は、キュービング主張...
それから私は、$ xの中にキューブ関数を呼び出して渡す
と$ xに戻り値を代入する。
その後、私はそれがCubedのことを主張し、私はこれを言う、これうまくいけば
xは現在8であると言うだろう。
PHPの関数の構文は、ほんの少し異なっています。
再び行方不明は、戻り値の型です。
再び行方不明では、戻り値の型であり、また不足しているが他にどのようなタイプですか？
[聞き取れない生徒の応答]
ああ、そうだ、それは良いことだ。第二のそれに戻ってみましょう。
>> 我々は、例えば、ここでINT、持っていない。
我々は、例えば、PHPで、再び、ので、ここでintに持っていない
あなたは単に、する必要はありませんし、それを行うべきではありません
むしろ関数と呼ばれるこの新しいキーワードはあり。
関数をときたいので、PHPでそれはほとんど少し明確だ
あなたは文字通りの機能を言うときは、カンマで区切られたリスト、それに名前を付けて
その関数の引数のいずれかの。
いいえ、リターンが同じであるから、そのようなボイドや何かを言う必要はないし、
$ * $ * $。
また、何が欠けている？サミーはこれをここで指摘している。
PHPで完全に存在しないファイルの先頭にもプロトタイプです。
これも仕様によるものです。
Cは今までにあったより、PHPのような言語と通訳者は賢い
Clangのようなコンパイラインチ
>> 、キューブが存在するということを教えていなかった場合、そのClangのを思い出して
あなたは、printfのプロトタイプと同様に存在することを教えていなかった場合
または＃includeで、まあ、それはあなたに叫ぶつもりも、あなたのコードをコンパイルしていませんでした。
それはこのに来るときにPHP、より近代的な言語がたくさん賢い。
彼らはあなたのすべてのコードを介して読み取ることが自分自身にそれを取るだろう
そしてそれはどこにもキューブを見つけた場合にのみ怒鳴りつける。
キューブは下部または上部にあるいはいくつかの独立したファイルであるかどうかは関係ありません。
PHPと同じような言語は今や先読みするのに十分スマートです
ミスをしたとしてあなたを認める前に何事につけても。
それは私たちをどこに出ますか？
>> 、条件でここ1最後の例を実行してみましょう
と私もconditions2.php通知を開く場合
ここで構文はほぼ同じです。
私はreadlineの代わりにGetStringを使用していますが、そのラインは、前と同じです
"私は整数でお願いしたいと思います。"
私はその後、if条件if、else、およびその後、他を持っている
しかし、機能的に、このプログラムはまた、我々は数週間前にやったことと同じですが、
ので、私はこの事、conditions2のPHPを実行した場合
そして私はそれを23のように番号を与える -
私は、正の数を選んだ。私はそれが-1与える場合、私は負の数を選んだ。
私はそれを0与える場合、私は確かに0を選んだ。
だから誰がこのすべてを気遣う？
ここでの練習の楽しさ一種のまあ、1
少なくとも私にとっては、戻って、私はPSET 5を実装することができますどのように迅速に確認することでした
スペルミスのpset。
speller.cと呼ばれるこのファイルは、そこにあったことを思い出してください
とdictionary.cというファイルがありました。
私が何をしたか、私は一種の数分を過ごし、私はC言語のコードに変換された
PHPコードに、我々はスペルチェックにあまり時間をかけません
ただのpset 5のようにあなたが本当にする必要はありませんでしたので、
あなたの注意が辞書にあったので、スペル自体に多くの時間を費やす。
>> 、あなたはスペルを通読したとすればと言うだけにとどめておき
ここでは、このファイルは、それはかなりのCコードと等価です
我々は、pset 5のためあなたを与えた。
私はただの場所でいくつかの$を追加しました。
彼らはPHPには存在しなかった場合、私は特定の関数名を変更しました。
つの追加のことは時点でpreg_matchは、ここにあります
これは、何かをするの少し手の込んだ方法ですが、我々は最終的に戻ってくる。
しかし、短期的には、スペルチェックはほぼ同一であり、あなたは非常に底を見れば
何それが最終的に出してくれると、これは、ここにある
言葉は、テキスト内の単語を辞書で単語をスペルミス。
すべての権利、だから何今面白いのは、以下の通りです。
私のファイルの先頭に私がdictionary.phpを必要としています。
C＃は、PHPが必要という特殊な機能を持って含まれたのと同様に
ほとんど同じことをやっていること、dictionary.phpというファイルが必要になります。
私は、pset 5を実装するにはどうしたらできますか？
私が先に行くと、ここにファイルを開いてみましょう。
私はここで少しのリファレンスを見てみましょう。
そして、私は新しいファイルを作成し、このdictionary.phpの呼び出しを開始しましょう​​。
我々は、このライブを​​行うことができますので、私は別のフォルダに入れてみましょう。
そして今、私はズームインよ
私はphpブラケットを閉じたオープンブラケットと私のPHPファイルを開始するつもりだ。
そして、ここで、私はPSET 5のために実装するために必要ないくつかの関数があった
そう、私はそれらのいくつかを実装して始めましょう
引数としての単語を取らなければならなかったので、機能チェック、。
我々はそれを行うと、その瞬間にそれに戻ってくるでしょう。
>> 引数として何を取り入れた機能の負荷があった？
辞書、私が実際にロードしたかったので、ファイル。
任意の引数を取らなかった関数のサイズがあったが、
と関数他にどのようであったがあったのでしょうか？
どちらかの引数を取るしなかった、アンロードします。
これらは、私は今、PHPで実装する必要があるだろうと4関数です
と私は何をするつもりだと、先に行くとこれを行うにしています。
あなた方の多くは、pset 5にハッシュテーブルを使用し、
ので、私は先に行くと、PHPでハッシュテーブルを作成してみましょう。
完了しました。
それは私にハッシュテーブルを提供します。さて、なぜ？
一つは、変数は単なるハッシュテーブルのアイデアをひねり出すために、$表と呼ばれます。
角カッコは、しかし、何を表して、リコール？
配列ではなくPHPの配列では、数値インデックスを作成する必要はありません。
彼らはまた、連想配列することができます
それはあなたが任意のキーと値を持つことができることを意味します。
>> あまりのpset 5、ハッシュテーブルの実装をしたあなたの人々のように
あなたはおそらく、単語を挿入し、リンクリストのチェーンに挿入し
またはあなたは、その旨を真のどこかか何かの値が格納されている。
あなたは何とか言葉があったという事実を思い出した。
今のところ、それは、私のハッシュテーブルになるだろう
そして、今チェック機能を実装することについて移動する
私はちょうどそのハッシュテーブルの内部を見てする必要があります
単語があるかどうかとしてください。
私は何をするつもりだ、私が言おうとしているされている場合、-
のは、文字通りキー設定されていることを意味するPHP関数ですかどうかの判断を、言わせて
そうかどうかの判断（$表[$ワード]、
そうだとすればことはtrueを返します。
それはそれだ。つまり、PHPでのpset 5です。
まあ、公平の見地から、大丈夫。
そうでない場合はfalseを返すので、それはなさそうだ。
本当にここで何が起こっているのでしょうか？
まあ、もっと一般的にここでテーブルまたはハッシュテーブルの場合
あなたがそれにインデックスを付けることができますを意味し、連想配列です
"ワード"、そしてあなたには、いくつかの値を戻らなければならないような言葉である。
>> 我々は先走りの一歩を得ることの一種だ。
我々は実際には、最初のファイルをロードした場合、それはいいの一種だろう
そう負荷はそれほど単純ではありませんが、私が先に行くとかき立てるう
負荷の本当に迅速な実装。
私が先に行くと言葉が辞書ファイルを取得しましょう​​。
PHPのファイル関数はファイルを開き
そして、あなたにそのファイル内のすべての単語の配列を返します
ちょうどあなたにそれらを手渡す。
すなわち、それは、あまりにも大きな痛みされていませんでしたか？
今すぐforeachは、これは私たちの新しい構築物は、foreach（$ $単語としてワード）です。
このループは、配列の言葉を反復処理を開始しようとしている
と$ワード変数、ファイル内の各単語を割り当てる
第一から第四のすべての方法に第三に第二に
ので、私は迷惑な[i]の表記などを行う必要はありません。
そして、どのような私は単純にこれらの単語ごとにするつもりです
テーブルのインデックスで、私のテーブルに格納されている
覚えているので、その後真やって
言葉は私の辞書になっていることをすべて私が本当にしなければならない
ビットを反転し、私のハッシュテーブル内のこの言葉は、そこに真であると言う種類のものである。
それがそこにはありませんならば、私は、明示的にfalse配置する必要はありません
そうでなければ私は宇宙のすべての可能な単語に対してfalseを入れなければならないと思います。
>> それだけでインデックス値を設定するために私のために十分である
言葉は私のハッシュテーブルに実際にある場合はtrueに。
さて、私は、今のところで私の手を振るだろうとここでのコーナーのカップルを切断しています
しかし今ではload関数が実行されます。
私は、ファイルから配列にすべての単語を読み込みます。
私は、その配列を反復処理し、配列内の各単語の
私は、コードの1行で私のハッシュテーブルに差し込みます。
これは楽しいです。あなたは、私たちは今、サイズを実装する方法を知っていますか？
まあ、サイズが公平に見て、いつもはとても簡単です。
ここでは、単にテーブルの戻りカウントを行うことができます。
それはあまりにも非常に簡単です、テーブルに物事の数を数えます。
それが最も効率的ではありませんが、実際のようなものだ。
我々はそれを行うことができますので、私はおそらく、変数と呼ばれるサイズである必要があり
一定の時間で、それは非常に簡単です。
ああ、その後アンロード、私たちは本当にここに肛門になりたい場合
私たちは、あなたが何かをアンロードする方法だと言うことができます。
あなたはただ、空の配列に等しい変数を設定
そして、それはそこにあったすべてのものを取り除きます。
いいえフリー呼ぶ必要はありません。
>> 繰り返しますが、私はいくつかのコーナーをカットした、と私は問題セット5を割り当てることをお詫び
おそらくCで、しかし、我々は今先に行くと、これを実行した場合
私は実際に私が事前に書いたバージョンを実行するつもりです
ちょうどので、私は一切の構文ミスを犯さなかったこと。
私が先に行くと、スペルチェックを実行してみましょう。使い方は同じです。
ここだけの単語fooを含む辞書ファイルです。
ここだけfooバーを含むテキストフ​​ァイルです。
このテキストフ​​ァイルに、この辞書ファイルを使用して、このため、スペルをスペルチェックしてみましょう。
1スペルミスのある単語、バー、出来上がりがある。
PSET 5で行われます。
のがここで5分間の休憩を取り、我々はPHPに戻ってくると、もっとでしょう。
すべての権利、私たちは戻ってきた。
しばらくの間、私を嫌いましょう。
これが正でなかった場合はすぐに実際に見てみましょう
実際にPHPでこの事を実現する。
確かに、それは実装するために45秒かかった。
>> しかし、今度は、先に行くと、物事を実行してみましょう。
私が先に行くとCバージョンを実行してみましょう
スペルチェックの、我々は最大のファイルのいずれかでそれを実行することになるでしょう、
欽定訳聖書はどれですか。
そして、それはここで、のは私達のCフォルダに移動で-letがある
ジェームズ王第五にスペルチェック。
スペルミスのある単語がたくさん。
わかりましたので、それは、時間が少し異なっている場合でも、あなたは、おそらく持って出力だ
あなたは合計で正常に動作してすべてのもの、などの時​​間を得た場合、スペルチェック
欽定訳聖書は、その実装を使用しますので、かなり良い0.38秒であった。
今私は、我々だけで書いたPHPのバージョン、に行くことができます。
私はジェームズ王にスペルチェックを実行してみましょう。
おっと、そのエラーを無視してください。私が間違ったディレクトリにいるよ。
王ジェームズ5日スペル。
これでほぼ完了。
>> さて、観察力の鋭い人は、そこに3秒以上であったことを理解するであろう。
それが真の実行時間である。
それは大量のテキストを吐き出すには時間がかかることが判明
なぜなら短いバッファリングの問題が、長い物語の、
それはマシンタイムの3.15秒、CPU時間、だった
対それは少し前に何だったのですか？
0.3のような。
私が言いたいのは、それが格段に遅くなので、それがどこにあるの
とんでもない減速はから来る？
そうですね、私たちが作った中で最もどんなデザインの決定にそうだった
過去9週間以上のクラスで、このトレードオフはほぼ常にあります。
時には、単にスペースの間に、時々、空間と時間の間に、
空間、時間、開発努力、そして実際に、ここにもかかわらず、
我々は多分潜在的に膨大な時間、10-20-30時間を保存
スペルチェッカーを実装する開発時間の
この言語を使ってわずか45秒でそれを泡立てることによって
我々が支払う価格は、それが結果として遅く桁違いだということです
これは一般的に、ほとんどすべてのインタプリタ言語の場合と同様に、
PHPやPython、Ruby、パールまたは他者により
あなたは通訳を介してそれを実行するつもりだし、それはあなたのコードを読んだ場合
行ずつ、上から下へ、左から右へ
その仲介者は、独自のいくつかの時間がかかるために起こっている、
とどのような0.3秒とは対照的に、あなたが3秒でここに感じていた
文字通り私たちのコードを解釈する必要があり、この仲介者が存在するという事実である
あなたがループ内なら行ずつ、神は禁止
言葉の数十万人を含む巨大なファイルを持つ。
>> そのオーバーヘッドが加算と加算と加算とまで追加しようとしている。
このようなツールのためにそれはおそらく実装するために使用するのに最適な言語​​ではありません
即時場合、スペルチェッカーは、ユーザーに、あなたに興味があります。
しかし、我々は一瞬にして持っている贅沢されている場合
PHPのような言語やインタプリタ型言語の多くを使用する
Webのコンテキストで、そのことについて、あなたは利益を持っている
インターネットは、ほとんどのコンピュータよりもずっと遅いこと。
お使いのコンピュータ、2 GHzの、多分多くのこれらの日におけるGHzのCPUを持っています。
しかし、現実がインターネットに接続されている待ち時間の高い量がある
それによって我々は先週見ていても、サーバと通信するために、ブラウザの
、それは非常に高速だと、半分ミリ秒かそ​​こら
あなたがイメージのようなものをダウンロードしている場合、あまりにも追加され、その
またはFacebookの写真や、Facebookのおしゃべりを介したインスタントメッセージを取得
Gchatなど、これらのラウンドトリップ時間のすべて
ブラウザとまで追加するには、サーバーの開始の間、
多くの場合、言語の特定の選択肢となっている
すべてではないが、関連するので、わずかに遅い言語を使用していいですよ
PHPやPythonやRubyのような
しかしそのために、あなたとあなたの同僚に巨大五分五分があります
とあなたの友人あなたがそうなので、はるかに高速なものを実装することができるからです。
しかも、あなたは、特定のセキュリティ上の欠陥がはるかに少ないリスクを持っています。
PHPにはポインタはありません。
あなたは簡単に誘導することができることはワンセグ障害はありません
あなたはCでできたのと同じ方法で、
C言語を使用すると、ハードウェアに近いスーパーだ。
PHPと同じような言語では、より高いレベルのソート、いわばだ
あなたと実際に起こっている間に防御の多くの
マシンの内部で、そしてそれはちょうどトレードオフです。
>> 我々は、これらのより近代的な、高レベルの言語を持っていることのポイントに得ている
PHPのようなので、C言語のPHPなどの言語で学んだ教訓
しかし、あなたは、フードの下にすべてのこの時間に起こっているのか理解していない場合
あなたは確かに、右の設計上の決定を行うことはできません
そして確かにそれは、FacebookやGoogleのような場所で働くことになると
ますます大規模なデータセットで遊んでいるこれらの場所のいずれかまたは
あなたは戻って、医学部進学課程の学生かといくつかのMDで作業している場合でも
患者と医師を含むいくつかの大規模なデータセット上の
と適切なツールを使用してのように非常に説得力がある
そうでなければ、いくつかのデータセットの解析結果は、数秒かかる場合がありますので、
またはそれは文字通り時間がかかる場合があります。
これは、どのように多くの努力であなたを挫折させるためではなく、ほんの一例です
それはCであったが、あなたがC言語で何かを実装しない場合に役立つことを理解する
あなたは本当に理解したり、理論的には、本当に理解して
すべてはどのようにしているか、機能しなければならない、とあなたはほぼ完全に制御している
フードの下で何が起こっている以上、これらのより高いレベルの言語で
あなたがそれらを発明した人々に多くの制御を放棄しなければならない
そしてあなたよりも彼らの設計上の決定に、より対象となります。
しかし、パフォーマンスは当然私たちが取る場合
なぜなら、これらの他の問題のWeb上で非常に重要ではありません
ただネットワークの速度が、とにかくCPU速度よりも少し遅いです
ので、我々はわずかに遅い言語を使用するように余裕を並べ替えることができます
五分五分である場合、我々は10倍の速さ、あるいはそれ以上のものを開発することができます。
>> 我々はこれを使用して起動する方法を見てみましょう。
私はフォルダに行ってみよう
今日の例のうち、frosh.imsと呼ばれる
これは非常にまず最初に、その事実により、実際に個人的に動機づけられていた
私はCS50とCS51を受けた後、数年前のWebのために書いた
新入生IMSプログラムのためのウェブサイト、新入生学内スポーツだった
一度これは、一度に十分な数年前にあることであった
プログラムのためのウェブサイトは、Webがあったにもかかわらず、ありませんでした
あなたが望んでいる場合、代わりにそれによってウィグルスワースでプロクターがあった
バレーボールやサッカーや何のために登録するためには、一枚の紙に記入します。
その後、ヤードを歩いて渡ると思います。
その後、試験監督官へのドアや手に彼らのドアとスライドをノックでしょう
あなたはチームのキャプテンになりたいかどうか、その上にあなたの名前を書いた紙を指さし、
あなたはインチだったあなたが何をしたいか、スポーツ、どの寮
それは物事の古い学校の道のようなものだったが、これは素数であった
このプロセスの多くを自動化するための機会。
あなただけのWebサイトを参照してください。あなたが何かを入力してインチ
あなたが電子メールの確認、及びブームを取得すれば完了です。
>> これは、パールと呼ばれる言語ではあるが、私が行った非常に最初のものだった
それはPHPで行うのが比較的簡単だが、これは代表的なの一種である
あなたが自分自身を表現することができたときに解決を開始する可能性のある問題の
プログラムで、Googleサイトのようなものに頼る必要はありません
またはExcelまたはあなたに手渡されているツール。
君たちは今、このようなことをする能力を持っています。
これは、フォームの超醜いバージョンです
しかし、let 'sは、ちょうどこれはそれによって会話の初めのためにそれを使用する
フォームは、私たちのために数年前のように見えた大体何
Web上で人々が一年生のIMにサインアップできるようにします。
我々は、彼らがキャプテンになりたかったかどうかのために、名前のチェックボックスを尋ね
彼らは何であったか寮その後男性または女性、と、
その後彼らは、このフォームを送信します。
このウェブページを表すHTMLでフードの下に初見てみましょう。
、私はfroshims0に行こう
そして余談ですが、PSET 7のために、私は当たり前の取っている
私はインチのものを入れていることをディレクトリとフォルダ
ものがアプライアンスに行かなければならない場所を正確に我々はあなたを見ていきます、
どのmodのコマンドは、実行する必要がありますので、すべての心配はありません
愚かな詳細は、get-ここに行くからで同期。
>> すべての権利、ここのfroshims0.php。
、私は下にスクロールしてみましょう、何がここで好奇心旺盛だ
これは明らかに、PHPのファイルですが、その中には何ですか？
これはHTMLの全体の多くだし、確かに、PHPの起源
本当にWeb中心の言語であるためだった。
少し前に、我々は、ビールの例を実装するためにそれを使用し
条件たとえば、Helloの例、および罰金です。
あなたは、スクリプト言語としてPHPを使用することができます
スクリプトは本当に迅速かつ汚いプログラムに与えられただけで命名です
またはスクリプト化あるいはより一般的に解釈された言語で記述するもの。
あなたはどのように迅速に見てきたので、PHPはそのための超便利です
相対的に我々は、PHPでプログラムを手早く作ることができます。
しかし、それは実際には、Web用に使用するように設計されました
とファイルの先頭に、ここに気づく感覚でWeb用に設計された
私は<？phpで始まるのですか。
それから私は、無駄なコメントの束を持って与えられますが、その後私はPHPモードを閉じます。
しかし、その後、私は、HTMLモードにドロップします。
>> 何PHPに関する興味深いのは、ファイルの末尾にもかかわらずです。PHP
それは一般的には、HTMLと共存混じりれることを意図している
いくつかのPHPコードは、一部のHTML。
そして、我々は我々が離れてそれらをいじめるために開始できることを最終的に表示されます
そして、完全に私たちのPHPから私たちのHTMLを分離しておく
しかし、PHPの起源は、本当に、あなたにこのような柔軟性を与えるためだった
あなたには、いくつかのHTMLをしたい場合はそれを書いて、それがされること
ブラウザとまったく同じように吐き出す。
しかし、あなたはいくつかのプログラミング技術を必要とする場合、
いくつかのプログラミング·コード我々はすぐにわかるように、あなたも、まったく同じファイルにそれを置くことができます。
ここに私のHTMLです。
私は一年生IMSのこのタイトルを持っている。
私は、途中でセンターのすべてに、その上にいくつかのCSSを持ってbodyタグを持っている
その後ダウンここで私は明らかに提出されようとしているフォームがある
register0.phpという名前の新しいファイルに、私たちは一瞬にしていることがわかります。
それは、我々は同様に戻ってくるポストと呼ばれるメソッドを使用している。
それから私はそのタイプがテキストであるいくつかのフォーム入力、名前と呼ばれるものを、持っている
名前タイプのチェックボックスです船長、ある1、
そして、この、我々の前にそれを見ていないが、それは正確にそれが言うことありません。
代わりに、テキストボックスのチェックボックスが表示されます。
ダウンここでは、それらの円形のボタンの一つであるラジオボタンを、持っている
あなたはどちらか、この1またはそのいずれかを選択することができます。
>> それは私が両方のラジオボタンの性別の名前を与えたことを意図的に気づく。
これは、あなたがクリックしなければなりませんそれによって相互排他を取得する方法である
この1またはその1、その他をクリックすることにより、どちらかの
それは、他のチェックを外しているので、それらに同じ名前を付ける必要があります
あなたは彼らがそのような相互に排他的なようにしたい場合。
そして、寮のために、私たちはこれをまだ見たことがないと思いますが、選択メニュー、ドロップダウンメニューです。
のタグはSELECTです。
次に、ドロップダウンメニューに名前を付ける
その後、これらのオプションの全体の束を持っています。
最初のものは、ただ美学のために、空の文字列です。
私はただ、デフォルトでは空白にドロップダウンを望ん
その後などApley、Canaday、グレー、その他のものがあります。
そして、ここで二分法に注目してください。
ドロップダウンオプションは、値を持っている
しかし、それは人間に優しい名前を持っているこの例では、
同じですが、私たちは本当に肛門になりたかった場合、我々は可能性があります
このドロップダウンの値は、ショートバージョンだけかも
グレーが、私たちは本当に人間が実際に表示されるグレーホールを言うことができる、
しかし、それはすべてのことは面白くないので、私はちょうどそれが簡単に保たそれらが同一で作りました。
次に、下底部に我々は、送信ボタンを持っている
その我々の前に見てきましたが、私はちょうどそれを別の単語を与えたにも注意してください。
代わりにCS50検索、私はラベル与えた "登録します"
>> 最終的な結果は、ここで再び、このウェブページであり、
これはどこに提出するのでしょうか。
それは、いくつかのファイル、action属性の値に提出される
どのregister0.phpだった。
ここで実際に何が起こるか見てみましょう。
私が先に行くと、このフォームに記入してみましょう、ダビデは、言う
男性、マシューズ、その後私は登録と言うでしょう。
私はズームアウトして登録をクリックしてみましょう。
わかりましたので、無用の一種が、実際に何が起こっているのを見てみましょう。
URLはregister0.phpなるように変更されたことに注意してください。
我々だけでフォームを送信していても、しかし、URLから妙に欠席とは何ですか？
[聞き取れない生徒の応答]
さて、それは優しいだけChromeのあるユーザは、これらの日です。
それはそこに実際にです。彼らはただ、スペースを節約するためにそれを隠す。
しかし、良い思考、良い考え。
URLのもう一方の端に向かって、しかし、何が欠けている？うん。
[学生]クエリ文字列。
クエリ文字列なので、私たちのシンプルなGoogle検索の例を思い出してください。
私はURL送信ボタンをクリックするとすぐに
Googleに連れて行ってくれましたが、その後があったか私はインチ入力したQ =コンピュータサイエンスまたはものは何でも
我々は検索の例でgetメソッドを使用しているためです。
>> 今回は、代わりにどのような方法を使っている？
ポスト、および即時の区別の1
GETとPOSTの間にその記事には、URLにユーザーの入力を入れていませんです。
それを隠します。それはまだそれを送信します。
我々は一瞬にして明らかに説明するように実際には、我々は、ここでブラウザで見ているもの
レジスタ0を見ることによって、私は内容を見ているされている
ブラウザからサーバーに送信された配列の。
しかし、URLは？を持っていない、任意のキーワードを持っていません
またはその中の値、およびその理由とは？
まあ、後は、あなたがまだサーバーにフォームからデータを送信することができます
しかし、それがURLに入れていない、情報の種類にはどのようなので、投稿です
あなたは、ユーザーを求めているときに、おそらく特に適し
フォームへの入力のタイプは？
パスワードのようなもの、他に何のようなもの？
クレジットカード番号。
あなたはおそらく、URLで終わるしたくない穏やかに敏感だもの
それはあなたのルームメイトや家族がちょうど通って輪唱できることを意味しますので、場合にのみ、
あなたのインターネットの歴史やその後文字通り、あなたのパスワードを参照してください。
文字通り、ほとんどのブラウザので、あなたのクレジットカード番号を参照してください。
あなたが見てきたどのようなURLが歴史の中で覚えている、
そうそれが悪い考えになるので、場合にのみ。
ユーザーからのポストを隠し、その詳細を使用しています。
>> また、どのようにFacebookに写真をアップロードするのですか？
さて、あなたは本当に使用できる唯一の​​2のメカニズム、
他のいくつかのより難解なものがあるにもかかわらず、GETとPOSTされています。
どのようにあなたは、おそらくURL経由で写真をアップロードするのですか？
あなたが実際にそれを行うことができます。
あなたは、JPEGまたはビットマップまたはGIFを取ることができ、あなたは、16進数でそれを表すことができます
ベース64と呼ばれるとか。
代わりに、基部16のあなたは本質的に次のようになりますベース64を使用
ASCII文字とは、実際にはURLを介して写真をアップロードすることができます
疑問符の後ですが、サイズの制限は、一般的にあります。
ほとんどのブラウザではURLは、文字数は1,000文字以内であることを強制
多分2000文字等がいるので、アップロードすることはできません
10メガバイトFacebookの写真。
そのためにあなたが同様のポストを使用しておりますので、今のところは、URLのパラメータを入れ始める
それは時々いいと便利ですが、敏感であるか、または大きい何のため
ポストは移動するための方法です。
レジスタ0は、実際にはここで何をやっている？
さて、私はこれは超簡単なページであることを通知レジスタ0を開く場合は、
それは、良くも悪くも、私は共同付き合うことができるという事実を実証している
PHPを使ってHTMLを表示します。
このファイル全体では、上部のコメントの場合を除き、HTMLです
ここでこの男を除いて。
>> 私のPHPコードの途中で注意してください、
私のHTMLの途中で、私は一時的のようなものを持って
PHPモードに入りました。
私は印刷Rと呼ばれる特殊な関数を呼んでいる。
これは、再帰的な印刷を意味し、何をするかと、それが再帰的に出力している
あなたがそれを渡すどんな変数、セミコロン、出口PHPモード。
とpreタグは、あなたに事前にフォーマットされたテキストを与える
すべてのスペース、あなたが実際にそれを参照するようにモノスペースのテキスト。
それが消えることはありません。ポストとは何ですか？
まあ、面白いとPHPに関する説得力のあるものだ
つまりあなたはGETまたはPOSTを使用してフォームを送信するたびに
ブラウザによってあなたに提出しているもの
PHPそれ自体は、それらのキーと値のペアが何であるかを割り出し
数字出疑問符があったら等号、数字はそこましょう。
それはあなたのためのすべてのハードワークを行い、その後、それはあなたに連想配列を渡す
ユーザーがフォームに入力したすべてのものを含む。
さて、このフォームがどのような分野を持っていたのですか？
>> それは4つのフィールドを持っていた。
ひとつは、名前というテキストフ​​ィールドだった。
一つは、キャプテンと呼ばれるチェックボックスでした。
一つは、ジェンダーと呼ばれるラジオボタンだった
もう一つは、寮と呼ばれるドロップダウンメニューであった
私は再帰的に印刷するときにそう気付く
この特殊変数の内容。
これは、すべて大文字で、$ _POST文字通りと呼ばれる特別なグローバル変数です。
これは、PHPがあなたのためだけに作成される特別なグローバル変数である
と手をあなたにあなたがすべてにアクセスできるように
それは、ユーザによるフォームから提出された。
と上の印刷rを呼び出すことによって、あなたは、通常のアプリケーションでこれをしないだろう。
我々は、この変数の内部を見るためにこれをやっている、
と、まあ、その中に4つのキー何だ、
4 HTTPパラメータ、いわば
次に名前、船長、性別、寮、そのユーザーの値
一つの例外でタイプされた。
私はタイプD-V-I-Dをやった。
私は明らかに値を送信した、男性のために、しかし、ボックスにチェックマークを付けた
簡潔に言えばちょうどmの。
>> 私が選択してしまった値ですマシューズを選択したとき
そして、この1つは少し愚かですが、それは慣習的なやり方です。
私は、ボックス上の値をチェックすると "オン"チェックボックスのために提出されました。
私はそれをチェックしていなかった場合、値は一切送信されませんでした。
これは、ちょうど私達に、この特別なグローバル変数の中身についての洞察を与えている、
そしてそれはスーパーグローバル変数と呼ばれるように特別なのです。
あなたが実際にそれにアクセスできるように、それはあなたのコードの中にあなたのためにどこにでも存在しています。
これは説得力のある、それでは、実際にスーパーグローバルを使用してみましょうということではありません
そして実際に誰かを登録しよう。
froshims1では、私は1つの変更を行いたいと思います。
私は、register1.phpするアクションを変更している
そして私はもう一つのことをやっています。
私は私のウェブページの品質が恥ずかしいのようなものだった。
それはかなり恐ろしいですが、正直なところなので、それが判明した
あなたは、Web上で非常に簡単に使用することができます
他の人のJavaScriptコードは、他の人のCSS
彼らが書かれており、オープンソースやライブラリとして利用可能にしたこと、
いわば、そして例えば、ここで私は自由に利用可能なライブラリを使用している、
他の誰かが書いたコードの束。
>> Twitterは、このコードを記述するために起こって、それは、ブートストラップ·ライブラリと呼ばれています
そしてそれはちょうど、CSSスタイルシートの束、cssファイルの束だ
その他の誰かが書いた、すべてが素晴らしく、非常に取得する方法を考え出した
私たちのような人々が美学について少し心配してはるかに多くを焦点を合わせることができるように
ロジックと実際のプログラミングについて。
私が以前styles3.cssために覚え使用したのと同じタグで、そのタグと、それをリンクすることにより、
私は今bootstrap.min.cssと呼ばれるファイルにアクセスすることができます。
Minは、ちょうど彼らがそれを縮小したことを意味し、彼らはなど、すべての空白を脱却しました
ちょうど彼らが私に私が実際に必要とするより多くのバイトを送信していないことを確認します。
私は今一年生のIMのバージョン1を開くので、もししかしそこには、CSSの全体の束である
私のファイルは間違いなくきれいであることに気づく。
今ではまだ黒と白だけだが、ちょうど彼らのスタイルシートを使用してことに気付く
と私のフォーム上の特定の機能を使用するには、驚くべきではありません
しかし、それは間違いなく、それは以前よりクリーンだし、プロジェクターはそれを正義を実行していません。
ボタンの周りと、テキストフ​​ィールドの周りに少し灰色の線は、右ここにあります
しかし、それは間違いなく、それが以前よりも明確なのです。
>> さて、公平に見て、私は私のマークアップビットを変更する必要がなかった。
これは、バージョン1であり、私はいくつかの新しいタグを使用していたことに気付く
私はマニュアルを読むまでは、正直なところ、私はこれを行う方法を知りませんでした
あなたが私たちのライブラリを使用したい場合は、Twitterのブートストラップ·ライブラリに対して、彼らは私に言った
、あなたのフォームの中にfieldset要素を使用
ラベル·タグのフィールド内側の横に表示させたい言葉を入れて、
その後、直前のように、あなたの入力の名前を付ける
その後、チェックボックスを、あなたは、label要素でそれをラップしないだけでなく、
あなたは、クラスと呼ばれるものを使用するので、我々は、前にこれを見ていない
しかし、あなたは、pset 7のショートパンツのいずれかでこれを見ることができます。
CSS内のクラスを使用すると、IDと非常によく似た何かを行うことができます
しかし、我々は、シャープ記号（＃）でIDを持っていたときの前に
それは唯一無二の1つの要素だった。
どのクラスについての素晴らしいのは、複数の要素が同じクラスを持つことができるということです
あるいは同じCSSものがそれに適用される。
>> しかし、再び、短期のものについて、これの残りの部分は単なるコピー＆ペーストです
私はこことそこにラベルを追加したところ、それぞれのドキュメントから。
そして最後に、ので、私は、上部にあるリンクタグを用意しました
すべてが自動的にきれいに見えます
単にそのように私のページをマークアップされたことにより、
Twitterが期待されており、非常に多くの異なる方法があり
これをやって、これは確かに非常に適していますの。
学期のこの時点で、あなたはPSET 7の仕様で説明するように、
、周りグーグルライブラリ上に読んで、他の人のCSSを使用して
とJavaScriptは、補助的な問題を解決する
問題セットにそれ自体は確かに奨励されている方法です
Webは他の人の肩の上に立って、これらの日に構築され
あなたは本当に新しくて面白い問題に焦点を当てることができるように。
しかし、それでは、再び、ロジックに集中することができます。
>> それはちょうどあなたが行くことができる方向を示すために美学上の迅速な回り道だった。
私は今のところ、醜いものに戻すつもりだという理由だけで
そこにTwitterのようなものとの気晴らしはありません、と私は先に行くと開いてみましょう
再び、register2.php、アクションだけが異なる、froshims2、
とのは効果がここにあるものを見てみましょう。
私が先に行くとDavidに入力しましょう​​。
今回は船長ではありません。
私はマシューズ、レジスタ、男性と言うでしょう。
ちくしょう。さて、それは私の一部で台無しだ。
スタンドバイ。
レジスタ2、22行目、空の場合、または-申し訳ありませんが。
リロードしてみましょう。
さて、ちょうど何が起こったのか、このフォームを送信すると？
私はデイヴィッドで入力し、マシューズ、レジスタをクリックすると、男性のチェック。
あなたが登録されています。 （まあ、そういうわけではありません。）
これは、明らかに単にいくつかの変数の内容をプリントアウトする一歩である
ただし、このファイルは実際に何をやっている？
register2.phpで
私はいくつかの新しいコードを持っていることに気づく。
私のbodyタグの内部で私が構築した場合、他の本質的に持っている、
しかし、私はいくつかのHTMLでこれを共同混ざってるから
私は前後にPHPモードを開始および終了する必要がありますので、私がやっているのか見てみましょう。
>> それが事実である場合は、ここを最初の行では、私は言っている
ポストスーパーグローバルは、名前のキーの空であること
だから、他の言葉で、ユーザーが私のフォームでnameの値を与えていない場合
次に、空の値が空であるためtrueを返すために起こっている。
性別は空であるか、気付く縦棒、場合
再度、フォームの内容を表し、この特別なスーパーグローバルでの内部
寮が空であるか、私は先に行くとユーザーで叫ぶつもりです。
どうやって？まあ、私はあなたの名前、性別、寮を提供しなければならないと言うつもりですがわかります。
実際にその間違いを誘発してみましょう。
私は私のフォームに戻りましょう。私はそれをクリアするためにリロードしてみましょう。
そして、私はちょうどそれらにデビッドを与えるつもりだ、と彼らは私が住んでいるかを知る必要はありません。
登録します。どうやら私は、私が住んでいる場所を指示する必要があります。
あなたの名前、性別、寮を提供する必要があります。戻ってください。
>> そして、私はそのフォームに戻ってクリックすることもできますが、その理由は何ですか？
まあ、そのケース名で、空ではありませんでしたが、性別があって、寮があった
ので、この式全体が構文が少し新しい場合でもtrueに評価され、、
再び、我々は、if文おなじみのPHPモードを、次のように入力します
しかし、ここで新たな部分は、ちょうどこのコロンですが、私は括弧を省略することで台無しにしていた
偶然ですが、コロンに気づく、それが意味する
我々は、PHPモードのすべてを終了しているにもかかわらず、
それは、ブラウザにそのまま吐き出すべきである次の
我々がここでやっているようでは、elseブロックが表示されるまで、
代わりにこれを吐き出すべきで、その場合、
あなたはとてもendifの、いくつかのわずかに新しい構文が表示されるまで
それは私がHTMLとPHPを切り替えることができます。
我々は、今のところ、最終的にはこの上をきれいにすることができる
それには、フォームをチェックし、エラーの説得力のある方法のようなものだ。
>> 今、私は、明らかに我々がしますが、データ何もしなかったので、あなたが本当に登録していないと言う
ので、実際に涼しい何かをしてみましょう。
froshims3の唯一の違いは、私はレジスタ3に提出するつもりである
HTMLのように同じことがあります。
レジスタ3でこれに気づく。
この1つは、セクシーの一種である。
私はrequireステートメントを使用している上部には、これは＃includeのようなものです。
今回は、それがstdio.hやそれに類するものではありません。
これは、PHPのライブラリだし、この1はphpmailerのと呼ばれています。
どのように私は、まさにこの引用符で囲まれた文字列を含めることをご存知でしたか？
彼らは私がファイルの先頭にこれを入れて話したとき、私はそう、マニュアルにそれを読む
あなたはそれが言っていることphpmailerのと呼ばれる特殊なライブラリを使用したい場合。
それは、PHP経由で電子メールを送信することができます。
今ではさらに下にスクロールしてみましょう。
>> 私はPHPモードでこの全体の時間だを開始するに注意してください、
だから今は、そのライブラリをインポートした後、ここに気付く
いわば、私はいくつかの健全度チェックをやっています。
それは、名前が空でない場合なら
と性別は空に気付かないで感嘆符を
と寮が空でない場合、ユーザーは、論理的には、少なくとも十分に、フォームに記入しています。
彼らは船長またはいないのであれば私は気にしないでください。私は自分の名前、性別、寮をちょうど必要とする。
これらのフィールドのどれも空になっていないので、彼らは、それらのうちを満たしている場合
これは少し新しい構文です。
PHPは、余談ですが、オブジェクト指向プログラミング言語である
あなたたちの一部は、APC等から思い出すかもしれない。
不慣れな場合、今のところ、ちょうどこのライブラリを使用することを知っている
あなたは、新しいキーワードを使用して、このようなコードの行を記述する必要があります
文字通り新しいキーワードは新しいと呼ばれる。
しかし、それを超えて、我々はいくつかの見慣れた構文を持っています。
それは、我々はポインタの文脈で構造体に対して使用されるものに類似している矢印演算子、です。
今日のためにPHPは、ポインタを持っていません
しかし、今、メール変数と内部のために知って
特別なライブラリへのポインタの本質一種である
他の誰かが書いて、私は特定の機能にアクセスしたい場合は、その
そのライブラリの内部で、私は、C言語のように、矢印演算子を使用するのですか、
これらは実際にはポインタではないにもかかわらず。
それは、そのPHPの独自のバージョンのようなものだ。
これは、図書館に行くとIsSMTP関数を呼び出すことを意味します。
電子メールを参照するネットの戦士達からのSMTP、リコール、
そしてそれはちょうどこの一年生IMS登録のための電子メールサーバを使用することを意味します。
>> 私が使用するには、どのようなホストをしたいですか？
さて、ハーバード、あなたの周りのGoogleは、smtp.fas.harvard.edu呼ばれる電子メールサーバを持っている場合。
またはご自宅で一緒にプレーしている場合は、Comcastがネットワーク上に生きる
それはsmtp.comcast.netようなものかもしれない。
それは完全にあなたが住んでおり、ISPが誰なのか場所によって異なります。
その後、私はjharvard@cs50.netように任意にされた住所からは、私を設定するつもりです。
私はその後、jharvard@cs50.netように対処するために設定するつもりです。
私は、これらの関数が呼び出されたことを知っていた唯一の方法そして本文とAddAddress
再び、私は資料をお読みください。
これは、魔法のように、すべてのプログラマーに知られたものでもありません。
それから私は対象に設定された "登録を。"
ドット演算子は、PHPで何を意味していないため、現在はこの行は少し醜いですか？
誰もが知っているか？
連結します。
C言語では、それは一緒に2文字列を連結するための首の痛みです。
あなたは、mallocやreallocまたはその原料のすべてに対処しなければならない
単に文字列の長さを拡張することができます。
JavaScriptでPHPと他の言語で
あなたは通常、単一の文字でこれを行うことができます。
この場合、ドットがここにこの文字列を取ることを意味します
そしてそれには、この文字列を追加します。
>> 、ああ、ところで、それには、この文字列を追加
これは、そのスーパーグローバル変数の内部にあることを起こる。
それに新しい行を追加しますので、これらのすべてのドットの意味は、単に
、どんどん大きくし、大きな文字列を作り続ける
そしてあなたは、mallocまたはこのような言語のような約全然気にする必要はありません
そしてそこにこれを行うには、他の方法ですが、これは最速の一つである
それをレイアウトする方法。
これは何をやっている？
キャプテン：性別：寮、それは名前を言おうとしている電子メールの本文を作成している：
してから、最後に、別々の行にすべての
1行のコード、と私は今のところ、これを無視するつもりです。
偽==はちょうど何かが間違っていた場合を意味し、場合
しかしマジックはここで起こる。
メール送信は、このメールを送ることを意味します。
正味の結果が何であるかを確認してみましょう。
ファイルの一番下にある、それはあなたが本当に登録されていると言うことが起こっているのに気付く
私はそこまで行く場合。
しかし、場合には、ユーザーがネジまで、我々がこれを始めたことに気付く
ここまで条件があれば、それが空と空ではないではない場合
そして我々はメールを送って空にしない。
そうでなければ我々は、このコード行を送信しようとしている
ユーザーをリダイレクトするのどちらがPSET 7でわかるように、効果があることを行って、
彼らが戻って来て、froshims3.phpへ。
>> 指がそうでなければ、これは今日最も期待はずれデモになるだろう、交差させた。
ここに私達は行く。
私はGmailでjharvardのための私の電子メールの受信トレイを開いてみましょう。
今も電子メールはありません。かしこまりました。
今私は、私たちがここを見てみましょう3番目と最後の例ですfroshims3を開くことができます。
さて、ここで私達は行く。
ネイトは、彼がApley、言うから、、、男性のキャプテンになるでしょう。
登録します。さて、あなたは、本当に登録されています。
今私は私の電子メールに上にスクロールすると、ああ、私の神。
私は動的にWeb上で電子メールを送信した。
>> そのノートに残しましょう​​。
ビデオは、我々は逃した講演のために準備しています。来週お会いしましょう​​。
[CS50.TV]