[Powered by Google Translate] [주 8]
[데이비드 J Malan] [하버드 대학]
[이 CS50 수 있습니다.] [CS50.TV]
>> 다시 오신 것을 환영합니다.
이 CS50이며,이 주 (8)의 시작입니다.
기회의 몇 이번 주,
그 중에서도 여기에서이 이야기가되는 음식이 제공 될 것입니다.
자세한 내용은 온라인 슬라이드를 확인하십시오.
또한 우리 자신의 토마스 Carriero의 다른 이벤트 이번 주.
그는 보관에 지금 CS50의 전 머리 교육 친구들 중 하나
그는 당신이 알고 우리를 연결시켜 줬습니다 남자
당신이 보관하고 자세한 내용은 오늘 오후 자신의 이야기에 머리가 더 싶다면.
CS50 점심은 금요일입니다.
당신은 불과 얼음에서, 평소처럼, 1:15 수 있다면 우리와 합류.
>> 그리고 지금 우리는 세미나라는 걸에 뛰어.
우리 CS50 세미나, 리콜, 교육 동문이 주도하는 이러한 선택 수업 아르
물론 당연히 보조 및 친구,
캠퍼스 그룹에서 사람들은이 그룹 ABCD를 호출
캠퍼스에서 technophiles뿐만 아니라 HCS라는 그룹,
하버드 컴퓨터 학회, 유사 컴퓨팅에 관심이있는 학부생.
세미나 올해의 목록은 안드로이드와 iOS와 자바 스크립트에 대한 세미나를 포함
와 PHP, 유닉스, VIM, 그리고 더 많은, 그래서이 세미나가 접근하는 것을 알고 있습니다.
당신이 답장하려면 이들 중 어떤이 해당 URL에 가세요.
그들은이 결정되면 우리는 코스의 웹 사이트에 시간과 장소를 게시 할 것입니다.
그러나 이전 세미나가의 5 년치 온라인을 알고
그 중 많은 사람들이 당신이 수도 기술의 측면에서 여전히 매우 최신
귀하의 최종 프로젝트에 놀고 싶어, 그래서 그 어떤 가능한 동영상에 거기로 향할.
>> CSS, 이미 CSS에 대해 잘 알고있는 분들,
말도 안되는 소리 같지만은 무엇입니까?
CSS는 무엇입니까?
이 규약에서 캐스 케이 딩 스타일 시트를 하니까, 그게 무슨 뜻 이죠?
즉, 우리 CSS를 무엇입니까?
좋아, 그럼이 쉬울, HTML, 하이퍼 텍스트 마크 업 언어로 몸을 따뜻하게 보자.
그게 우리를 위해 무엇입니까?
누구 전혀?
그것은이 질문을 정말 어색지고있어.
HTML, 하이퍼 텍스트 마크 업 언어입니다.
그래? 아냐?
[안 들리게 학생 응답]
그래, 좋아, 우리가 웹 브라우저에 표시 할 텍스트를 표시 할 수 있습니다.
이 프로그래밍 언어 없습니다.
그것은 실제로 마크 업 언어입니다, 어떤은 어떻게 표시 할 브라우저를 지시 의미
정보는, 우리는이 간단한 화신 본으로
오픈 브라켓 B 폐쇄 브래킷은 boldfacing 같은 간단한 슈퍼 것을 말합니다입니다
이 텍스트는 굵게, 그 사실 방금 여러 가지 중 하나
우리가 실제로 그렇게하고, 할 수있는이 일 나은 접근 방법
일 강렬하고 기울임 꼴로 만드는 웹 페이지를 stylizing로
와 중앙 정당과 같은 혼자 HTML 태그를 통해 수행되지 않습니다
오히려 규약에서 캐스 케이 딩 스타일 시트를 CSS라는 기술이있는.
이 자체 께 언어입니다.
그건 너무 프로그래밍 언어가 아닌 것입니다
여러분, 오늘 우리와 함께 유지 댄입니다.
일부 기술적 인 문제. 아니 문제가 발생했습니다.
>> CSS는 우리가 페이지를 어떤 양식에 일치시키다 할 수 있습니다
속성이라는 것을 설정하여 있으니,이를 살펴 보자
몇 가지 기본적인 예제 방법으로.
내가 오늘 어플라이언스로 가자.
내가 여기에 소스 (8) 월요일 디렉토리가
그리고 난 우리가 아주 많이 있습니다있는 CSS라는 디렉토리에 갈거야
여기에 우리를 기다리고 파일,
이 폴더에 우리는 마지막으로 예를 들어, search0.html 있습니다.
이제 search0으로 기억 우리는이 메모에 남아
으로 일주일 전에 그것을 단지 프런트 엔드를 Google에 구현 또는 종류,
그리고 우리가 새로운 태그를 가지고 것을 확인할 수 있습니다.
우리는 크고 굵은 제목에 H1을 가지고
우리는 실제로 사용자의 입력을위한 HTML 양식을 할 수 양식.
액션, 액션 속성의 의미 뭔지
HTML 양식 태그에?
이 행동의 의미는 무엇입니까?
오늘은이 작업을 수행 불과합니다.
작업 양식이 제출 될 예정되는 위치의 대상입니다.
말하는 것은 사실 행동 = "google.com / search"입니다
사용자가 클릭 할 때 버튼 또는 동등한를 제출할 것을 의미합니다
사람들이 작성 어떤 양식 분야의 서버로 전송되지 할 겁니다
또는 오히려 구글의 특정 URL에 대한 우리의 어플라이언스.
그리고 사용하는거야 방법은받을라고
그리고 지금, 그냥 웹 서버에 따라 정보를 전달하는 기술이며, 얻을
URL에 의해 있으니, 어떻게이 작품에서 다시 잠깐 살펴 보자.
>> 그의 이름은 Q입니다 입력이납니다
누구의 유형은 텍스트 및 입력의 두 번째 입력 제출합니다
누구의 값은 CS50 검색이며, 실제로 우리가이 파일을 열 경우,
sea​​rch0.html, 그게 슈퍼 간단한 양식,
및 컴퓨터 과학 같은을 검색하는 경우
그리고 CS50 검색을 입력하거나 클릭을 누르
어떤 일이 생기하면 Google에가는 이상 상태가됩니다
난 특별히 상단에이 URL에 묶는 것
google.com / 검색? Q = 컴퓨터 + 과학,
와 컴퓨터 과학 I가 들어 입력 한 분명히
+는, 공백 문자가있는 곳 그 뜻
그리고 그것은 단지 더가 있는지 확인하기 위해 브라우저에 의해 됐어요
혼란과 실제 URL에 공백.
그리고 Q는 물론, 매개 변수 이름입니다.
우리는, 프로그래머가, 실은 아직 Q에 액세스 할 수있는 방법을 볼 수 없습니다.
우리는 구글이 여기에 어떻게 알고 있다고 가정 할 수
하지만 오늘 따라 시간에 갈 수 있습니다.
>> 그러나, 제가 search1.html에서 대신을 봅시다
여기이 양식이 좀 구식이라고 결정하기 때문에 이는 좀 달라 보이는데.
내 말은, 그건 왼쪽 상단에 있습니다.
그럴 미학은 그것에게 정말로없고, 그래서이 어떤 양식에 일치시키다하려면
더 많은 홈페이지, 리콜 구글 같은 비트
당신이 자주 방문 수는 없었지만, 할로윈에 오늘이 것 같습니다.
우리가 대신이 파일을 검색 1.html의 버전 1을 열면, 내가 중심습니다.
그래도 꽤 추한하지만, 적어도 지금은이 페이지의 미학을 제어하기 시작했습니다,
뿐만 아니라 그 마크 업.
의 검색을 한 살펴 보자, 그리고 하나의 차이는 여기에 정말있어,
그 때문에 나는 건, 아님하지 않을 수 있습니다
하지만 차이의 한 줄 또는 스 니펫 (snippet)은 뭐야?
>> 이 스타일 속성이있어, 그래서 밝혀 그 HTML에서
대부분의 요소는 대부분의 태그는, 그들에 스타일 속성을 가질 수 있습니다
그리고 안에 스타일 속성의는 인용 문자열
그 인용 문자열 CSS입니다.
당신은 거기에 CSS 스타일 시트를 넣을 수 있습니다
속성 이름으로 지정하여
값 뒤에 콜론이 나타납니다.
이 몇 년 전 불행한 디자인 결정의 종류입니다
CSS는 그 자체 께 언어입니다,
하지만 구문은 HTML과 매우 다릅니다.
이 경우, 우리는 HTML로 작성된 웹 페이지,의 내부를 볼
나는 CSS 인용문의 내부에 있고, CSS를위한 대회
당신이 다음 프로퍼티, 다시, 콜론,라는 것을 가지고 있다는 것입니다
그 속성의 값에 의해 다음에 더 등호 필요가 없습니다.
추가 따옴표가 없습니다.
그것은 이번 콜론 분리 키 값 쌍입니다
와 텍스트 라인은 말합니다 정확히 않습니다.
그것은이 페이지의 본문에 텍스트를 정렬, 그, 정말 페이지의 배짱
중앙 인치
>> 좋아요, 최종 결과는, 분명히 방법이 있습니다.
모든 그 섹시하지만, 적어도이 중심과 실제 Google과 같은 좀 더있어.
하지만 대신이의 버전 2를 어떻게 열 경우
그리고 모두 여기로 새 태그를 지적?
지금 이전 만 가지고 내 페이지의 헤드에있는 태그
이전의 모든 예제?
단지, 제목을이했다.
순간 전 머리 태그는처럼 보​​였다.
지금 대신가이 사건의 스타일 태그 안에 있습니다
이도 사과 구문, HTML에서 매우 다른 모양
하지만 당신은 거기에, 상기 내부의 스타일 태그의 사용하기
지금은 잠시 전에 어떻게 된 건지 알아 반영 할 수
속성 스타일 속성, 나는 내 페이지의 상단에서 넣을 수 있습니다.
>> 이유는 무엇입니까?
음,이 C 코드를 서면으로 많은 같은 일을 청소하는 방향으로 단계입니다
우리는 때때로 일반적인 기능을 반영하는 기능을 쓸 것입니다.
단지 미학 등 아웃을 고려해을 시작하려면 작은 청소기입니다
오히려 당신의 HTML을 통해 모든 흩뿌 리다을 갖는 것보다 하나의 중앙 위치합니다.
이건 너무 새로운 구문의 비트가 비록 그가 말한 않습니다.
이 여기에 선택이며, 몸은 몸의 요소를 선택할 의미
거기에 다음과 같은 속성을 적용 할 수 있습니다.
음,이 호텔은 정확히 동일합니다.
좋은 측정을 위해 나는 마지막에 세미콜론을 추가 한
이는 대회하는 경향, 나는이 모든 재산을 포장 한
중괄호에 있기 때문에 사실은 여기에 여러 가지가있을 수 있습니다.
사실은 색과 같은 말을 수 있습니다 : 파란색,
>> 이제이 너무 모든 예뻐 어떤 방향으로 단계가 될하지 않을 것은,
하지만 지금 버전으로 돌아 가면이 나는 적어도 지금의 몸을 한
페이지의 텍스트를 모두 파란색.
그 입력이기 때문에 버튼은 같은 유지합니다. 그것은 단순한 텍스트 아닙니다.
그러나 꼭대기 CS50 검색과 마찬가지로 텍스트입니다 다른 모든 사실 파란색에 있습니다.
다시 말하지만, 우리가 한 모든, 몸의 태그 통지를 제거합니다
스타일 속성, 우리는 여기서 고려 이것 좀있어.
이 거대한 개선 아니지만, 우리는 더 이상이 한 걸음을받는다면
우리가이 세 번째 버전에서 할 수있는 일을 확인합니다.
>> sea​​rch3.html에서 웹 페이지가 거의 동일
어떤 새 태그 지금은 빼고?
링크, 이번에 매우 aptly라는되지 않습니다
당신은 클릭 하이퍼 링크의 의미 연결이 안 되니까요.
오히려, 당신은의 동등한를하는 종류는 C #에 포함이야
상기 href 속성으로 링크 태그
와 rel 속성은 앞서 갈 수 있다고
그리고 파일의 내용을 붙여 복사 본질적으로, 여기 search3.css을했다.
꽤되는 작업을 수행하지 않지만, 그게 정신입니다.
그렇게 파일 search3.css을 열어 갈 수 있다고
그리고 사용자가 페이지의 머리에 바로 여기에 입력 한 것처럼 처리
내가 앞의 예에서 그랬던 것처럼.
Search3.css는 한편, 아주 간단합니다.
정말 한 순간 전 어떤 건지 정확히 포함되어 있습니다
스타일 태그에 있지만 자신의 파일을 여기에 반영 이것 좀있어.
>> 우리는 HTML 또는 웹 프로그래밍에서 모든에 많은 시간을 소비하지 않은 경우에도
그냥 직관적으로 동기 율도를 들어, 아마도 어떤 데요
자체 파일에도 CSS의 작은 미리보기
그리고 여기이 링크 태그를 포함?
[안 들리게 학생 응답]
좋아요, 당신이 CSS 파일에 CSS를 가지고 있다는 점에서 읽을 쉬워졌습니다.
귀하의 HTML 파일에 HTML을하기 때문에 그런 점에서 더 많은 읽을 수 있습니다.
다른 어떤 강력한 것이있을 수 있을까요? 그래.
[안 들리게 학생 응답]
그래, 당신이 그것을 여러 번 포함 할 수 있습니다, 그래서 지금 우리는 이러한을 다하고 있습니다
개별 파일과 기본 예제하지만, 실제로하는거야 가정
당신처럼 진정한 웹 사이트, pset 7 아마도 최종 프로젝트에 대한 의지
그리고 여러 웹 페이지를 원하는 등을 확실히 일반적입니다
실제 월드 와이드 웹, 그리고 바보 같다고 것
같은 푸른 색을 복사하여 붙여 넣기해야합니다
와 같은 텍스트가 해당 페이지의 모든 하나에 중심을 정렬.
오히려 우리가 C에서 한 많은처럼, 나가 반영하는 것이 더 의미가
. H 파일과 함께, 하나의 중앙 위치에 넣어
이 경우 search3.css에서 다음 모든 파일을 수
웹 사이트에 실제로 여기에 라인 16이 태그의 방법으로 해당 파일을 포함 할 수 있습니다.
일반적으로의 경우, 우리는, 버전 0으로 시작 작품 중 어떤 종류의
하지만, 최선을 반드시, 각 단계를하지 않습니다
검색 1, 검색 2, 지금 검색 3 우리는이 아기 단계를 취했습니다
작은 청소기하고 더 많은 준비 아르 디자인 방향
우리가 길을 따라 내려 할 수 있다는 더 복잡한 페이지에 대한.
>> 난 그냥 보여하려면 여기를 마지막 예를 열어 보자
더 많은 양식화 된 페이지를, 그러나 먼저가 HTML 살펴 보자.
이 search4.html이며, 구조적으로 거의 동일하다는 것을
새 태그의 도입을 제외하고 사업부.
사업부는 페이지의 부서를 소개 태그입니다.
당신은 눈에 보이지 않는 직사각형으로 생각할 수 있습니다.
이 종류의 웹 페이지에 지역의 주위를 생성
당신은 한 번에 모두를 어떤 양식에 일치시키다 수 있습니다.
내가 여기 한 것은 다음과 같습니다.
계속가 발생했습니다 내 몸이 태그의 내부,
나는 47를 통해 선 45를 통해 여기에 페이지의 부서를 만드는 말
그는 기본적으로 나에게 페이지 상단에 눈에 보이지 않는 사각형을 제공을 의미합니다.
그런 다음 아래의 나에게 눈에 보이지 않는에도 불구하고 두 번째 사각형을 줘,
그리고 마지막으로 다음 이름의 콘텐츠를 식별하고,
저에게 아래에있는 페이지의 삼분의 부서를 제공
ID했다.
난 그냥 순간에 이런 짓을 한 이유를 우리는 볼 수 있습니다
하지만 개념적으로 나는 헤더 사업부가 있습니다.
나는 컨텐츠 사업부를 가지고 있고, 나는 페이지의 바닥 글 사업부가
이는 마크 업에에도 마찬가지입니다.
사용자는, 3 사각형을 보러되지 않습니다
하지만 장면 뒤에 구조적으로도 일종의
실제로 존재하고 있습니다.
>> 이제 무슨 상관이야? 왜 실제로 이런 짓을 해?
페이지에서 다른 모든 우리가 전에 본 적이과 동일합니다.
여기 내 양식입니다. 여기 내 입력, 내 입력, 줄 바꿈 등등입니다.
다음은 이미지이에요, 그래서 우리는이 한 순간에 어디에서 왔는지가 표시됩니다.
여기 새로운 바닥 글, 내가 소개하고해서입니다
여기에 좀 더 콘텐츠입니다.
우리가 통지를 스크롤하면이 사업부의 ID가 헤더입니다.
이 사업부의 ID는 콘텐츠입니다,이 하나의 ID는 바닥 글입니다.
이름에서 알 수 있듯이, 당신은 ID 속성이있을 때
HTML에서 정의하여 고유하게 식별해야합니다
요소 중 하나 페이지에있는 태그 중 하나입니다.
짐은 이미 헤더 ID가 기억하는 언니에 있습니다.
당신은 바닥 글을 갖추고 있습니다. 이미 콘텐츠 ID가 있습니다.
컴퓨터는 사용 가능한 ID가 당신을위한 무엇을 할 수 있는지 알아내는 않을 것이다
그래서 당신은 실수로, 2 태그를 헤더의 ID를 얻을 수있을
그리고 그건 정말 잘못된 것입니다.
>> 당신이 만든 것을 명심해야
하지만 일단 우리가 할 수있는 일을 그 통지를 했어.
이제 상단에있는 내 스타일 태그에 지정할 수 있습니다
또는 equivalently 내 CSS 파일에, 아직 그 버전을 사용 한 경우,
나는 # 헤더를 말과 그 뜻 것은 무엇이든 할 수있는 태그
이 웹 페이지에 헤더의 ID가
와 #, 단지 인간의 컨벤션으로, ID를 나타냅니다.
날카로운 로그인 또는 파운드 기호는 ID를 나타냅니다.
헤더가 나 한테 준 이름입니다.
이렇게하면이 CSS 속성을 적용 의미
이 페이지에는 어떤 태그는 헤더의 ID을지지합니다.
저도 거래.
어떤 요소에 동일 일이 속성을 적용
여기 그리고 그의 ID 콘텐츠이며,
나는 바닥 글이있는 작은 애호가있어 확인합니다.
누구의 ID 바닥 글이 모든 요소는 중, 정의의 하나가 될 수 있습니다
진행 및 글꼴 크기를 작게 만들,
그 글꼴 무게 굵게, 그 여백 20 픽셀.
>> 그게 무슨 뜻 이죠?
단지 위, 아래, 왼쪽, 오른쪽에 여백입니다.
이 날 주변 20 픽셀 보이지 않는 여백을 제공 의미
당신은 Word에서 할 수처럼 그냥, 멀리 조금 다른 건 다 밀어하려면,
Microsoft Word 나 페이지 또는처럼.
그리고 텍스트 중심을 맞 춥니 다.
최종 결과를 보자,의, 그리고 우리가 CSS의 하나 남은 스 니펫 (snippet)에 다시 갈거야.
이것은 검색 예를위한 우리의 마지막 버전 4이며, 훨씬 더 야한 게 어디 있어요.
지금, 공평하게, 그냥 "구글 글꼴 로고 생성기를."검색해
그리고 그 날이 그렇게 보이는 GIF, 이미지 형식을 만들 수있었습니다.
사실, 당신도이 작업을 수행 할 수 있습니다.
우리는 "구글 글꼴 로고 생성기를."이
>> 우리가 이런 일을 할 수 있는지 봅시다.
그래,이게 바로 내가 사용하는 웹 사이트라고 생각합니다.
우리는 예를 들어, EC 10 말, 그리고 그들에게 자신을 만들 수 있습니다.
당신은 오래 하루 종일 놀 후 바로 클릭 할 수 있습니다
그리고 내가 한 모든입니다 실제 GIF를 다운로드 할 수 있습니다.
왜 HTML과 실제로, 저, 여기, 기억
나는 우리가 지난 주에 잠깐 본있는 이미지 태그를 가지고
logo.gif는 해당 소스입니다.
그리고 다시이 alt 속​​성을 갖는에 대한 동기를 부여했다
이 방법 속성?
그래.
[안 들리게 학생 응답]
좋아요, 그럼 둘 이유는 정말 브라우저는 이미지를 끌어 수없는 경우
당신은 속도가 느린 네트워크 연결이나 이미지가 손상되기 때문에
그렇게라도 최소한 인간 "CS50 검색"을 볼 수 있습니다
그리고 또한 접근성 이유.
눈이 멀었나 인 사용자가 있으며 스크린 리더를 사용하는 경우
따라서 틀림없이 적어도 수 이미지를 볼 수 없습니다
자신의 컴퓨터에 그것을 말하는 경우 텍스트를 들었어요.
>> 이 페이지의 접근성에 있어서는 일반적으로이 최고의 연습
그래서 상황에서도 사용자는 듣고보고, 말하자면 수
어떻게하면 페이지에 걸 수 있습니다.
여기했다는 한 가지
이는 약간의 재미, 7을 설정 우리는 문제에서 자세한 내용을 볼 수 있습니다
교육 친구들 중 하나에 의해 주도 반바지 중 하나를 통해.
그러나 # 콘텐츠는 태그를 의미합니다
누구의 ID 내용이지만, 다음 공백 문자가 그 다음에 단어 입력이 있습니다.
음, CSS에 대한 흥미로운 것은 넌 할수있어
, 계층의 페이지 정렬에 태그를 참조
및 CSS 수단의 스 니펫 (snippet)은 태그를 찾을 수 무엇
누구의 ID 콘텐츠이며, 다음 속성을 적용
콘텐츠의 후예있는 입력 태그의 모든,
그게 내부 들여 쓰기 때문입니다.
들여 쓰기, 다시, 아닌 인간으로, 컴퓨터 만 중요합니다
우리는 페이지에 깊게으로하지만 국제 대회에서 우리는 물건을 들여 쓰기
그래서이 모든 입력 요소에 5 픽셀의 여백을 적용 의미
그 곳 안에이거나 내부 중첩
누구의 ID 요소는 내용입니다.
>> 누구에게 적용됩니까?
음,이 두 사람들은 저 실제로 있어요.
이 입력은이 양식의 내부를 발견,
이 모든 예에가 있었던 있습니다.
지난 2 입력 안에 중첩 될 그런 일이 있지만, 통지,
깊이 조금 떨어지 기는하지만 들여 쓰기 몇 층,
누구의 ID 콘텐츠입니다 태그의 내부.
이것은 무엇을 의미할까요?
우리가 브라우저에 가면 당신은 언제나 약간 - 볼 수
버튼 사이의 패딩 약간의가 인 것을 나 확대하게
그리고 텍스트 필드 사이에 있습니다.
>> 저 일시적으로 끄 보자.
내 CSS까지 가자, 나보다 앞서하고 그냥 가자
5 픽셀에서 0 픽셀이 여백을 변경할 수 있습니다.
내가 그때 가서 파일을 저장, 검색 엔진으로 돌아 가자
그리고 새로 고침, 페이지의 중간을 감상하세요.
모든 함께 압축하고, 그리고 처음이 예를 궁지에 몰 때
나는 다음 텍스트 필드 바로 아래에있는 버튼을 바보 보인다고 생각 했어.
나는 패드 그 조금 싶었, 그래서 마진을 소개했다.
우리가 강의라면 안하는 게 수십 통과합니다
다시, 글꼴 크기 등이 있기 때문에 존재하는 CSS 속성,
글꼴 중량, 여백, 텍스트 정렬, 그리고 몇 수십 다른 사람들
우리는 문제에서 당신을 참조 테니 온라인의 다양한 자습서를 7로 설정
그리고이 일을 데리러 수 있습니다 참조.
그런데는 하루의 끝에서 정말 중요한 일입니다
>> 이런 일이 적용되는 방법을 이해하는 것입니다.
다시 말하지만, 우리가있는 경우 스타일 태그 안에있는의
선택자 지정 식별자의 정렬을 할 수
당신은이 속성을 적용 하시겠습니까 누구에게,
그리고 당신은 키 값 쌍으로 속성을 넣어
콜론으로 구분 한 후, 세미콜론으로 종료
또는 당신은 그걸 모두 추출하고 별도의 CSS 파일에 넣을 수 있습니다
자체 께.
좋아, 개념에 대한 질문
또는 CSS의 큰 그림을?
다시, pset 7에서 더 볼 수 있습니다
하지만 우리는 일반적으로 매우 간단하게됩니다.
아냐? 괜찮아요.
그것은 실제 프로그래밍 언어에 대한 시간
우리는 예를 들어의 형태로 CSS 약간에 돌아올거야.
PHP는 실제로 멋지고 접근 언어입니다
이 구문 C. 거의 동일합니다 점에서
당신은 C를 알고있는 경우 즉, 당신은 대부분의 부품 PHP에 대해 알고
적어도 구문, 몇 가지 새로운 기능이 있습니다 있어도
그리고 새로운 개념은 우리는 ...해야합니다.
>> 그러나 대부분 지금은 C에서 PHP에 우리는 전환이
새로운 것들의 대부분은 큰 그림에 정말
반대로 당신이 웹에서 프로그램 언어를 사용하는 방법
명령 줄에서 또는 우리가 지금까지 해왔으로 깜박이는 프롬프트 인치
참조를 위해, 특히 pset 7 최종 프로젝트 이후로,
당신은 PHP의 절차에 읽어하려면 여기에 URL을 활용 않습니다.
사실은, 효과적으로 무료 온라인 교과서 생겼어요
있으며 어떤 PHP에 대한 정말 좋은 걸 찾을 수 있습니다
도 함께 기능의 수백이 있다는 것은,
당신은 반드시에 액세스 할 수 없었 C에서 반면,
보다 더 많은 기능, 수학 라이브러리에 CS50 라이브러리 있었다.
PHP와 현대적인 언어, 그 중 파이썬과 루비의 많은에서,
그렇게 많은 기능을, 당신이 작성하게 의미에 대한 액세스를 얻을
훨씬 덜 코드가 다른 사람의 어깨에 올라 설 수 있기 때문에
이미 당신을 위해 어떤 일을 작성한 사람.
>> 가 PHP의 문법을 둘러 후 몇 가지 예를 써라.
좋아요 무슨 말을 PHP 가장 먼저
더 주요 기능은 없습니다 있습니다.
당신은 PHP에서 프로그램을 작성하려는 경우 당신은 코드를 작성할
그리고 당신은 주에 대해 걱정할 필요가 없습니다.
더 정수가 없습니다. 반송이 없습니다.
당신이 프로그램을 쓸 때 필요한 '노'변수는 argv, argc가 없습니다.
오히려 당신은 코드를 작성할 수 있으며,이 부분에
PHP는 해석 언어라는거야 때문입니다.
C는 컴파일 된, 그리고 당신이 시작하는 의미에서 컴파일 된
소스 코드와 함께, 컴파일러입니다 꽝,를 통해 실행
결국 몇 가지 단계 수가 후에는 개체 코드, 0s와 1 초를.
PHP와 파이썬과 루비와 진주 등
당신이 그들을 컴파일하지 않는 점에서 언어의 다른 유형이 있습니다.
당신은 소스 코드에서 0s와 1S로 이동하지 않습니다.
당신은 소스 코드를 실행, 당신은 소스 코드를 실행
이 경우에는. PHP로 끝나는, 일반적인 텍스트 파일에 작성하여
대신 다.의 후 컴퓨터에 어떤 프로그램이 있습니까
그 말 그대로 선으로 선으로 코드 라인을 해석합니다.
>> 즉,보다는 프로그램을 작성하고 프로그램을 실행
직접 대신. PHP로 끝나는 파일을 사용하여 프로그램을 작성합니다.
당신이 Windows에서이 좋다면 당신은 파일, php.exe라는 실제 프로그램을 실행
또는 PHP 당신은 맥 OS 또는 Linux에 있다면,
그리고 당신은 PHP 프로그램을 자신의 소스 코드에 입력으로 제공
인생의 목적은 하단에 코드 위, 왼쪽에서 오른쪽으로를 읽을 수 있습니다
그리고 당신은 어떻게 할 얘기를 해줬 뭐든지.
>> 이 구문 의미 것입니다 알아 보자.
PHP에서 우리는 조건을 갖추고 있습니다.
이 슬라이드는 주 1에 다시 본 것은 동일합니다
때문에 PHP의 구문 조건, IFS 및 다른 IFS와 다른
정확히 같아.
이 논리 표현에 관한 때이 닮았거야.
그것은이 닮았거야 부울 함께 일을 anding을 발휘하지 못한다.
스위치 같은 모습, 당신은 PHP의 추가 이익을 얻을
C에서 해당 스위치는 문자 나 정수를 전환 수 있습니다.
당신은 문자열 값을 전환 할 수 없습니다.
PHP에서 당신은 실제로 표현을 할 수 있습니다
즉, 그의 내용을 문자열 아르 변수
당신은 실제로, 실제 직관적 인 방법으로 문자열 비교를 수행 할 수
하지 포인터 비교, 케이스를 수행할지 여부를 결정하기 위해서는 I 또는 J 또는 다른.
우리는 오래 전에 잠재적으로 볼 수 있습니다.
>> 루프가 너무 멋지고 동일합니다.
루프는 초기화, 조건, 및 업데이트의 일부 번호가 들어.
PHP로도 존재 루프 동안.
루프는 PHP에 존재하면서 하나?
와 배열, PHP에 존재하지만, 문법이 좀 다른 얻을 시작하는 위치를 여기에
하지만 개념은 동일하며, 개념은 정말 동일합니다
그들은 스크래치가있는 주 0에서라고.
가장 먼저 $ 기호입니다.
이 PHP에서 디자인 결정이었다된다 모든 변수
PHP에서의 디자인은 $ 기호로 시작합니다.
더 이상 X, Y, Z.이 없어, 그냥 왜냐하면 지금 Z $ X, Y $, $입니다.
이 오른쪽에 지금 염두에 두어야 할 일이고,
이, 배열 유사
그러나 우리는 여기에 대괄호를 사용하고 있습니다.
PHP와 자바 스크립트에서 우리는 결국 볼 수 있습니다,
당신이 열려있는 대괄호을 수행하고 대괄호를 폐쇄 배열을 선언하기 위해,
그리고 당신은 ints 여부, 가치의 쉼표로 구분 된 목록을 가지고
또는 내부 거기에 표현의 문자열이나 문자, 당신이 원하는.
>> 이제, 우리는 C에서 이런 일을 어떻게 됐지?
정적으로 알려진 숫자의 배열을 선언에 대한 구문은 무엇입니까?
여기, 그래서 사소한 차이 중괄호했지만, PHP 모두에서
결국 자바 스크립트가 너무 정말 대괄호를 사용하여
여기 만 흥미로운 세부 변수 이름 $ 기호입니다
또한 대괄호, 그리고 거기에 한 호기심 일이야
그는 = 기호의 왼쪽에뿐만 아니라 생략 된.
어떻게 우리가 주 동안 요구 된 것으로 없지? 그래.
[안 들리게 학생 응답]
크기, 배열의 크기에 대한 언급이 필요가 없습니다.
솔직히, 대괄호에 대한 언급이 왼쪽에 없습니다
= 기호의, 그리고 다른 어떤 라인에서 누락?
네. >> [안 들리게 학생 응답]
유형은, 그래서 PHP에 대한 특히 재미있는거야
이 C는로 강력하게 형식화 된 언어는 아닐 것입니다
그는 강하게 당신이 숯불 말해야하는 의미에 입력있어
당신이 INT라고해야합니다, 당신은 부동 말을해야합니다.
>> 당신이 변수를 원한다면 언제든지은 종류가 무엇 꽝에게 얘기를 해.
PHP가 좀 lazier입니다.
그것은 느슨하게 의미에서 입력예요
당신은 수레와 문자 및 문자열을 가질 수
과 ints 등등하지만, 언어 자체
정말 변수의 내부에 넣어하든 상관하지 않습니다.
당신은 사전에 연락 할 필요가 없습니다 어떤 데이터 형식
변수에 갈 수 있습니다.
그것은 전적으로 당신에게 달렸이가 좋은 있도록
그에 데이터가 입력에 대해 많은 걱정하지 않아도됩니다
귀하의 인수가 무엇인지 걱정 등등.
이것은 또한 PHP에서 결국 함수가 반환 할 수한다는 걸 의미
중 잠시 동안 int는 대부분의 시간을, 그리고 어쩌면 한 번
그 사람들이 뭔가 잘못되었을 의미하는 예를 들어, BOOL, 부울 false를 반환합니다.
이 우리에게 나름의 매력을 제공하지만, 또한 설계에 의해 우리는 종류의 할 것
가 좀 lazier는 데이터 입력 할 때.
>> 여기 염두에두고 또 무엇입니까?
변수는 매우이 때문에 $ S = 좋아 보이는데 "여보세요, 세계."
즉, 아마도 앞의 예에서 inferable입니다
우리는 루프의 다른 종류가 있습니다.
그것은 꽤 쓸모가 있기 때문에이 사람은 우리가 실제로 한 동안 한 번 볼 수 있습니다
foreach를 만들죠.
이 경우 foreach 루프는 일반적으로 괄호 3 단어의 내부 소요
당신은의 멤버를 통해 반복 이동하기 위해 어떤 배열 원해요 첫번째 $ 일,
다음엔 그대로 같은 키워드, 마지막으로,
선택한하게 또 다른 변수 이름입니다.
그것은 foo는, 바, 또는 요소가 될 수
이 구조는 무슨 상관
$ 배열은 10 원소가 포함되어있는 경우입니다
이 배열 - 미안의 모든 반복에,이 루프의 모든 반복에
라는 변수 요소가 업데이트 될 것입니다
다음 배열의 첫 번째 요소, 배열의 두번째 요소 것은,
다음 배열의 세 번째 요소는이를 필요성을 obviating
약간 성가신 대괄호 표기법을 수행하고하는
$ 내가 배열에 색인을 생성 할 순서를 유지해야합니다.
PHP는 당신을 위해 모든 반복에서 해당 작업의 모든 과정을 수행
당신에게 배열의 다음 요소를 건네
당신이 알고 또는 숫자 인덱스 위치에 관심 할 필요없이.
>> 그리고 마지막으로, 지금, PHP 중 하나를 다른 기능이
우리는 웹에 프로그래밍을 시작 특히, 상당히 유용 할 거에요
그는 연관 배열로 알고 있습니다.
우리가 지금까지 알고있는 배열 20초 전 현재
그리고 지난 8 주 동안 숫자, 배열을 색인을 생성 할 수있는
인덱스 ints되는 기존의 배열의 종류,
올라 0, 1, 2, 모든 방법입니다.
연관 배열은 더 많은 강력한 수 있습니다.
그들은 당신이 임의의 열쇠를 가지고 할 수
임의의 인덱스와 임의의 값입니다.
기존의 배열의 반면이, 0, 1, 2입니다
연관 배열에 당신은 인덱스를 가질 수 있습니다
또는 값이 바는 foo는의 핵심.
그런 다음 그의 이름 Baz도이며, 값이 qux 또 다른 키를 가질 수 있습니다.
>> 다시 말하지만, 여기에 바보 같은 컴퓨터 과학 일반 변수 이름,
그러나 요점은이 배열 브래킷 0 또는 브래킷 1가 없습니다 것입니다.
그것은 대신 브라켓 푸와 브래킷 Baz도를 겁니다.
이것은 우리가 연결 할 수 가려는에서 더 많은 다양한 있습니다
다른 단어를 단어, 완전히 임의로 값 키,
우리는 지속적으로 시간을 거슬러 그 값을 얻을 수있을 거예요
때문에 후드 아래에 어떤 연관 배열
정말 해시 테이블이 있습니다.
해시 테이블이 어떤 입력에 넣어 할 수있는 기억
당신이 사전의 어떤에 데이비드를 삽입하려는 경우 단어 데이비드에 넣어 좋아
그리고 당신은 일반적으로 어떤 값을 돌려.
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-리터하자이 필요합니다.
이 다소 암호화 된 출력된다 hello1 기억
저를 읽을 수 및 쓰기 것 같다
하지만 다른 사람에 의해 읽을 수.
그것은이 실제로 올바른 방향으로 단계가 아닙니다 밝혀졌다.
해석 언어의 차이, 다시
직접 프로그램을 실행하지 않는 수 있습니다.
대신 통역을 실행하고 코드를 건네
이게 선으로 선 해석 할 수 있도록 서면으로 한.
이 경우, 인터프리터 나 프로그램, 사실 내가 실행하려면
그대로 PHP라고합니다.
>> 어딘가에는 어플라이언스의 하드 드라이브에 프로그램이 있습니다
누군가가 PHP라는, 또는 Windows php.exe와에 댓글을 달았습니다.
내가 여기서 뭘하는거야, 난 사실 PHP를 실행하는거야입니다
하지만 명령 줄 인수로 내가 쓴 코드를주고,
그럼 내가 축소하고 Enter 키를 누르됩니다.
이 왼쪽에서 오른쪽으로, 위에서 아래로, 나를 위해 내 프로그램을 실행합니다.
내가 가서이에 약간의 차이를 열어 보자.
hello2.php 통지에 해당이 너무
대부분 의견이다, 그럼 내가 산만하게하는 사람들의 버립시,
과이 파일에 대해 지금은 명확하게 다른거야?
상단에 다소 이상한이 새로운 라인은있다.
Line 1의는 #입니다! / bin / php에.
빈은 바이너리를위한 리눅스 및 Mac OS의 대회입니다
그래서 / 빈이 바이너리의 무리를 포함하는 폴더입니다 의미
프로그래밍 즉, 그 중 하나는 PHP입니다.
#! 다 말야을 별명 것은,
하는 그 말의 빠른 방법입니다,이 무슨 뜻 이죠
지금이 프로그램을 실행할 때 파일의 상단에 힌트 많아
그게 무슨 통역 사용할 수있는 컴퓨터를 알려줍니다.
>> 귀하의 사용자와 고객을 알려 있다면 조금 성가신 도착
"여보, 우리는 hello1.php라는이 프로그램을 썼습니다."
당신이해야 할 모든 영원히이 프로그램의 이름을 한 후 PHP를 실행하고 있습니다.
솔직히, 그냥 hello1.php를 실행 좋을 거라
그리고 실제로, 우리는 다음과 같은 작업을 수행 할 수 있습니다.
내가 가서 hello2에 LS-리터 및 통지를하자이 아직도 쓰기 읽기있어
그리고 읽었 때문에 아직 hello2.php을이 작업을 수행 할 수 없습니다.
그러나 우리는 chmod를 명령, 그래서 간략하게 적 마지막 시간이을 소개했다.
나는 플러스 executability를 의미합니다 chmod를 + X를, 할 경우
그리고 hello2.php하고 LS-난 다시는 변경 것을 알 않습니다.
한 리눅스는 아이디어를 전달하기 위해 녹색으로 나에게 파일 이름을 보여주고있다
그의 실행,하지만 더 중요한 것은 왼쪽에
실행을위한 X를 나타내는 비트가 현재 설정되었는지 확인합니다.
이게 지금 의미하는 것은, 평소처럼 ./hello2.php를 실행할 수 있습니다
입력을 누르면 때문에 파일의 맨 위에 다 말야의
그는 말합니다 리눅스로, 다시 힌트입니다
이 파일을 실행이 인터프리터를 사용합니다.
사용자가 실제로 입력 강요에 대해 걱정하지 마십시오.
>> 그리고 좋은 것은 이제는 거 내 고객에게 관련성이 없거나 내 친구입니다
나는이 프로그램을 쓴 언어, 그래서 나는 뮤직 비디오를 진행 할 수 있습니다
그리고 예를 들어, hello2이 일을 이름을 바꾸십시오.
그리고 지금은 ./hello2를하는​​ 경우
내 프로그램이 계속 실행 축소.
이러한 파일 확장자는 필요 인간 컨벤션 아르
꽝하고 찾아 누구하십시오 같이하십시오.
그러나 PHP를 들어, 내가 원하는이 파일을 확장 아무것도 전화 수 있습니다.
나는 루비에서 내가 정말 좋아 생각으로 세상을 속이는 수
그리고 난 hello2.rb를 작성하고 다음이를 실행할 수
그리고 여기에도, 지금은 완전한 거짓말이다 루비 버전을 수 있습니다.
그러나 파일 확장명은 무의미합니다
파일이 실행하고 파일의 상단에있는이 특별한 힌트가있는 경우.
>> 지금, 옆으로, 저를 빨리 버전 3을 보여 드릴게요
어떤 알 수있는 유용한 트릭의 일종입니다.
hello3에서 나는 약간 실수를 한 건가
나는 소스 코드를 온라인으로 업데이트 될 것.
버전 3에서는이 밝혀 대부분의 리눅스 컴퓨터에
환경을 위해 환경을라는 프로그램이있어
당신은 아무 생각이없는 경우 무엇을 당신이 이곳에서 할 수있는 것은있는 PHP
실제로는 컴퓨터에 따라 다를 수 있기 때문에, 로컬 하드 드라이브에 설치되어 있습니다
사람이 사용하는 즉, 유럽 표준안 그냥 실행은 환경을 말한다
이는 대부분의 시스템에 위치하며, PHP가 어디인지 만 알아 내면.
그냥 일반적인 트릭이 프로그램이 어디에 있는지 찾는 것에 대해 고민하지 않아도됩니다.
하지만 당신은 프로그램이있는 곳을 찾아야 관리 작업을 수행하고 있다면 지금까지 신경 쓰지 않은
당신은 어떤 명령을 사용할 수 있습니다.
>> 나 축소를 입력하는 PHP하자
그리고 그건 usr / bin / php로 실제로라고 하더군요 확인합니다.
그건 거짓말 같은 거죠. 이 병원에도입니다.
단지 저에게 처음 인기를 보여주고 있습니다.
꽝이 어디 있는지 궁금해 본 적 있다면, 그건 USR / 빈 / 그 소리에있는 꽝입니다
확인하는 USR / 빈 / 확인하고 그게 무슨 뜻이 모든 시간
당신은 USR / 빈 / 그 소리는 꽝을 실행하는 입력 입력 한 수
하지만 지루한는 거 그런 작업을 수행하는, 그래서 일부 폴더
USR / 빈 및 빈은 기본값으로 간주하는 것
그래서 컴퓨터가 그들에 찾아 알고 있습니다.
슈퍼, 슈퍼 간단한 안녕하세요 세계 프로그램을 작성에 대한 질문
PHP에서 다음을 실행?
때문에 이제 우리는 더 강력한 문법을​​ 소개하기 시작합니다.
자, 여기 우리는 간다.
이 프로그램 우리는 모두 전에 실제로 봤어요.
>> 제가 열 경우, 예를 들어, beer1.php 해보자 구
우리는이 여러 버전을 통과하지 않습니다,하지만 난 무슨 짓을
나는 앉아서을 부어 또는 개조되었습니다
여기에 PHP 코드 내 C 코드입니다.
파일의 상단의 대부분은 여기에 코멘트 달려 있습니다.
우리가 readline라는 한 가지 새로운 기능이 밖에이 변합니다.
GetString, 리콜, 주 0 이후의 CS50 것이었습니다.
PHP는 readline라는 자신의 사용자 친화적 인 기능을 제공
그 프롬프트를 지정 한 인수 걸립니다
당신이 사용자에게 보여주고 싶습니다, 그리고 readline이 그런
어찌 되었든 인치 사용자가 유형을 반환
이 경우, 나는 $ n을라는 변수를 선언거야.
나는 거기에 Readline의 반환 값을 저장 해요
이 문자열이있는 사용자에게 메시지를 표시 한 후.
얼마전에이 일을 실행, 백업, 제가 앞서 가자
와 PHP의 beer1.php을 실행합니다.
몇 병을 될 것인가? 단 2을의이 시간을 보자.
입력합니다. 그게 전부 야.
>> 이 프로그램은 몇 주에서 C 버전으로 기능적으로 동일합니다.
그러나 구문 다른 알아 보자.
나는 몇 가지 오류 검사를하고 있다고하는 사용자 통지의 정수를받은 후에
n은 1km 미만의 경우 나는 종료하고 나가 인쇄
1 사용자와 출구에 죄송 메시지가 나타납니다.
이것도 조금 다릅니다.
C에서 우리는 무슨 짓을 한거야? C에서는 1를 반환합니다.
PHP에서 당신은 솔직히 말해서 내가 좀 더 직관적 인 생각되는, 1 종료
당신은 말 그대로 프로그램을 종료 때문이다.
모든 권리, 그리고 여기 성가신 노래는 구문 동일
변수를 제외하고, 그래서 여기 라인에서 24 이후
루프 내를 발견은 거의 동일합니다
하지만, 난과 n 앞에 $를
과 또한 우리가 과거에 당신이 한 줄에 26 일부터 누락
변수 i를 선언 할 때?
더 종류가 없습니다.
그것은 INT 말을 PHP에서 잘못된 것입니다.
당신은 단순히 그렇게 할 필요가 없습니다.
컴퓨터가 통역 PHP는 실현 할 수있을만큼 똑똑
내가 $에 숫자를 넣어 경우는 취급됩니다
당신을 위해 수 있습니다.
$ 전, $ I, $ 전에서 그리고 여기 우리 플러그 - 1.
그 모든 동일하고 여기 우리는 "우와, 그 짜증"printf를
다음 (0) 종료합니다.
>> 다시 말하지만, 여기 테이크 아웃은 우리가 상대적으로 지출 할 것지라도입니다
PHP에서 시간이, 확실히, 우리는 C에서 무슨 짓을했는지 대
우리가 오늘 다음 주에 무슨 짓을하므로 거의 같은, 그리고
그리고 이상은 새로운 아이디어의 일부에 정말 집중합니다.
단지 다른 것은 C에서 이상의 번역 않는다는 것을 확인하기 위해,
이게 우리가 주 1했던 슈퍼 간단한 프로그램이었습니다
또는 2 값을 cubed 그.
하지만이 프로그램에 대한 시간에 흥미이라고는 그
우리 스스로가 쓴 사용자 정의 서면 함수의 개념을 도입했습니다.
PHP의 문법은 거의 동일합니다.
여기 꼭대기 내 프로그램입니다.
다시 부재 통지 메인의 개념입니다.
나는 코드를 작성 시작하고이 통역에 의해 실행하려면 무슨 수 있습니다.
나는 여기서 x는 아마 지금 2 인쇄합니다.
그럼 내가 cubing 주장 ...
그럼 $ X의 큐브 함수를 호출하고 통과
와 $ X에 반환 값을 할당합니다.
그럼 내가이 cubed 있다고 주장하고 내가이 말을, 그 희망
여기서 x는 현재 8입니다 말할 것이다.
PHP의 함수의 구문은 언제나 조금씩 다를 수 있습니다.
다시 누락는 반환 유형입니다.
다시 반환 형식이 누락 있으며, 누락 된 것은 어떤 다른 유형입니까?
[안 들리게 학생 응답]
음, 좋아요, 좋아. 의 두 번째에 해당로 돌아와 보자.
>> 우리는 예를 들어, 여기 INT, 필요가 없습니다.
우리는 예를 들어, PHP에서, 때문에 여기 다시 INT하지 않습니다
당신은 단순히, 할 필요가 없습니다 그 작업을 수행하지 말아야
오히려 기능이라는 새로운 키워드가 있습니다.
당신이 기능을 할 때 원하기 때문에 PHP에서는 거의 조금 분명 하죠
당신은 문자 그대로 기능을 말하면, 당신은 쉼표로 구분 한 후 이름을 포기하고
그것의 인자의 경우.
아니오, 반품이 동일한 후 그런 식으로 무효이나 뭐 그런 말을 할 필요가 없으며,
$ * $ * $.
또한, 어떤 누락? 새미 여기를 지적했다.
PHP에서 완전히 결석 파일의 상단에 또한 프로토 타입입니다.
이건 너무 의도적으로 설계된 동작입니다.
PHP 같은 언어와 인터프리터는 현명 C 적보다 아르
꽝 같은 컴파일러 인치
>> 당신이 그 큐브가 존재를 말하지 않으면, 그 꽝를 소환
당신은 printf 프로토 타입과 마찬가지로 존재 그런 말하지 않은 경우
또는이 # 포함과 함께, 잘, 당신의 소리, 심지어 코드를 컴파일되지하려고 했어요.
이렇게 할 때 PHP와 더 현대적인 언어를 많이 똑똑합니다.
자체 코드의 모든을 읽어에 그들은 그것을됩니다
이 큐브 어디 선가을 발견하는 경우에만 다음에 소리.
큐브가 바닥이나 상단 또는 일부 별도의 파일에있는 경우는 중요하지 않습니다.
PHP와 유사한 언어는 이제 앞을 내다 볼만큼 똑똑
실수 것으로 당신을 deeming하기 전에 모든면에서.
그게 우리가 어디를 떠나 무엇입니까?
>> 조건에서 여기 마지막 예를 보자,
그리고 내가 너무 conditions2.php 통지를 열 경우
여기 문법은 거의 동일합니다.
, 나는 readline 대신 GetString을 사용하지만, 그 라인은 이전과 동일합니다
"나는 정수하시기 바랍니다 싶습니다."
그때 나는 다른, 경우, 다음 다른, 경우 조건을 가지고
하지만 기능이 프로그램은 또한 우리가 주 전에 무슨 짓을했는지와 동일합니다
이 건, conditions2의 PHP를 실행하므로 경우
난 그 23과 같은 번호를 알려 -
나는 긍정적 인 번호를 골랐어 요. 난 그게 -1 주면 나는 음수를 골랐어 요.
난 그게 영 주면 난 정말 0 골랐어 요.
그럼 누가이 모든이 뭐가 그리 중요합니까?
여기에 연습의 재미 종류의 하나
나를 위해 적어도 돌아가서 내가 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 함수 isset은 키 집합이라고
그래서 isset ($ 테이블 [$ 단어]
그래서한다면 TRUE를 반환.
그게 전부 야. 그래서 PHP에서 pset 5입니다.
음, 공정한, 알았어.
다른 false를 반환하기 때문에이 없습니다.
정말 무슨 일이야?
음, 테이블 또는 해시 테이블 여기를 더 일반적으로 -
당신이에 색인 생성 할 수 있습니다 의미 연관 배열이다
"단어"와 당신이 가치를 돌아 가야 해 같은 단어.
>> 우리는 앞서 한 걸음을 받고 좀하는 사이에요.
우리가 실제로 처음 파일을로드하는 경우는, 어떤 니스 (Nice)의 것
그래서 부하는 매우 간단 아니라, 내가 가서 채찍질하게
로드 정말 빠른 구현입니다.
내가 가서 단어 파일 사전을 도착한다고 가정 해 보겠습니다.
PHP에서 파일 기능은 파일을 엽니 다
그리고 당신에게 반환하는 파일의 모든 단어의 배열,
당신에게 내줬습니다.
그게 너무 큰 고통 이었지, 그렇지?
지금 foreach,이 새로운 구조, foreach ($ 단어 $와 같은 단어)입니다.
이 루프는 배열의 단어를 통해 반복 시작 것입니다
및 $ 단어 변수에 파일의 각 단어를 지정
처음부터 네 번째의 모든 방식에 세 번째로 루로
그래서 성가신 [I] 표기법을 수행하고 좋아하는 필요가 없습니다.
그리고 내가 단순히이 단어 각각에 대해 어떻게 할거야
이 테이블에 색인을 생성하여 내 테이블에 저장되어 있습니다
기억하기 때문에 그리고 사실 일
단어 내 사전에 모든 내가 정말해야
종류의 사실, 조금 뒤집기와 해시 테이블에서이 단어가 말을합니다.
그것이 존재하지 않으면 내가 명시 적으로 false로 넣어 필요가 없습니다
그렇지 않으면 저 우주의 모든 가능한 단어를 허위 넣어 할 것입니다.
>> 단지 인덱스 값을 설정하는 나를 위해 충분
true로 단어 내 해시 테이블에 실제로있는 경우.
자, 내가 지금의 내 손을 흔드는 거라고 여기 모서리 몇 절단 있어요
하지만 지금은로드 기능이 수행됩니다.
나는 배열로 파일에서 모든 단어를로드합니다.
그 배열을 통해 반복하고 배열의 각 단어에 대해
나는 코드의 1 줄과의 해시 테이블에 연결.
이거 재미있다. 당신은 지금 크기를 구현 할 수 있는지 아세요?
음, 크기는 공평하게, 항상 매우 간단합니다.
여기 우리는 테이블의 개수를 표시 할 수 있습니다.
그건 너무 쉽죠, 테이블에 일의 수를 계산합니다.
그래서 가장 효율적인 않는 사실 이죠.
우리가 할 수 있도록 아마도라는 변수 크기만큼의 공간을 확보해야합니다
지속적인 시간에,하지만 아주 간단합니다.
아, 그리고 언로드, 우리는 여기서 항문되도록하려면
우리는 당신이 무언가를 언로드하는 방법한다고 할 수 있습니다.
당신은 단지 빈 배열과 동일 변수를 설정
그리고 거기 있었어 모든 제거됩니다.
아니오 무료 전화 할 필요가 없습니다.
>> 다시, 몇 모서리를 잘라, 그리고 지정 문제 세트 5을 드려 죄송했습니다
아마도 C에서하지만, 지금 우리가 가서이를 실행한다면,
나는 사전에 쓴 실제로 버전을 실행하는거야
그냥 제가 어떠한 구문 실수를하지 않은.
내가 가서 도전자를 실행할 수 있습니다. 사용법은 동일합니다.
다음은 단어가 foo는을 포함하는 사전 파일입니다.
다음은 foo는 줄을 포함하는 텍스트 파일입니다.
이 텍스트 파일에이 사전 파일을 사용하여,이 때문에 도전자를 확인해은 철자 보자.
하나 맞춤법이 틀린 단어, 바, 봐라이 있어요.
pset 5 완료.
의는 여기에 5 분 휴식을 취, 우리는 PHP에 다시 더 올 드리겠습니다.
알았어, 우리가 다시 있습니다.
의는 한동안 날 - 미워 하죠.
이 긍정적이 아니었다면 지금은 실제로는 보이지 보자
실제로 PHP에서이 일을 구현.
부여, 그것은 구현하기 위해 45 초했다.
>> 그러나의 지금 가서 물건을 실행할 수 있습니다.
내가 가서 C 버전을 실행하자
도전자의, 우리는 가장 큰 파일 중 하나에서 실행됩니다,
킹 제임스 성경은 어떤 것입니다.
그리고 여기,이 우리의 C 폴더로 이동에 - 방해
킹 제임스 5에 도전자.
맞춤법이 틀린 단어의 많은.
좋아, 그건 시간이 좀 다른 경우에도 아마 당신은 가지고있는 출력입니다
당신이 총 올바르게 작동 모든 등 시간이 있는지 확인 철자를
킹 제임스 성경은 그 구현을 사용하므로 아주 좋은 0.38 초이었다.
나를 지금은 우리가 쓴 PHP 버전으로 가자.
저 킹 제임스에 대한 도전자를 실행할 수 있습니다.
이런, 그 오류를 무시합니다. 난 잘못된 디렉토리에있어.
킹 제임스 5에 도전자.
거의 다 끝나갑니다.
>> 좋아요, 기민한 관찰자는이 3 개 이상 초였다 실현합니다.
그래서 진정한 실행 시간입니다.
그것은 정신을 텍스트의 많은을 외지 시간이 걸립니다 것이 밝혀
인해, 문제를 버퍼링하지만, 짧게 말하자면
그 기계 시간 3.15 초, CPU 시간,했습니다
대 그 순간 전에 무엇 이었습니까?
0.3처럼.
내 말은, 그 어디입니다 때문에, 속도가 느린 진도의 명령이다
터무니없는 침체가 오는 거죠?
글쎄, 우리가 만든 대부분의 모든 디자인 결정의 경우 왔습니다
지난 9 주 동안 수업이 효율이 줄어 거의 항상 있습니다.
가끔 공간 사이, 때로는 공간과 시간 사이,
공간, 시간과 개발 노력, 그리고 실제로 여기하더라도
우리는 잠재적 10-20-30 시간도, 시간의 엄청난 금액을 저장
맞춤법 검사기를 구현하는 개발 시간을
이 언어로 불과 45 초 만에 그걸 들고하여
우리가 지불하는 가격은이 결과로 느린 진도의 명령이다 것입니다
이 방법은 대부분의 다른 해석 언어로 일반적으로의 경우
PHP, 파이썬, 루비, 펄이나 다른된다
당신이 통역사를 통해 실행 가서해야하는 경우는 코드를 읽기
선으로 라인은, 위에서 아래로, 왼쪽에서 오른쪽으로
그 중개은 그 자신의 시간이 좀 걸릴 것입니다
그리고 만약 당신이 3 초 만에 여기 느끼고 있었다는 것은 0.3 초​​에 반대
문자 그대로 우리의 코드를 해석하는이 중계가 있다는 사실입니다
당신은 루프 내부 경우 선으로 선, 그리고 하나님이 허락
단어의 수천 수백을 포함하는 거대한 파일을 사용하여.
>> 그 오버 헤드가 추가까지 추가, 최대 추가하고 추가 할 예정이다.
이와 같은 도구 아마도 구현에 사용할 최고의 언어는 아닙니다
직접하는 경우 맞춤법 검사기는 사용자와 관심입니다.
그러나 우리가 순간에있는 고급스러운 않은 경우
PHP와 같은 언어 해석 언어를 많이 사용
웹의 맥락에서, 그 문제에 대해, 당신은 혜택을
인터넷은 대부분의 컴퓨터보다 훨씬 느린입니다.
당신은 당신의 컴퓨터, 2 GHz의, 어쩌면 더이 일 GHz의 CPU가 있습니다.
하지만 현실은 인터넷에서 대기의 높은 금액을 이용하실 수 있습니다
상기 서버와 통신 할 수있는 브라우저에 대한, 우리는 지난 주에 본하더라도
그래서 아주 빠른 것, 반 밀리 초 또는
너무까지 추가하고 당신은 이미지처럼 물건을 다운로드하는 경우
또는 페이스 북 사진이나, 페이스 북 소리를 통해 인스턴트 메시지를 받고
Gchat 또는 같은이 왕복 시간의
브라우저까지 추가 할 수있는 서버 시작 사이
대부분의 경우 언어의 특정 선택하게하는
모든이 관련되므로 약간 느린 언어를 사용 괜찮아
PHP 나 파이썬이나 루비 같은
하지만 큰 당신 나름의 매력과 동료가되는에
친구와 네가 정말 정말 훨씬 더 빨리 일을 구현할 수 있습니다 때문입니다.
그리고 또한, 당신은 특정 보안 결함이 훨씬 덜 위험이 있습니다.
PHP에 포인터가 없습니다.
을 쉽게 일으킬 수 있다는 감금 결함이 없습니다
당신은 C.에서 읽을 수있는 것과 같은 방식으로
C을 사용하면 가까운 하드웨어 됐어.
PHP와 유사한 언어를 사용하면 높은 수준의 종류, 말하자면, 야
귀하와간에 방어 많은과 실제로 무슨 일이야
기계 내부, 그것은 단지 거래 때문이에요.
>> 우리는이 더 현대적이고 높은 수준의 언어를 가지고의 지점들이 있고,
PHP 같은 이유 C.에서 PHP와 같은 언어에서 배운 수업
하지만 당신은 후드 아래에 모든 시간을 무슨 일이 있었는지 이해하지 않는 경우
당신은 확실히 올바른 디자인 의사 결정을 할 수 없습니다
그리고 확실히는 페이스 북이나 Google 같은 곳에서 작업 할 때
또는 점점 큰 데이터를 재생됩니다 이러한 곳의 세트
다시 가서 의과 대학 예과 않으며, 일부 MD와 함께 작업하는 경우에도
일부 대형 데이터에 환자와 의사를 포함 설정
그리고 오른쪽 도구를 사용하여 같은은 상당히 설득력이
그렇지 않으면 일부 데이터 세트의 분석, 초 걸릴 수 있기 때문에
아니면 말 그대로 몇 시간이 걸릴 수 있습니다.
이 얼마나 더 노력을 좌절하지, 하나의 예입니다
그것은 C에 있었 있지만, C에서 뭔가를 구현 할 때 당신이 그렇게 감사하기 위해
당신은 정말 이해하거나, 이론적으로, 정말 이해
모든이 방법이나 작업, 그리고 거의 완벽하게 제어 할 수 있습니다하여야한다
후드 아래에 무슨 일이 일어나고 있는지여,이 높은 수준의 언어로
당신이 그들을 발명 한 사람들에게 더 많은 제어를 포기해야
그리고 대상이 네 것보다 자신의 디자인 결정에 더입니다.
그러나 당연한 우리는 가져가도 그 성능
때문에 다른 문제의 웹에서 그다지 중요하지 않습니다
단지 네트워크 속도는, 어쨌든 CPU 속도보다 조금 느린 아르
그래서 우리는 약간 느린 언어를 사용하는 여유를 정렬 할 수 있습니다
나름의 매력이 경우 우리는 10 배 빠르게 또는 더 많은 것을 개발할 수 있습니다.
>> 우리가이 사용을 시작하는 방법을 알아 보자.
저 폴더로 가자
오늘날의 예를들 frosh.ims가 전화
이 실제로 개인적으로 사실의 동기는 그 최초의 것은
나는 CS50 및 CS51을 복용 후 몇 년 전 웹을 위해 작성
신입생 인스턴트 메시지 프로그램에 웹 사이트, 신입생 교내 스포츠였다
시간이 시간에 충분한 년 전 사건이지
웹이 있다고하더라도 프로그램에 대한 웹 사이트는, 없었습니다
당신이 원하는 상기하면 대신 Wigglesworth에 조교가 발생했습니다
배구 축구이든 뭐든간에에 등록하면 종이를 작성합니다.
그런 다음 마당을 가로 질러 걸어 것입니다.
그런 다음 조교에 대한 그들의 문이나 손에 자신의 문을 슬라이드에 똑 것
거기에 귀하의 이름과 종이, 당신은 팀의 주장이되고 싶지 여부,
당신이 탔던가 원하는 어떤 스포츠, 그리고 기숙사
그것은 일을 오래된 학교 방식의 일종이었고,이 주요했습니다
이 과정을 많이 자동화하는 기회를 제공합니다.
당신은 웹 사이트로 이동합니다. 당신이 꼭 뭔가를 입력
당신은 이메일 확인 및 붐을 얻으면, 너는이 완료됩니다.
>> 이것은 펄이라는 언어이라도 제가 한 최초의 일이라고
하지만 PHP에서 할 상대적으로 쉽고,이 대표의 일종입니다
당신이 자신을 표현할 수 때 문제의이 해결 시작할 수 있습니다
프로그래밍 및 Google 사이트와 같은 것들에 의존 할 필요가 없습니다
또는 Excel 또는 귀하에게 전달 아르 도구를 제공합니다.
당신들은 지금은 이렇게 일을 할 수 있습니다.
이것은 형태의 슈퍼 추한 버전입니다
하지만 우선은이게된다 대화의 시작 부분에 사용
양식은 우리 년전처럼 보였다 대략 어떤
웹에서 사람들이 신입생 인스턴트 메시지에 가입 할 수 있도록합니다.
우리는 그들이 주장되고 싶어 여부를 들면, 이름 확인란을 요청
손님들이 뭔지 기숙사 그리고 남성 또는 여성, 그리고,
그리고 그들은이 양식을 제출합니다.
이 웹 페이지를 나타내는 HTML의 후드 아래에 최초의 모습을 보자.
, 제가​​ froshims0에 가자
그리고 옆으로 pset 7 나는 당연한 데려다 줄게
제가 인치 물건을 넣는 건 디렉토리 및 폴더
물건 어플라이언스에 가야 정확히 어디에 우리는 당신을 통해 안내해드립니다
어떤 모드 명령이 실행해야하기 때문에 모든 걱정하지 마
바보 같은 내용은 첫인상 여기에서 동기화.
>> 자, 여기가 froshims0.php입니다.
저 아래로 스크롤하자, 그리고 여기에 호기심이야
이 PHP 파일입니다,하지만 분명, 그 안에있어?
그것은 실제로 HTML의 많은, 그리고, PHP의 기원
정말 웹 중심의 언어하다고했다.
순간 전 우리는 맥주 예제를 구현하는 데 사용
조건 예를 들어, 안녕하세요 예를 들어, 그 괜찮아.
당신은 스크립트 언어로 PHP를 사용할 수 있습니다
스크립트는 정말 빠르고 더러운 프로그램에 주어진 단지 명칭입니다
또는 스크립트 이상 일반적으로 해석 언어로 작성하는 것을.
당신이 본 때문에 PHP는 유용 슈퍼 얼마나 신속하게
상대적으로 우리는 PHP에서 프로그램을 채찍질 할 수있어.
그러나 그것은 정말 웹에 사용하도록 설계되었습니다
그리고 파일의 상단에 여기있을 의미에서 웹을위한
나는 <? PHP로 시작 않습니다.
그럼 난 부여 쓸모 코멘트의 무리가 있지만, 그럼 내가 PHP 모드를 닫습니다.
하지만 난 HTML 모드로 놓습니다.
>> 파일로 끝나는 경우에도 어떤 PHP에 대한 흥미로운 건 있습니다. PHP는
그것은 일반적으로 HTML과 공동 만나는 할 운명
일부 PHP 코드를 일부 HTML.
그리고 우리는 우리가이 떨어져 감히 시작할 수 결국 볼 수 있습니다
그리고, 모두의 PHP로부터 HTML 별도의 유지
하지만 PHP의 기원은 정말 당신에게 유연성을 부여했다
당신이 HTML을 원하는 경우 단지를 작성하고, 그 수 있다는
브라우저에 동일하게 토 해냈다.
하지만 당신은 몇 가지 프로그래밍 기법이 필요하다면,
우리가 곧 보게 될 몇 가지 프로그래밍 코드, 당신은 또한 같은 정확한 파일에 넣을 수 있습니다.
여기 내 HTML입니다.
나는 신입생 인스턴트 메시지에이 제목이 있어요.
나는 중간에 센터의 모든 내용에에 대한 몇 가지 CSS를 가지고 body 태그있어
그리고 여기 내가 외관상 제출 것입니다 양식을
register0.php라는 새 파일을, 그래서 우리는 순간에 그 표시됩니다.
우리가뿐만 아니라에 돌아 오면 포스트라는 방법을 사용하여있어.
그리고 몇 가지 형태의 입력, 그의 입력하는 텍스트는 하나 소위 이름을 있습니다
그의 이름은 유형 확인란이 있습니다 주장이다 하나
이, 우리는 전에 못 봤어,하지만 정확히 말씀하지 않습니다.
대신 텍스트 상자의 확인란을 받게됩니다.
아래에서 당신은 그 원형 버튼 중 하나 인 라디오 버튼을 가지고
여러분은이 하나 또는 그 하나를 선택 할 수 있는지 확인하십시오.
>> 그것은 내가 두 라디오 버튼에게 성별의 이름을 준 고의적입니다납니다.
이렇게하면 당신은 클릭해야된다 상호 배제를 얻는 방법입니다
이 하나 또는 그 하나는 다른을 클릭하여 중
그것은 다른 unchecks, 그래서 당신은 그들에게 동일한 이름을 부여해야
당신이 그런 식으로 상호 배타적이 될하려는 경우.
그리고 기숙사에, 나는 우리가 아직 본 적​​이 생각하지 않아,하지만 선택 메뉴, 드롭 다운 메뉴입니다.
에 대한 태그를 선택합니다.
그런 다음, 드롭 다운 메뉴 이름을 부여
그리고 당신은 이러한 옵션의 전체 무리가 있습니다.
단지 미적 첫 번째는 빈 문자열입니다.
난 그냥 기본적으로 공백으로 드롭 다운 원
그리고 등등이 Apley, Canaday, 그레이스는, 그리고.
여기 이분법을 확인합니다.
드롭의 옵션은 아래,이 값을 갖는다
하지만 그것은 인간 친화적 인 이름을 가지고있는이 예에서
동일하지만, 우리가 정말 항문되고 싶어한다면 우리는 가질 수
이 드롭의 값은 아래, 짧은 버전의 단 수
그레이스 그런데 우리는 인간이 실제로 인식하는 그레이스 홀 말할 수,
하지만 그 모든 재미있는 아니라, 그래서 난 그냥 간단하게 유지하고는 동일했다.
그런 다음 아래 하단에 우리는 제출 버튼이
우리가 전에 보지하지만, 알 않은 당신이 좀 다른 단어를했다.
대신 CS50 검색을 나는 레이블했다 "회원 등록을."
>> 최종 결과는 다시 여기에이 웹 페이지이며,
곳이에 제출됩니까?
그것은 일부 파일 작업 속성의 값에 제출됩니다
이는 register0.php했다.
실제로 여기서 무슨 일이 일어날 지 보자.
내가 가서이 양식을 작성하여 보자, 데이비드, 말
남성, 매튜스, 그리고 나도 그래 등록.
내가 축소하고 등록을 클릭합니다 봅시다.
그래, 그럼 쓸모없는 종류이지만 실제로 무슨 일이 벌어지고 있는지 살펴 보자.
URL이 register0.php로 변경되었는지 확인합니다.
URL에서 호기심 결석 뭐,하지만 우리가 양식을 제출하더라도?
[안 들리게 학생 응답]
좋아, 친절한 단지 크롬되는 사용자는 이러한 일이에요.
그래서 거기에 실제로 있습니다. 그들은 단지 공간을 절약하기를 숨길 수 있습니다.
하지만 좋은 생각, 좋은 생각.
URL의 다른 쪽 끝으로하지만, 어떻게 실종? 그래.
[학생] 쿼리 문자열입니다.
쿼리 문자열, 그래서 우리의 간단한 Google 검색 예제에서 기억.
나는 URL 제출 버튼을 클릭하면 즉시
Google에 나를 데려 갔고,하지만? Q = 컴퓨터 과학이든 뭐든간에 내가 들어 입력 한가 발생했습니다
우리가 검색 예를 GET 메서드를 사용 있기 때문입니다.
>> 우리가 대신 어떤 방법을 사용 건가요?이 시간
게시하고, 바로 구분의 하나
GET과 POST 사이에 해당 게시물 URL에서 사용자의 입력을 넣어하지 않습니다 것입니다.
그걸 숨 깁니다. 그것은 아직 보냅니다.
우리가 순간에 드러겠습니다 사실, 우리는 여기 브라우저에서 무엇을 표시
register0보고, 그냥 내용을보고 있어요입니다
브라우저에서 서버에 제출 된 배열의.
그러나 URL은?가 없습니다, 키워드가 없습니다
또는 거기에 가치, 그리고 왜이 뭐냐?
음, 게시물, 당신은 여전히​​ 서버에 양식 데이터를 제출 할 수 있습니다
하지만 URL에 넣어하지 않는 정보의 종류 게시물 무엇 때문에
당신이 사용자를 부탁 할 때 아마 특히 적절한
양식에 입력 입력?
비밀번호 같은 거, 뭐 다른 같은?
신용 카드 번호.
당신이 다소 민감 건 아마도 URL에 끝나는 원하지 않는
뜻하기 때문에 룸메이트 나 가족은을 견지 낚시질 수없는 경우
인터넷의 역사와 다음 문자 그대로, 비밀번호를 참조
말 그대로 신용 카드 번호 대부분의 브라우저에서 볼 수 있기 때문에
예전에했던 어떤 URL을 역사에 기억
그래서 좋은 생각이 될 수 있기 때문에 경우에만.
사용자의 게시물 숨 깁니다 그 세부 사항을 사용합니다.
>> 또한, 어떻게 페이스 북에 사진을 업로드하려면 어떻게해야하나요?
음, 당신이 정말로 사용할 수있는 유일한 두 메커니즘,
몇 가지 더 많은 마법들가 있더라도 GET과 POST 있습니다.
어떻게 가능한 URL을 통해 사진을 업로드하려면 어떻게해야하나요?
당신은 실제로 작업을 수행 할 수 있습니다.
당신은 JPEG 또는 비트 맵 또는 GIF를 취할 수 있으며 16 진수를 나타낼 수
기본 64이라고거나.
대신 기본 16은 기본적으로 같습니다베이스 64을 사용
ASCII 문자, 당신은 실제로 URL을 통해 사진을 업로드 할 수 있습니다
물음표 후,하지만 크기 제한은 일반적으로 있습니다.
대부분의 브라우저는 URL이 더 이상 1,000 자 이하로 강제
어쩌면 2000 문자 나 같은, 그래서 당신은 업로드 할 수 없습니다
10메가바이트 페이스 북 사진입니다.
그것에 대해 당신이뿐만 아니라 게시물을 사용, 이제 들어, URL에 매개 변수를 게재하기
이는 때때로 좋은하고 유용한이지만, 민감하거나 큰 일에 대한
게시물 이동 할 수있는 방법입니다.
register0 실제로 여기서 뭐하는거야?
글쎄,이 슈퍼 간단한 페이지입니다 register0 통지를 열 경우,
하지만 더 나은 또는 더 나쁜에, 나는 공동 어울려 할 수 있다는 사실을 보여주는거야
PHP와 HTML.
이 모든 파일은 상단의 의견을 제외하고, HTML 아르
여기이 사람을 제외하고.
>> 내 PHP 코드의 중간에 발견,
내 HTML의 중간에, 나는 일시적으로 일종의을 가지고
PHP 모드를 입력했습니다.
나는 인쇄 연구라는 특별한 함수를 호출거야.
이 재귀 인쇄 의미하며, 만약 잘못된 것은 재귀 지문
당신이 그것을 건네 어떤 변수 세미콜론 출구 PHP 모드.
그리고 사전 태그는, 당신에게 사전 형식의 텍스트를 제공합니다
모든 공간을 실제로 볼 모노 스페이스 텍스트 있도록.
그것은 사라지지 않습니다. 게시물 무엇입니까?
음, 재미 있고 PHP에 대한 강력한거야
그게 당신을 획득하거나 게시를 사용하여 양식을 제출 할 때마다
브라우저에 의해 귀하에게 제출 아무 것도
PHP 자체는, 그 키 값 쌍은 무엇인지 알아보지
그림에서 물음표가있는 경우 등호 수치가 거기 있다면.
그것은 당신에 대한 모든 하드 작업을 수행하고 당신에게 연관 배열을 건네
사용자가 양식에 입력 한 모든 포함.
음,이 양식은 어떤 필드가이 있었습니까?
>> 은 4 필드를했습니다.
하나는 이름이라는 텍스트 필드했습니다.
하나는 대장라는 확인란을 선택했습니다.
하나는, 성별이라는 라디오 버튼했습니다
하나는, 기숙사라는 드롭 다운 메뉴했습니다
나는 재귀 적으로 인쇄 할 때주의
이 특별한 변수의 내용.
이 모두 대문자로, _POST 그대로 $라는 특수 전역 변수입니다.
이 부분을 보면 PHP가 당신에 대해 만드는 특별한 전역 변수
그리고 당신 손이 모든에 액세스 할 수 있도록
그는 사용자에 의해 양식을 통해 제출되었습니다.
및 인쇄 R를 호출하여 - 당신은 일반 응용 프로그램에서이 작업을 수행 않습니다.
우리는이 변수의 내부를 볼 수 이런 짓을하고있는거야
과는 잘 들어 그것을 네 열쇠
4 HTTP 매개 변수, 말하자면,
그런 다음 이름, 대장, 성별, 기숙사, 그리고 값이 사용자가
한 가지 예외를 제외하고 입력.
I 형 D-A-V-I-D 했어요.
내가 외관상 값을 제출하는 남자를,하지만 상자를 선택
간결하게 만 m의.
>> 나는 매튜스를 선택하면 즉, 선택 했어요지는 값
이 녀석은 좀 바보이지만, 대회입니다.
내가 상자에의 값을 선택하면 "에,"그 확인란을 위해 제출 했어요.
내가 선택하지 않았다면, 더 값이 어떠한 전송 한 적이 없었습니다.
이것은 단지이 특별한 전역 변수의 내부에 어떤으로 우리에게 통찰력을 제공하고 있습니다
그리고이 슈퍼 전역 변수라고 너무 특별입니다.
당신이 실제로 액세스 할 수 있도록이 코드 내에서 여기 저기 존재한다.
이 강력한 있으니, 실제로 슈퍼 글로벌을 사용하도록하는 것이 아닙니다
실제로 사람을 등록하려고합니다.
froshims1에서 한 변경을거야.
나는 register1.php 할 작업을 바꿀 거에요
나는 다른 일을하고있는거야.
난 거기에 내 웹 페이지의 품질에 의해 창피했다.
그것은 정말 끔찍, 솔직히, 그래서 밝혀
당신은 웹에서 쉽게 사용할 수있는
다른 사람의 자바 스크립트 코드를 다른 사람의 CSS
그들은 서면 및 오픈 라이브러리로 공급하고 제공 한 것은
, 말하자면, 그리고 예를 들어, 내가 자유롭게 사용할 라이브러리를 사용
다른 사람이 쓴 코드의 무리.
>> 트위터는이 코드를 작성하는 일, 그리고 그것은 부트 스트랩 라이브러리라고
그리고 이건 그냥 CSS 스타일 시트,의 무리의 무리입니다. CSS 파일
그 사람은 다른 작곡하고 깨끗이 예쁜 얻는 방법을 알아 냈어
우리 같은 사람들은 미학에 대해 덜 걱정하고 더 많은 초점을 수 있도록
논리와 실제 프로그래밍 있습니다.
아까 styles3.css에 대한 기억 사용 된 것과 동일한 태그입니다 태그와에 연결함으로써,
지금 bootstrap.min.css라는 파일에 액세스 할 수 있습니다.
최소는 그들이 minified 한 의미하며 그들은 등등 모든 공백을 제거이라도하고 한
그들이 내게 실제로 필요한 것보다 더 많은 바이트를 전송하지 있는지 확인합니다.
지금 신입생 인스턴트 메시지의 버전 1을 열어 있도록한다면 거기에, CSS의 전체 잔뜩 모여서
내 파일이 확실히 더 예쁜 상태가됩니다.
이제 아직도 흑백이지만, 발견 단지 그 자신의 스타일 시트를 사용하여
내 양식에 특정 기능을 사용하지 않아 야
하지만 확실히 이전보다 청소기, 그리고 프로젝터는 제대로하고 있지 않습니다.
버튼 주위에 텍스트 필드 주위에 회색 라인이 바로 여기있다
하지만 확실히 예전보다 청소기입니다.
>> 이제 공정성에 내 마크 업을 조금 변경해야 않았습니다.
이 버전 1, 나는 몇 가지 새로운 태그를 사용한 것을 알
제가 문서를 읽을 때까지 정직하게,이 작업을 수행하는 방법을 전혀 몰랐
저희 라이브러리를 사용하려면 트위터의 부트 스트랩 도서관, 그들은 말
귀하의 양식 안에 fieldset 요소를 사용
당신은 라벨 태그의 필드 내 옆에 표시하고자하는 단어를 넣어,
다음, 바로 그전처럼 당신의 입력 이름을 지정합니다
다음 확인란을 위해, 당신은 레이블 요소에 래핑 않습니다뿐만 아니라
당신은 클래스라는 것을 사용하여, 그래서 우리는 전에이 못 봤어
하지만 pset 7의 반바지 중 하나에이 표시됩니다.
CSS의 클래스는, 당신이 ID와 매우 비슷한 작업을 수행 할 수 있습니다
하지만 우리가 # 기호와 ID를했을 때 전
그 하나 하나의 요소에했습니다.
어떤 클래스에 대한 좋은 것은 여러 요소가 같은 클래스를 가질 수 있다는 것입니다
또는 동일한 CSS의 물건은 그 적용.
>> 다시 한 번, 짧은 사람들을,이 나머지에 대한 자세한는 복사하여 붙여 넣기합니다
제가 여기 저기 라벨을 추가 한 자신의 문서에서.
그리고 마지막에, 때문에, 상단에있는 링크 태그를 포함
모든 자동 예뻐 보이는
단순히 그 방식으로 내 페이지를 표시함으로써
트위터는 예상 등 다양한 방법이있어
의이 일을,이 참 매우 적합합니다.
학기의이 시점에서, 당신은 pset 7의 사양에 볼 수로
, 주변 검색을하다 찾은 도서관에 읽기, 다른 사람의 CSS를 사용하여
그리고 자바 스크립트는 부수적 인 문제를 해결하기 위해
문제 세트에 자체는 확실히 격려와 방법입니다
웹은 다른 사람의 어깨에 서있는하여 요즘 내장되어 있습니다
그래서 정말 새롭고 흥미로운 문제에 초점을 수 있습니다.
하지만 그건 지금, 다시 논리를에 초점을 맞춰 보자.
>> 그게 바로 당신이 갈 수있는 방향을 보여 미학에 대한 빠른 우회했다.
나는 지금 더요 하나를 되돌릴거야 단지
이 트위터 물건을 더 달리기없고, 내가 가서 열어 보자
다시 만 동작 register2.php에 차이가 froshims2,
과가 효과가 여기서하는 일은 살펴 보자.
내가 가서 데이비드 입력 보자.
이번에 선장 수 없습니다.
나는, 매튜스, 레지스터를 남자라고합니다.
젠장. 좋아, 내 부분에 나사까지입니다.
대기하라.
Register2, 선 22, 남는게 또는 죄송합니다.
가 다시로드 보자.
그래, 무슨 일이 일어난이 양식을 제출시?
내가 다윗 입력, 매튜스, 등록을 클릭, 남성 체크.
당신이 등록되어 있습니다. (글쎄, 정말.)
이것은 분명 그냥 변수의 내용을 출력 이후 단계입니다
하지만이 파일은 실제로 뭐하는 거지?
register2.php에서
나는 새로운 코드가납니다.
나는 본질적으로는 다른 경우, 구축이 내 몸 태그의 내부
하지만 일부 HTML와 함께 공동 어울 렸는데 때문에
난 앞뒤로 PHP 모드를 입력하고 종료해야합니다, 그래서 내가 뭘 알아 보자.
>> 이 경우에 여기에서 첫 번째 줄에 내 말은
게시물 수퍼 글로벌이 이름의 키 비어 있습니다
그래서 다른 말로, 경우 사용자는 저에게 양식의 이름에 대한 값을주지 않았다
그런 다음 빈은 값이 비어 있기 때문에 TRUE를 반환 예정이다.
성별이 비어 있거나 - 발견 수직 막대 - 경우
내부 다시 양식의 내용을 나타내는이 특별한 슈퍼 글로벌의,
또는 기숙사가 비어, 그럼 가서 사용자 지르지거야.
어떻게해야합니까? 그럼, 당신의 이름, 성별, 및 기숙사를 제공해야합니다 말할거야납니다.
의는 실제로 그 실수를 유도 보자.
내 양식으로 돌아가 보자. 내가 그것을 취소하려면 새로 고침 보자.
그리고 난 그들에게 다윗을 줄께요 그리고, 그 사람들이 살고있는 곳을 알 필요가 없습니다.
등록하십시오. 분명히 제가 살고있는 곳을 그들에게 할 필요는 없어.
당신의 이름, 성별, 기숙사를 제공해야합니다. 돌아갑니다.
>> 그리고 그 양식으로 돌아가려면 클릭 수 있지만 이유는?
음,이 경우 이름에 비어 있지었지만, 성별이 있었고, 기숙사였다
그래서이 모든 표현식이 구문이 조금 새지만 true로 평가하고,
다시 한 번, 우리가 진술하는 경우 익숙한 PHP 모드를 입력
하지만, 여기에 새로운 부분은이 대장이고, 나는 괄호를 생략하여 실수를했다
사고로하지만 콜론을 발견하고, 그 의미
우리는 PHP 모드 모든 프로그램을 종료하고 있어도
그 브라우저에 어떠한 정보 매체에 의한 본문의 전재 뱉어해야 다음
우리는 여기서 당신이 다른 블록을 볼 때까지로,
대신이 뱉어해야하는 경우
당신이 endif가 나타날 때까지, 그래서 몇 가지 약간 새로운 구문
그 때문에 HTML과 PHP 사이를 전환 할 수 있습니다.
우리는 지금 들어, 결국 이걸 처리 할 수​​ 있습니다
이 양식을 확인 오류가 뛰어난 방식의 일종 이죠.
>> 자, 분명히, 우리는하지만, 데이터 아무것도 한 게 없어 때문에 정말 등록을하지 말
그러니 실제로 멋진 일을 할 봅시다.
froshims3에서 유일한 차이는, 나는 register3에 제출거야입니다
HTML 있도록 동일한이 있습니다.
register3에서이 작업을 확인합니다.
이 사람은 섹시한 종류이다.
상단에서 나는 필요 진술을 사용하고,이 # 포함처럼집니다.
이번에는 stdio.h 나 뭐 그런 건 아냐.
이 PHP 라이브러리입니다,이 하나는 PHPMailer라고합니다.
어떻게 정확하게이 인용 문자열을 포함하는 알았 을까?
난 정말 사람들이 얘기를 할 때 나 파일의 상단에 넣으면, 문서에서 읽어
당신이 말한대로 수행 PHPMailer라는 특별한 라이브러리를 사용하려는 경우.
당신이 PHP를 통해 이메일을 보낼 수 있습니다.
지금 더 아래로 스크롤 까.
>> 제가 PHP 모드에서이 모든 시간입니다 시작하기 공지 사항,
그래서 지금, 그 라이브러리를 가져 오기 한 후 여기에 발견
그래서 어떤 정신 검사를하고있어, 말을합니다.
이 이름이 비어 있지 경우라면
성별은 느낌표 빈 것을하지 포인트주세요 -
그리고 기숙사가 비어 나타나지 않으면 사용자는 논리적으로 적어도 충분한, 양식을 작성하고 있습니다.
그들이 주장인지 아닌지 난 신경 안써. 나는 그들의 이름, 성별, 그리고 기숙사가 필요 해요.
그들은 그 아웃을 가득 채웠다 경우 이렇게하면 해당 분야의 아무도가 비어 없습니다
이 약간 새로운 구문입니다.
PHP는 옆으로, 객체 지향 프로그래밍 언어입니다
당신들 중 일부는 APCS 또는 같은에서 기억 할 수있는.
익숙하지 않은 경우 지금은, 그냥이 라이브러리를 사용하는 것을 알고
당신이 새로운 키워드를 사용하여이 같은 코드 한 줄을 작성해야
말 그대로 새로운 키워드는 새로운했다.
하지만 그 뒷일은, 우리는 익숙한 구문을 갖추고 있습니다.
우리가 포인터의 맥락에서 structs에 사용되는 것과 비슷한 화살표 연산자,입니다.
오늘 PHP는 포인터가 없습니다
하지만 메일 변수의 내부는 이제 알
특별한 라이브러리 포인터의 본질적 거라고
다른 사람이 쓴, 그리고 나는 특정 기능에 액세스하려는 경우
그 도서관의 내부 나, C에서처럼, 화살표 연산자를 사용합니까
이것들은 실제로 포인터가 아닌 경우에도.
그것은 그 PHP 자신의 버전의 일종 이죠.
이 도서관에 가서 IsSMTP 함수를 호출을 의미합니다.
SMTP, 리콜, 인터넷 우리의 전사에서 이메일로 말한다
그리고 그냥이 신입생 인스턴트 메시지 등록 이메일 서버를 사용을 의미합니다.
>> 어떤 호스트 나 사용 하시겠습니까?
음, 하버드, 주변 Google은 smtp.fas.harvard.edu라는 이메일 서버가있는 경우.
또는 집에​​서 함께 연주하는 경우 컴캐스트 네트워크에 살고
이 smtp.comcast.net 같은 수 있습니다.
그것은 완전히 당신이 사는 당신의 ISP가 누군지는 위치에 따라 달라집니다.
그 후에는 jharvard@cs50.net 될 수있는 임의의 주소에서 제를 설정하는거야.
그때 나는 jharvard@cs50.net로 해결하기를 설정거야.
나는이 함수가 호출 된 것을 알고있는 유일한 방법 SetFrom 및 AddAddress
다시, 나는 문서를 읽습니다.
이 마술, 모든 프로그래머에게 알려 일종의 없습니다.
그럼 난에 따라 설정 "등록."
점 연산자는 PHP에 무엇을 의미 않기 때문에 이제이 줄은 조금 추한입니까?
누구나 알아?
연결할.
C에서는 함께 두 문자열을 연결할 목에 통증이 있습니다.
당신은 malloc이나 realloc하거나 그 물건의 모든 거래를해야 돼
단지 문자열의 길이를 연장합니다.
자바 스크립트에서 PHP와 다른 언어
당신은 일반적으로 단일 문자와 함께이 작업을 수행 할 수 있습니다.
이 경우, 점은 여기에이 문자열을 의미합니다
그리고는이 문자열에 추가.
>> 오, 그건 그렇고, 거기에이 문자열을 추가하면,
이는 그 슈퍼 전역의 변수 안에 있어야 발생합니다.
그런 다음 있으므로 이러한 점을 모두 방금 말은, 거기에 새 줄을 추가
, 점점 더 커지고 문자열을 유지
그리고 당신은 malloc 또는이 같은 언어로 같은에 대해 전혀 신경 필요가 없습니다
그리고이 작업을 수행하는 다른 방법이지만,이 가장 빠른 중 하나입니다
을 배치하는 방법.
이 무슨 짓을하려는거야?
선장 : 성별 : 기숙사는 이름을 말할거야 이메일 몸을 만드는 :
하고 마지막으로, 별도의 라인에있는 모든
한 코드의 라인, 그리고 지금이 무시거야.
허위 ==는 뭔가 잘못되었을 경우 의미하는 경우
하지만 마법은 여기 발생합니다.
메일 보내기는이 이메일을 보내 의미합니다.
그물 결과는 무엇 보자.
파일의 하단에, 당신은 정말 등록 말할거야 발견
그 멀리 가지 경우.
하지만, 경우, 사용자가 나사까지, 우리가이 시작 것을 알
여기 상태까지하는 경우는 비어와 비어 있지되지 않는다면
우리는 메일을 보내 비우 없습니다.
그렇지 않으면 우리는 코드의이 줄을 보낼거야
당신이 pset 7 보게 될 어떤 사용자를 리디렉션의, 효과를 것입니다
다시 사람들이 와서 froshims3.php합니다.
>> 손가락 그렇지 않으면이 오늘 가장 실망 데모 될 것입니다, 교차.
여기 우리는 간다.
나 Gmail의 jharvard에 대한 내 이메일받은 편지함을 열어 보자.
지금 어떤 이메일 없습니다. 괜찮아요.
나를 지금은 우리가 보겠습니다 세 번째와 마지막 예입니다 froshims3을 열어 보자.
좋아, 여기 우리는 간다.
네이트, 그는 Apley, 말에서, 선장, 남성 수 있습니다.
등록하십시오. 좋아, 당신은 정말 등록되어 있습니다.
내 이메일로 스크롤다면 지금이라도 오, 맙소사.
난 그냥 동적으로 웹에 이메일을 보냈습니다.
>> 의이 메모에 남겨 보자.
동영상은 우리가 놓친 강의에 대한 향후입니다. 다음 주를 참조하십시오.
[CS50.TV]