DOUG 로이드 : 그렇게 우리의 PHP 구문에 대한 비디오, 우리는 어떻게 PHP에 대해 많은 이야기 명령 줄에서 사용할 수 있습니다 하는 방식으로 프로그램을 실행하기 위해 그 우리는 C.에서 꽤 익숙 그러나 나는 또한 언급 한 바와 같이 그 비디오, PHP에서 초기에 개발 된 웹 사이트를 웹 프로그래밍을 구현합니다. 그래서이 비디오에서 우리는있어 우리는 방법에 대해 이야기 할 것 웹 개발 환경에서 PHP를 사용합니다. 우리는에서, 이미, 알고 HTML에 우리의 비디오, 웹 사이트가 구축되어 HTML 태그의 집합 중 그 의미를 정의 웹 페이지의 구조. 그러나 웹 사이트는있다 순수 HTML로 구축 매우 고통, 매우 심각한 제한. 그리고이 제한을 설명하기 위해, 의는 다음 사항을 고려하자. 그래서 지금은 웹 페이지를 구축하고자하는 즉, 때마다 사용자가 방문하는 그것, 그것은 나에게 전류를 제공합니다 매사추세츠 주 캠브리지에있는 시간., 최신 분으로 디스플레이하는 단계를 포함한다. 지금이 권리를 만드는 경우, 나는 이런 식으로 뭔가를 말할 수 있습니다. 나는 그래서 Cambridge--의 현재 시간 HTML 태그, 머리 태그, 제목 태그, 몸은 전류를 tags-- 캠브리지 시간, 14시 8분입니다 군사 시간을 인쇄. 어떻게 지금 오후 2시 9분, 14시 9분 있다면 어떻게됩니까? 그럼 지금까지, HTML을, 내가 가진 가서 14시 9분로 변경합니다. 그리고 일분 후, 나는 다시 변경해야합니다. 그리고 일분 후, 나는 다시 변경해야합니다. 당신이 상상할 수 있듯이, 그건 이제까지 아마 최악의 작업. 당신은 웹 페이지의 웹 마스터, 모든 분, 하루 24 시간, 다음과 같은 방법으로 현재 시간을 업데이트해야 수동 time.html를 열고 변경 코드의 단지 조각은 대답 시간과 분의 현재 시간. 즉, 매우 아마 아니다 우리의 자원을 잘 활용, 인간과 전산 모두. 모든 HTML있는 웹 사이트 완전히 정적입니다. 업데이트 할 수있는 유일한 방법 콘텐츠, 우리가 보았 듯이, 수동으로 그 소스를 열 수 있습니다 파일, 편집하고, 저장할 수 있습니다. 그리고 그 때 사용자 페이지를 새로 고침, 또는 제 1 페이지에 대해 방문 시간, 그들은 최신 콘텐츠를 얻을 수 있습니다. 그러나 우리는했습니다 때문 수동으로 편집했다. 우리가 거​​기에 약간의 PHP를 혼합하기 시작하면, 우리의 코드는 훨씬 더 유연하게 얻을 수 있습니다. 그리고 우리는 우리의 페이지 수있는 방법을 가질 수있다 동적, 또는 자신을 업데이트하려면 우리의 가난한 사람들을 필요로하지 않고 앞의 예에서 웹 마스터 일을 업데이트 수동으로합니다. 그들은 자동으로 작업을 수행 할 수 있습니다. 우리는 개입 할 필요가 없습니다. 우리는 잠을 얻을 수 있습니다. 어느 아마 좋은 일 경우입니다 당신은 웹 프로그래밍을 많이하고 있어요. CS50 IDE에서 그래서, 우리가 실행 웹 서버는 아파치했다. 또한, 매우 일반적으로 사용되는 오픈 소스 웹 서버 시스템. 이 시스템은있다 용량은 해석하기 경우에 유용 할 것입니다 PHP, 당신은 어떤 PHP 프로그래밍을 수행 할 수 있습니다. 그리고 CS50의 IDE에서, 우리는 명령을 할이 매우 쉽게 만들기 위해, 시작 apache50. 그리고 그 슬래시 경로, 슬래시를 슬래시 DIR, 그건 단지 정말 일반적인 방법 당신이 여기에서 지정한 것을 나타내는 특정 경로는 디렉토리 당신에게 루트가되고 싶어요 사이트 또는 루트 페이지, 폴더 나되는 웹 서버에서 파일을 검사하고 봉사하기 시작합니다 을 요청하는 클라이언트에 최대. 그래서 그냥에, CS50 IDE까지 팝하자 이것이 어떻게 작동하는지, 정말 빠르고을 보여줍니다. 그래서 여기 CS50의 IDE에서, 나는에있어 주 제로 나인라는 디렉토리. 내가 가진 two-- 그리고이 그냥 ls 명령 실행 위의 내가 가지고 있음을 보여 여기에 두 개의 디렉토리, PHP, 나는에 사용되는 파일의 세트는이다 PHP 구문 비디오, 다음 PHP - 웹, 파일 세트는하다 나는 이 비디오에 사용하고 싶습니다. 내가 시작하고 싶습니다 웹 서버 인스턴스 PHP가 웹 폴더의 내용 파일까지 제공되고있다. 그래서 내가 할 일입니까? 나는 apache50 공백을 입력하는 것 시작 공간 PHP, 대시 웹. 즉, 디렉토리에 대한 경로입니다 나는 현재 나는 곳에서. 그럼 Enter 키를 누르십시오. 그것은 할 것 여기 물건의 약간. 그리고 그것은 말할 것 아파치가 성공적으로 시작했다. 귀하의 사이트가 at-- 사용할 수 있습니다 및 다음 사이트의 URL이있다. 그래서 내가 할 일입니까? 나는 빨리이 복사거야. 내가 up-- 열거야 및 나는 조금 축소합니다 here-- 나는 열거야 크롬에서 새 탭. 그리고 그 URL을 방문거야. 나는 Enter 키를 누르거야. 그것은로드 할 것입니다. 그리고 나는 다시 축소합니다. 그리고 우리는 여기입니다 볼 수 있습니다 내 PHP 웹 디렉토리의 내용을 표시합니다. 이제 기본적으로 무슨 일이 일어나고 있는지 여기 CS50 IDE 내 인스턴스이다 이 파일을 제공하고있다 을 요청하는 사람. 그리고의 과정을 통해 이 비디오는, 우리는 종류의 것이다 이들의 무리를 살펴 맥락에서 다른 파일. 아파치하는지 테스트하려면 서버가 작동하고, 일반적으로 어느 것입니다 CS50 IDE의 경우가 될, 하지만 당신은 더 일반적으로이 작업을 수행 할 경우, 당신은 당신의 자신의 웹을 구축 시작 서버, 정말이있다 아날로그의 일반적인 종류, 일반적으로 "안녕하세요" PHP 웹 개발에 사용. 파일을 가지고있는 그냥이 code-- 구성 PHP 정보 설정 PHP 분리, 괄호 사이에 세미콜론. 어떤 기본적으로 특별한 을 알려줍니다 PHP 함수 PHP의 버전 당신은 실행하고 있습니다. 그래서 CS50 IDE에서, 나는이 가능한 해당 파일 만 이 어떻게 보이는지를 표시합니다. 그래서 난 내 인덱스를 찾고 있어요 내 PHP 인스턴스에서. 내 아파치 인스턴스가 실행 중입니다 PHP가 웹의 내용. 그리고 파일이 여기에 info.php라고합니다. 나는 그것을 클릭 축소거야. 이것은 당신이 가고있는 것입니다 꽤 많이 볼 수 있습니다. 이것은 단지 나에게 말하고있다 내 아파치 서버가 작동된다. 그리고 이것은 명백하게이다 PHP의 버전은 내가 실행 해요 그. 이것은 내 아날로그입니다 "안녕하세요." 그래서 나는 일이 운영 알고있다. 그래서 우리는 갈 수 있어요. 우리는 여기에서 진행할 수 있습니다. 그래서 그걸 다시 방문하자 시간의 예를 우리는 있었다 우리의 가난한 웹 마스터와 이야기 사람은 끊임없이 페이지를 업데이트했다. 이 방법에 대한 수정 될 수 있습니다 나는 물건을 구현하는 것이 그래서 웹 마스터는하지 않았다 시간을 계속 업데이트해야합니다. 그것은 하듯 종류의 자동으로 일어난다. 아래 아래로, HTML, 그것은이다 한 가지 예외, 매우 유사한. 그러나 여기에서 나는 상단에 약간의 PHP를 가지고있다. 나는 분명히,이를 불렀다 기능 date_default_timezone_set. 그리고 우리에 대한 모든 얘기하지 마세요 CS50에 이러한 기능, PHP는 아마이 때문에 수만. 즉, 약간의 수 있습니다 과장,하지만하지 않을 수 있습니다. 그것은 내장 된 기능을 많이 가지고있다. 그리고이 기능은 분명히있다 미국 / 동부 내 시간대를 설정하고, 어떤 난 시간대입니다 현재이 비디오를 만드는. 그럼 난에 전화를 걸 기능은 날짜,라고. 그리고, 분명히, 내가 저장 해요 HIS라는 것을, 시간. 그래서 여기 일이야? 음, 기본적으로 무슨이다 되는 일이, 내가 전화를 만들고있어 가는 일부 서버에 시간이 현재 무엇을 말해. 그리고 나는 형식으로 변환하고있어 시간, 분, 초. 상기 이유는 자본 H 이것을가요 나에게 (12)을 24 시간 시간을하지 줄 것입니다 소문자 시간이 될 것입니다 시간의 시간. 그리고 난 그냥 저장 해요 라는 변수, 시간. 그 그래서 PHP와의 두 번째 라인 이 함수를 호출, 날짜, 그냥지고 일부 문자열, 나에게 일을 줄 것, 그리고 시간 및 기타 정보의 무리. 그리고이 첫 번째 인수, 그의 그, 단지 중요한 부분을 추출한다 나는이 예를 들어 신경 것으로, 이는 시간, 분 및 초이다. 그래서 무슨 일이 전부입니다. 그래서 저장 변수 $ 시간에 그. 그리고 아래에서 이 맨 아래, 나는 에 대한 그 속기를 현재 시간을 출력하기. 그래서 난 그냥 인쇄 할거야 현재 시간은 무엇 밖으로. 그럼이 살펴 보자 CS50의 IDE와 우리가 지금이야 어떻게 볼 그 웹 마스터에게 문제를 많이 절약. 좋아, 그래서 여기에 나는 다시 생각 다시 루트 디렉토리에 내 아파치 인스턴스. 그리고 여기라는 파일 time.php 있습니다. 난 그냥 클릭거야. 그리고 나는 때문에, 스크롤합니다 우리는 꽤까지 확대하고있다. 현재 시간은 14시 20분 34초입니다. 그래서, 그것을 시간을하고 있어요 분, 초. 그리고 난을 새로 고칠 수 있습니다 페이지와 새로운 시각을 얻을. --41. 나는 페이지를 새로 고침거야 새로운 시간, 44, 46, 47를 얻을. 그래서, 난 분명하지 않다 무엇이든 나 자신을 변경. 여기 페이지를 새로 고침하고 있습니다. 그래서 편집을 다시있을 수 없습니다. 그리고 내가 당신을 약속, 내가하지 어떤 동맹이 누가 파일을 편집 측면에 내 대신. 난 그냥 그 PHP 함수를 사용하고 있습니다 시간은 나를 위해 시간을 생성하는 자동. 내가 잠 들어있어 경우에도 것을, 그래서 내 웹 서버가 실행되고, 페이지가 여전히 있음을 방문하는 사용자 정확하게 현재 시간을 얻을 것. 그래서 꽤 좋다. 내 사이트가 더 역동적했습니다 너무 많이 PHP 코드. 그것은 코드의 두 라인을 한 후, 인쇄 문을 조금. 그리고 이미 나는이 훨씬 더 동적 사이트 첫 번째 예보다 우리는 보았다 비디오의 시작. 그래서, PHP 구문에 대한 비디오에서 기억 PHP 인터프리터가 실행될 때 우리의 프로그램은,이 모든 것을 무시 즉, PHP 구분 기호 안에 아니다 그것을 밖으로 뱉어. 이 예에서, 무슨 일이 이 밖으로 침 것을 HTML이었다. 그리고 이것은 내가 지금 할 수 있음을 의미 함께 HTML과 PHP를 산재. 인터프리터가 단지 때문에 HTML과 그것을 그대로 출력을 무시합니다. 어떤 바로, 좋은? 아마도 때문에 하루의 끝에서, 나는 내 사이트를 싶습니다 HTML로 구성된다. 모든 웹 브라우저가 해석 할 수 있도록 그것은, 또는 페이지의 HTML 이해 뭔가로 렌더링하는 우리 실제로 인간으로 이해할 수있다. 그리고 난 단지 PHP를 사용할 수 있습니다 내 사이트의 부품 저를 필요로하는, 역 동성을 필요로 지속적으로 업데이트 할 일을해야합니다. 정적 정보 동일하게 유지 할 수 있습니다. 좋아, 그래서 괜찮아요. 그러나 나는이 왜 할 것? 이유는 HTML과 PHP를 혼합까요? 난 그냥 인쇄 할 수있는 모든 HTML, PHP는 인쇄 기능을 사용하여. 내가 왜 그 일을하고 있지 않다? 잠시 생각해. 왜, 난 그냥 out-- 인쇄 할 수있을 때 단지 말을 PHP의 라인을 가질 수있다, 인쇄 HTML 태그, 프린트 헤드. 내가 왜 그 일을하고 있지 않다? 이유는 PHP와 HTML을 혼합 무엇입니까? 글쎄, 당신이 생각하는 경우 초 그것에 대해. PHP는, 인터프리터가 그것이 무엇을보고 해석하는. 그리고 그것은있을 것 코드 줄을 실행합니다. HTML을 인쇄 할 수 있습니다. 오픈 헤드 태그를 인쇄 할 수 있습니다. 열린 제목 태그를 인쇄 할 수 있습니다. 그것은에있는 것 실행 및 해석 방법의 모든 단일 단계가. 단지 못하게하는 이유 인터프리터는 그냥 광택 이해할 수없는 일 그것은 자동으로합니까? 그것은 나에게 많은 시간을 절약 할 것 함께 내 HTML과 내 PHP를 혼합합니다. 우리가하지 않는 이유 그리고 그건 열어 PHP의 구분이 다음 단지 전체를 인쇄 하나의 거대한 PHP와 같은 우리의 페이지의 내용 다음 기능, 인쇄를 호출하고 가까운 PHP 분리 우리는 완료. 우리가 함께 그들을 혼합 이유 그래서입니다. 지금까지 우리는 너무 많이 보지 못했다 일반 PHP 구문에서 차이. 그것은 매우 간단이었다. 우리는 이미 본 적이 물음표, 동일. 우리는 새로운 함수 호출의 몇 가지를 보았다 하지만 정말 멋진 아무 일도하지 않습니다. 의 아마 일을 만들어 보자 조금 애호가. 우리는 정보를 전달하려는 경우 다른 PHP 파일 사이, 그래서 아마 사용자가 할 수있는 나에게 정보를 제출합니다. 그리고 내가 뭔가를 할 수 그것은 다른 페이지에와. 그래서 PHP에 대한 지원을하고 뭔가 슈퍼 지구라는 꽤 멋진 소리가 변수. 그들은 정말이야 거대한 연관 배열 즉,이를 구현하는 데 도움이 전달의 기능 PHP 파일 사이에 정보가 우리의 웹 서버에 존재하고 있습니다. 이 슈퍼의 첫 번째 전역는 $ _GET이라고합니다. 그리고 그것은 아마이다 이해하는 것이 가장 간단합니다. 무슨 일이 $ _GET과됩니까? 그래서, 기본적으로, 사용자는 추가 정보를 입력 할 것 우리의 URL의 끝에. 그리고 그들은 입력 무엇이든, 가정 이것은 특정 방식으로 포맷있어 다만, 이는 쿼리 문자열이라고 키 값 쌍을 분리 앰퍼샌드로. 그 키 값 쌍은 될 것입니다 $ _GET 연관 배열에 저장된다. 그리고에 우리의 비디오에서 PHP 문법, 우리는 알고있다 어떻게 작동하는 방법 이미 연관 배열. 그래서 여기의 예입니다 어쩌면 난 일부 PHP, 키 값 쌍 모두를 추출 URL에 제공된 사용자가. 그래서 난 내 오픈 PHP 구분 기호를 가지고있다. 나는 foreach 루프가있다. 나는 슈퍼에 걸쳐 반복 해요 글로벌 배열 $ _GET을했다. 그리고 참조 할 수 있도록하려면 키 값 모두. 그리고 난 그냥 인쇄 해요 밖으로, 각 하나 분명히 여기에 자신의 단락 태그입니다. 나는 약간의 HTML을 인쇄하고 있습니다 및 값들을 보간 그 문에 키와 값의. 그럼 방법이 살펴 보자 실제로 우리의 IDE에 작동합니다. 그리고 어쩌면이 도움이 될 것입니다 조금 설명 무엇을 얻을 실제로하고있다. 그래서 내가 다시 여기 내 웹 루트입니다. 그리고 확대합니다 조금 당신을 보여 나는라는 파일, get1.php이 있는지 확인하십시오. 그럼 get1.php 클릭 할 수 있습니다. 그리고 어떤 내용을 확인할 수 없습니다. 그건 바로, 이상해? 음, 정말 사실. 내가 제공하지 않았기 때문에 URL에 아무것도. 나는 get1.php 것,하지만 난거야 임의의 키 값 쌍을 제공하지 않았다 내 쿼리 문자열의 일부로. 그럼 쿼리 문자열을 추가 할 수 이 파일이 무엇을 할 수 있는지. 쿼리 문자열을 시작하는 방법 그냥 물음표를 입력합니다. 그리고 어쩌면 내가 이름 = 더그 & 년 = 2015 말할 것이다. 그리고 나는 Enter 키를 누르됩니다. 지금 무슨 일이 일어나고 있는지 알 수 있습니다. 나는 get1.php 아직입니다. 하지만 지금은 공급했다 키 값 쌍은, 내가 해요 자신에 그들을 밖으로 인쇄 paragraph-- 이름, Doug-- 년, 2015. 즉 정확하게 코드의 우리 단지 잠시 전에 슬라이드에 보았다. 그리고 어쩌면 다른를 추가 할 경우 키 값 쌍, 클래스 = CS50. 지금은 다른 키 값이 인쇄 무타 페어 때 나는 URL을 다시 방문. 이제 어쩌면이 아니다 정말 잘 포맷. 그래서 get.php의 다른 버전이있다. 그것은 get2.php입니다. 이 차이 하나는 내가 CSS 파일을 가지고있다, 그것은 사물의 형식을 더 잘 나를 위해 조금. 그것은 어쩌면 가장 아니에요 세계에서 아름다운 CSS. 하지만 그것을하는 또 다른 방법입니다. 그래서 나는 여전히 액세스 할 수 있습니다 $의 _GET을 사용하여 내 변수. 이 경우, 그냥 가지 해요 CSS는 좀 더 멋진 만들기. 그리고 우리는까지 팝업 경우 두 번째 내 IDE, 내 PHP 웹에서 당신을 보여 드리죠 여기 디렉토리, get2.php. 우리는 여기에 일부 HTML을 그것을 열 수 있습니다. 분명히 그에 연결 해요 나는에 대해 얘기했다 CSS 파일. 나는 테이블 태그를 엽니 다. 그리고 여기 내 foreach 루프입니다. 여기, 즉 내가 이전 슬라이드를 보여 주었다. 유일한 차이점은 내가있다 이 키와 값의 CSS를 나는 그것을 적용하고있어 스타일링. 그러나 그것은, 내가 뭘 모든 난가요 $ _GET에 걸쳐 반복하면 모든 얻을 수 키 값 쌍. 그리고 테이블로 그들을 밖으로 인쇄하고 있습니다. 그리고, 분명히, 나는 키가 서식하고있어 하나의 방법으로,