1 00:00:00,000 --> 00:00:04,410 >> [Música tocando] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> COLUMNA 1: Este é CS50 e este é o fin de semana de sete. 4 00:00:15,770 --> 00:00:20,240 Hoxe é quizais onde nós realmente ensinando idiomas. 5 00:00:20,240 --> 00:00:24,100 Nós introducimos no último par de semanas HTML e CSS, ningunha das cales 6 00:00:24,100 --> 00:00:25,240 son linguaxes de programación. 7 00:00:25,240 --> 00:00:28,600 E, de feito, aínda non mirar para case todas as etiquetas 8 00:00:28,600 --> 00:00:33,410 que vén con HTML e case todos das propiedades CSS que vén con, 9 00:00:33,410 --> 00:00:35,007 iso é medio-lo para HTML e CSS. 10 00:00:35,007 --> 00:00:36,840 Nós imos só xeralmente comezar a asumir que 11 00:00:36,840 --> 00:00:39,545 comprender as ideas xerais de etiquetas e atributos, 12 00:00:39,545 --> 00:00:41,850 e sendo enviado páxinas do cliente ao servidor. 13 00:00:41,850 --> 00:00:45,280 >> Porque hoxe comezamos a mirar para outra linguaxe de programación, PHP. 14 00:00:45,280 --> 00:00:47,110 Nós imos facelo super rápido. 15 00:00:47,110 --> 00:00:50,910 Non estamos indo para ensinar-lle PHP per se, moi como non aspirar a ensinar-lle 16 00:00:50,910 --> 00:00:52,670 C, por si só, pero en vez de programación. 17 00:00:52,670 --> 00:00:55,088 E, de feito, un dos obxectivos para este curso 18 00:00:55,088 --> 00:00:57,820 non é para ensinar-lle C, ou HTML ou CSS, ou PHP, 19 00:00:57,820 --> 00:01:00,370 ou calquera número de outros palabras de zumbido ou siglas, 20 00:01:00,370 --> 00:01:03,097 mais si a ciencia da computación e como programar fundamentalmente. 21 00:01:03,097 --> 00:01:05,930 E, de feito, hoxe comezan a tomar aquelas rodinhas todo o 22 00:01:05,930 --> 00:01:10,600 aínda por voar a través dunha linguaxe PHP chamada, como segue. 23 00:01:10,600 --> 00:01:13,640 >> Aquí está o que esta linguaxe parece. 24 00:01:13,640 --> 00:01:17,790 Acontece que non hai necesidade de unha función principal nun programa escrito 25 00:01:17,790 --> 00:01:19,470 nunha linguaxe chamada PHP. 26 00:01:19,470 --> 00:01:22,585 De xeito que xa soa un pouco máis simple de C, coa que estamos familiarizados. 27 00:01:22,585 --> 00:01:25,370 Acontece que se quere declarar unha variable, 28 00:01:25,370 --> 00:01:29,470 facelo de forma case idéntica a C. Pero hai claramente unha diferenza aquí 29 00:01:29,470 --> 00:01:31,850 cando declarar unha cadea, ou que dúas diferenzas. 30 00:01:31,850 --> 00:01:32,725 O que parece diferente? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> Audiencia: O sinal de dólar. 33 00:01:37,160 --> 00:01:39,951 >> COLUMNA 1: Si, hai dólar asinar, que nunca vimos antes. 34 00:01:39,951 --> 00:01:41,451 E o que falta? 35 00:01:41,451 --> 00:01:41,950 Si? 36 00:01:41,950 --> 00:01:42,820 >> Audiencia: [inaudível] 37 00:01:42,820 --> 00:01:44,403 >> COLUMNA 1: Si, non hai ningún tipo de datos. 38 00:01:44,403 --> 00:01:48,410 Así, verifícase que o PHP é o que nós chamar unha linguaxe feblemente tipada, onde 39 00:01:48,410 --> 00:01:49,959 C está fortemente tipado. 40 00:01:49,959 --> 00:01:52,500 Vagamente ingresaran só significa que existen diferentes tipos de datos, 41 00:01:52,500 --> 00:01:54,470 hai secuencias de caracteres e ints e carrozas. 42 00:01:54,470 --> 00:01:56,330 Pero as cifras de ordenadores iso. 43 00:01:56,330 --> 00:01:58,664 Vostede o programador humano Non ten que descubrir iso. 44 00:01:58,664 --> 00:02:00,580 Entón todo o que tes que facer para declarar unha variable é 45 00:02:00,580 --> 00:02:03,220 sinal de dólar, o nome da súa variable e, a continuación, por exemplo, 46 00:02:03,220 --> 00:02:04,760 entre comiñas, Ola mundo. 47 00:02:04,760 --> 00:02:07,662 >> Ben, iso é o que un condición parece en PHP. 48 00:02:07,662 --> 00:02:08,328 Calquera diferenzas? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 Non. 51 00:02:11,150 --> 00:02:12,540 Entón non é que estes son idénticos. 52 00:02:12,540 --> 00:02:14,665 E pode que menos sucursais ou máis ramas, 53 00:02:14,665 --> 00:02:16,557 pero as voltas de sintaxe exactamente o mesmo. 54 00:02:16,557 --> 00:02:18,390 Expresións booleana pode ser encomendados xuntos. 55 00:02:18,390 --> 00:02:20,400 As expresións booleanas pode ser anded xuntos. 56 00:02:20,400 --> 00:02:21,430 Aínda ten switches. 57 00:02:21,430 --> 00:02:23,790 Mesmo se non ten usado Destes, estes existen en C 58 00:02:23,790 --> 00:02:26,020 e son funcionalmente equivalente en PHP. 59 00:02:26,020 --> 00:02:28,260 >> E, de feito, están en PHP un pouco máis forte. 60 00:02:28,260 --> 00:02:32,540 En C, só se pode comparar seguro tipos de datos como enteiros e caracteres, 61 00:02:32,540 --> 00:02:36,320 Tendo en conta que, en PHP realmente pode comparar cordas pleno desenvolvemento, sen ter 62 00:02:36,320 --> 00:02:38,460 de preocuparse dos punteiros e semellantes. 63 00:02:38,460 --> 00:02:39,430 Entón aquí está un loop. 64 00:02:39,430 --> 00:02:41,270 Este é só pseudocódigo código, se quere. 65 00:02:41,270 --> 00:02:43,400 Pero é estruturalmente o mesmo que o C. 66 00:02:43,400 --> 00:02:47,520 >> Aquí está o loop while, un pseudocódigo therefore-- idéntico ao C. 67 00:02:47,520 --> 00:02:49,390 Aquí está un tumulto mentres loop-- idénticos. 68 00:02:49,390 --> 00:02:51,390 E así hai un tipo de este estándar polo que aquí 69 00:02:51,390 --> 00:02:54,400 hai algúns outros sintáctica recursos que estamos realmente indo para ver. 70 00:02:54,400 --> 00:02:57,340 De feito, aquí é un bo PHP en forma segundo a cal, 71 00:02:57,340 --> 00:02:59,350 se quere facer unha iteración sobre unha matriz, e 72 00:02:59,350 --> 00:03:02,309 non queren ir a través do marcos mentais e sintácticas de 73 00:03:02,309 --> 00:03:05,178 int i é igual a 0, i menos que n, i, máis que plus-- 74 00:03:05,178 --> 00:03:07,040 é só unha morea de sintaxe irritante. 75 00:03:07,040 --> 00:03:10,654 Pode falar un pouco máis de forma fluída para cada un números 76 00:03:10,654 --> 00:03:13,320 como número, onde neste caso Números do sinal de dólar, eu estou supondo, 77 00:03:13,320 --> 00:03:15,400 é como unha matriz de números chamados. 78 00:03:15,400 --> 00:03:18,810 E entón eu estou supondo que o número, singular, vai ser unha variable. 79 00:03:18,810 --> 00:03:22,940 >> E PHP vai facer por min como eu facer unha iteración ao longo deste ciclo é, en cada iteración, 80 00:03:22,940 --> 00:03:28,450 vai actualizar o número da variable para ser o i-ésimo elemento en números, plural. 81 00:03:28,450 --> 00:03:30,060 El só trata sobre todo isto para min. 82 00:03:30,060 --> 00:03:32,750 Non hai corchetes, non sinal de dólar, non hai punto e coma. 83 00:03:32,750 --> 00:03:34,117 É só un pouco máis simple. 84 00:03:34,117 --> 00:03:35,950 Ben, se quere un array, verifícase que vostede 85 00:03:35,950 --> 00:03:38,908 pode facer algo moi semellante ao C. A sintaxe é un pouco diferente. 86 00:03:38,908 --> 00:03:41,000 Pero aquí está unha matriz chamada dólar asinado números. 87 00:03:41,000 --> 00:03:44,261 E eu uso, en PHP, praza soportes, ao parecer. 88 00:03:44,261 --> 00:03:47,260 E nós estamos indo a ver estes novo en JavaScript-- aínda outro idioma. 89 00:03:47,260 --> 00:03:49,968 Só usar a notación de corchete ter unha lista separada por comas 90 00:03:49,968 --> 00:03:51,530 de enteiros, neste caso. 91 00:03:51,530 --> 00:03:53,010 Pero que me dá unha matriz. 92 00:03:53,010 --> 00:03:56,270 >> Pero aínda máis poderoso en PHP, temos tamén o que son, en xeral 93 00:03:56,270 --> 00:03:57,640 chamado matrices asociativas. 94 00:03:57,640 --> 00:03:59,540 E unha morea de linguas ten estes tamén. 95 00:03:59,540 --> 00:04:03,810 A cousa sobre matrices C é que os índices 96 00:04:03,810 --> 00:04:06,940 para unha matriz, a cousa que usar corchetes, a través do cal 97 00:04:06,940 --> 00:04:08,600 acceder elementos, debe ser o que? 98 00:04:08,600 --> 00:04:10,620 >> Audiencia: [inaudível] 99 00:04:10,620 --> 00:04:14,220 >> COLUMNA 1: Eles teñen que ser números ou enteiros, especialmente de cero enriba. 100 00:04:14,220 --> 00:04:17,140 Ben, en PHP, e, ao parecer a fóra, noutros idiomas, 101 00:04:17,140 --> 00:04:20,820 pode comezar a ter índices que non son numéricos. 102 00:04:20,820 --> 00:04:23,880 Pero son realmente palabras ou frases, de xeito que, en vez de 103 00:04:23,880 --> 00:04:27,070 tente lembrar onde algo é, é almacenado nunha variable i, 104 00:04:27,070 --> 00:04:31,720 realmente pode usar unha palabra e dicir isso-- pode dicir unha palabra como esta. 105 00:04:31,720 --> 00:04:34,730 >> Entón Cita sinal de dólar é a nome dunha variable aquí. 106 00:04:34,730 --> 00:04:39,360 Este é un pouco descolados sintaxe iso é asociar dous valor de clave 107 00:04:39,360 --> 00:04:41,250 pares para esa variable. 108 00:04:41,250 --> 00:04:45,490 En concreto, iso está me dando unha matriz que é de lonxitude 2. 109 00:04:45,490 --> 00:04:47,660 Pero os índices non son 0 e 1. 110 00:04:47,660 --> 00:04:51,250 Os índices están entre comiñas símbolo e cotización de prezo pecha comiñas. 111 00:04:51,250 --> 00:04:55,990 E os valores destes índices, respectivamente, é FB en Facebook 112 00:04:55,990 --> 00:05:00,360 e $ 79,53, cando durar Comprobarase un prezo por iso. 113 00:05:00,360 --> 00:05:01,210 >> Que significa iso? 114 00:05:01,210 --> 00:05:04,136 Ben, iso significa que en vez de escribir código 115 00:05:04,136 --> 00:05:09,612 como este, onde eu adoitaba facer algo como dólar sign-- ou mellor, en C 116 00:05:09,612 --> 00:05:11,070 Non tería sequera un sinal de dólar. 117 00:05:11,070 --> 00:05:13,490 Quere facer algo como citas e, a continuación, 118 00:05:13,490 --> 00:05:18,410 Eu faría soporte i para chegar nalgún arbitrariamente numericamente valor indexado. 119 00:05:18,410 --> 00:05:21,430 A partir de hoxe en PHP, se quere obter algún valor, 120 00:05:21,430 --> 00:05:24,742 que tipo de ter máis expresividade semántica. 121 00:05:24,742 --> 00:05:27,450 Só un xeito elegante de dicir que podemos só chamar as cousas o que son. 122 00:05:27,450 --> 00:05:29,800 >> E se queres comezar en algo símbolo, 123 00:05:29,800 --> 00:05:32,180 agora literalmente facer citar símbolo unquote 124 00:05:32,180 --> 00:05:34,910 entre corchetes en vez de un mero número. 125 00:05:34,910 --> 00:05:36,450 Polo tanto, é unha conveniencia agradable. 126 00:05:36,450 --> 00:05:38,140 E iso é unha especie de todo por agora. 127 00:05:38,140 --> 00:05:40,240 Hai acios de outros recursos no PHP. 128 00:05:40,240 --> 00:05:43,180 E, de feito, PHP vén con a pía da cociña proverbial. 129 00:05:43,180 --> 00:05:48,640 Decenas, centos de funcións veñen con PHP-- tantos máis que veu con C. 130 00:05:48,640 --> 00:05:51,360 >> E que non se destina a oprimir, senón axuda- 131 00:05:51,360 --> 00:05:53,900 entender que non xa non teñen que escribir código 132 00:05:53,900 --> 00:05:55,590 que é unha especie de aquí conceptualmente. 133 00:05:55,590 --> 00:05:58,465 Agora, podemos comezar a aproveitar de moito máis avanzados recursos 134 00:05:58,465 --> 00:05:59,920 que linguaxes como PHP ten. 135 00:05:59,920 --> 00:06:02,630 Polo tanto, non se preocupe mover as cousas na memoria. 136 00:06:02,630 --> 00:06:05,338 Non temos que preocuparse malloc e todos estes nivel inferior, 137 00:06:05,338 --> 00:06:09,390 detalles poderosas que loitará con, se non loitar con, pset5, 138 00:06:09,390 --> 00:06:13,380 pero pode comezar a logo tomar para concedida. 139 00:06:13,380 --> 00:06:17,770 >> De feito, imos escribir un super- programa sinxelo en PHP, deste xeito. 140 00:06:17,770 --> 00:06:21,550 Eu estou indo a ir cabeza CS50 IDE aquí, e que eu vou facer 141 00:06:21,550 --> 00:06:29,370 é crear un novo ficheiro, que moi simplemente será chamado Hello dot PHP. 142 00:06:29,370 --> 00:06:31,860 Entón, en vez de punto c, é será chamado punto PHP. 143 00:06:31,860 --> 00:06:34,260 E entón neste ficheiro, Podo comezar a escribir. 144 00:06:34,260 --> 00:06:36,960 Pero resulta que o unha cousa que eu teño que saber 145 00:06:36,960 --> 00:06:41,470 é que calquera arquivo PHP en xeral, ten comezar por unha sintaxe especial. 146 00:06:41,470 --> 00:06:44,570 Similares en espírito á HTML, pero, de novo, PHP é unha linguaxe de programación, non 147 00:06:44,570 --> 00:06:45,590 unha linguaxe de reserva. 148 00:06:45,590 --> 00:06:48,700 >> Así, cada ficheiro, e é unha especie mirar estúpido eu admite. 149 00:06:48,700 --> 00:06:50,480 Abrir soporte, punto de interrogación, PHP. 150 00:06:50,480 --> 00:06:53,060 E iso é só o forma de linguaxe de dicir: 151 00:06:53,060 --> 00:06:58,400 hey, ordenador vén aquí algún código escrito nunha linguaxe chamada PHP. 152 00:06:58,400 --> 00:07:01,900 E entón, ao final do seu arquivo, fai o tipo de especie de oposto. 153 00:07:01,900 --> 00:07:04,860 Non escribe PHP novo, só facer punto de interrogación, soporte de ángulo. 154 00:07:04,860 --> 00:07:08,500 E entón calquera cousa que poñer dentro destas dúas marcas, por así dicir, 155 00:07:08,500 --> 00:07:11,490 será, ou debería ser, o código PHP. 156 00:07:11,490 --> 00:07:13,180 >> Entón, imos facer algo super sinxelo. 157 00:07:13,180 --> 00:07:19,370 Eu estou indo a ir adiante e facer impresión def, Ola mundo, barra invertida n, gardar. 158 00:07:19,370 --> 00:07:27,310 E agora a miña liña, eu vou facer, facer hello-- non, eu vou facer, 159 00:07:27,310 --> 00:07:28,726 dot cortar Ola. 160 00:07:28,726 --> 00:07:31,250 Non, barra punto, hm. 161 00:07:31,250 --> 00:07:32,990 Entón, algo é diferente. 162 00:07:32,990 --> 00:07:36,920 E, de feito, esta é unha diferenza fundamental entre PHP e linguaxes como C C. 163 00:07:36,920 --> 00:07:38,730 foi unha chamada linguaxe compilada. 164 00:07:38,730 --> 00:07:40,929 O que isto supón para C para ser compilado? 165 00:07:40,929 --> 00:07:41,970 Cal foi a implicación? 166 00:07:41,970 --> 00:07:42,898 Si. 167 00:07:42,898 --> 00:07:45,220 >> Audiencia: Escribiu o en código máquina para que puidese ser executado polo ordenador. 168 00:07:45,220 --> 00:07:46,011 >> COLUMNA 1: Exactamente. 169 00:07:46,011 --> 00:07:49,075 Temos que primeiro convertela en chamada de código de máquina, ceros e uns, 170 00:07:49,075 --> 00:07:51,950 antes que vai realmente ser executable e comprendido polo ordenador. 171 00:07:51,950 --> 00:07:52,840 Intel por dentro. 172 00:07:52,840 --> 00:07:54,530 Pola CPU no interior do ordenador. 173 00:07:54,530 --> 00:07:58,170 PHP, pola contra, é o que se chama unha linguaxe interpretada, que 174 00:07:58,170 --> 00:08:02,230 significa que non recompila-lo en ceros e uns, código de máquina, 175 00:08:02,230 --> 00:08:04,360 ti, en vez deixalo como código fonte. 176 00:08:04,360 --> 00:08:08,130 E ti, en vez pasalo como entrada para un programa, un intérprete 177 00:08:08,130 --> 00:08:11,960 que outra persoa escribiu anos, que o entende 178 00:08:11,960 --> 00:08:14,310 liña por liña, carácter para o personaxe. 179 00:08:14,310 --> 00:08:16,120 Así, noutras palabras, o ser humano por aí, escribiu 180 00:08:16,120 --> 00:08:19,670 un programa que vai mirar no seu código liña por liña, 181 00:08:19,670 --> 00:08:21,680 e descubrir o que o ordenador debe facer, 182 00:08:21,680 --> 00:08:25,960 sen convertelo lo directamente a ceros e uns. 183 00:08:25,960 --> 00:08:28,370 >> Entón, se ve un loop for, este chamado intérprete 184 00:08:28,370 --> 00:08:30,630 será como, todo ben, eu debería facer algo de novo e de novo e de novo. 185 00:08:30,630 --> 00:08:31,150 Qué debería facer? 186 00:08:31,150 --> 00:08:32,159 Déixeme ver a seguinte liña. 187 00:08:32,159 --> 00:08:33,367 Déixeme ver a seguinte liña. 188 00:08:33,367 --> 00:08:35,350 E realmente interpreta liña a liña. 189 00:08:35,350 --> 00:08:37,220 Entón, para executa-lo, eu non uso maquillaxe. 190 00:08:37,220 --> 00:08:39,409 Eu non uso barra dot neste caso. 191 00:08:39,409 --> 00:08:43,530 I en vez de PHP, que é o nome dun programa, a.k.a. 192 00:08:43,530 --> 00:08:46,562 Un intérprete, que é preinstalado en CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 e agora eu teño pasar un argumento da liña de comandos, que 194 00:08:48,770 --> 00:08:52,290 é simplemente o nome do arquivo que quero interpretar. 195 00:08:52,290 --> 00:08:54,740 Ou máis casual, que quero correr. 196 00:08:54,740 --> 00:08:57,000 E se eu prema Intro, non temos. 197 00:08:57,000 --> 00:08:57,825 Hola Mundo. 198 00:08:57,825 --> 00:08:59,950 Agora resulta que eu def impresión usado deliberadamente 199 00:08:59,950 --> 00:09:01,600 para nós ponte de C para PHP. 200 00:09:01,600 --> 00:09:05,150 A maioría dos programadores PHP, como vai ver, non se molestas mesmo usando print def. 201 00:09:05,150 --> 00:09:08,290 Eles só usar unha función chamada impresión, que C non ten. 202 00:09:08,290 --> 00:09:11,390 E por iso, se eu executa-lo de novo agora, realmente compórtase se funcionalmente ao mesmo. 203 00:09:11,390 --> 00:09:13,730 Non podo usar a porcentaxe s e i por cento e así por diante, 204 00:09:13,730 --> 00:09:16,250 pero hai outras formas en PHP de facelo. 205 00:09:16,250 --> 00:09:18,100 Pero esta é só a dicir que sintaticamente, 206 00:09:18,100 --> 00:09:21,850 excepto algunhas cousas estrañas up superior, e algúns caracteres estraños abaixo 207 00:09:21,850 --> 00:09:25,960 no fondo, os conceptos de agora programación nesta outra lingua 208 00:09:25,960 --> 00:09:27,860 van ser exactamente o mesmo. 209 00:09:27,860 --> 00:09:30,120 >> De feito, imos facer outro exemplo. 210 00:09:30,120 --> 00:09:32,520 Entón, eu estou indo a ir adiante e pecha este ficheiro. 211 00:09:32,520 --> 00:09:37,740 Déixeme crear outro que Vou chamar condicións 1 punto PHP. 212 00:09:37,740 --> 00:09:40,770 Polo tanto, non cero, xa que o que eu fixen era eu olhei para tras, hai unhas semanas, 213 00:09:40,770 --> 00:09:43,490 tivemos un ficheiro chamado condicións de 1 punto C. E o que 214 00:09:43,490 --> 00:09:47,590 Que fixen foi converteuse o na miña cabeza, e, aquí no papel, 215 00:09:47,590 --> 00:09:51,290 e logo o curso de web, liña por liña en PHP. 216 00:09:51,290 --> 00:09:55,520 >> Así, na versión C, fixemos algo como cadea s recibe obter cadea. 217 00:09:55,520 --> 00:09:58,200 Polo tanto, é un pouco diferente facelo en PHP. 218 00:09:58,200 --> 00:10:01,390 Pola contra, eu só vou para facer, ou mellor, I 219 00:10:01,390 --> 00:10:05,870 podería facer int n recibe chegar int, neste exemplo anterior. 220 00:10:05,870 --> 00:10:12,600 Entón, en vez diso, eu vou facer n obtén liña de ler, gustaríame un número enteiro, 221 00:10:12,600 --> 00:10:13,670 por favor. 222 00:10:13,670 --> 00:10:15,110 Polo tanto, esta é só a miña indicación. 223 00:10:15,110 --> 00:10:17,260 E así se ve, e Eu só sei que isto 224 00:10:17,260 --> 00:10:20,480 de ler ou ver a función antes, as liñas de función en PHP ler 225 00:10:20,480 --> 00:10:23,810 leva un argumento que é un símbolo para o ser humano, eo seu propósito na vida 226 00:10:23,810 --> 00:10:26,220 é ler unha liña de texto que el ou ela en tipos. 227 00:10:26,220 --> 00:10:29,160 E despois que almacena texto para a variable n. 228 00:10:29,160 --> 00:10:32,200 >> E agora eu podería querer facer algo como eu fixen semanas en coma semana 229 00:10:32,200 --> 00:10:33,290 un da clase. 230 00:10:33,290 --> 00:10:36,600 Se n é maior que cero, entón, eu vou 231 00:10:36,600 --> 00:10:42,930 para prestar sintaxe que acabamos de ver, print def, escolleu un número positivo, 232 00:10:42,930 --> 00:10:44,360 n barra invertida. 233 00:10:44,360 --> 00:10:49,990 Else if n é igual a cero, eu son indo a ir adiante e dicir: print def, 234 00:10:49,990 --> 00:10:54,090 colleu de cero barra invertida n. 235 00:10:54,090 --> 00:10:56,830 Senón, o caso debe por suposto ser, print def, 236 00:10:56,830 --> 00:10:58,620 escolleu un número negativo. 237 00:10:58,620 --> 00:11:00,970 >> E certamente podemos aplicar a lóxica desa cousa 238 00:11:00,970 --> 00:11:03,390 en unha morea de diferentes formas, pero o punto aquí 239 00:11:03,390 --> 00:11:07,210 é que sintacticamente, case nada é novo. 240 00:11:07,210 --> 00:11:09,830 É só o sinal de dólar e unha nova función e liña de ler. 241 00:11:09,830 --> 00:11:12,090 Pero, fundamentalmente, o que hai de novo Agora é que eu estou interpretando isto. 242 00:11:12,090 --> 00:11:13,910 Estou pasando como entrada a outro programa. 243 00:11:13,910 --> 00:11:16,620 Entón, se eu queira realizar isto, se Non cometer erros, 244 00:11:16,620 --> 00:11:20,140 Eu estou indo a executar PHP, de 1 punto condicións PHP, entrar, 245 00:11:20,140 --> 00:11:23,440 Eu estou indo a escribir o número 50, e imos asumir por agora funciona. 246 00:11:23,440 --> 00:11:25,940 Xa que a lóxica é a mesmo material que unha semana. 247 00:11:25,940 --> 00:11:28,020 >> Todo ben, entón iso é moi underwhelming, non? 248 00:11:28,020 --> 00:11:30,240 Poderíamos facelo en calquera número de linguas. 249 00:11:30,240 --> 00:11:33,200 Imos facer algo moito máis poderoso. 250 00:11:33,200 --> 00:11:35,610 Imos problema acabado definir cinco. 251 00:11:35,610 --> 00:11:37,370 Entón, eu estou indo a ir adiante e facelo. 252 00:11:37,370 --> 00:11:42,920 Eu estou indo a crear un arquivo chamado dicionario dot PHP 253 00:11:42,920 --> 00:11:45,424 e inclinado como pode ser scramble abaixo lotes de notas, 254 00:11:45,424 --> 00:11:47,340 as notas só axuda- se está permitido 255 00:11:47,340 --> 00:11:48,923 para aplicar problemas definir cinco en PHP. 256 00:11:48,923 --> 00:11:52,706 Pero imos ver como rápido agora pode aplicar ese mesmo conxunto de problemas. 257 00:11:52,706 --> 00:11:56,830 >> Entón no dicionario dot PHP, eu vou asumir que xa existe 258 00:11:56,830 --> 00:11:58,514 un arquivo no mundo chamado ortográfico. 259 00:11:58,514 --> 00:12:01,430 E, de feito, eu fixen iso con antelación, e non imos andar por esta liña 260 00:12:01,430 --> 00:12:03,596 por liña, pero se está Curioso quere máis tarde e realmente 261 00:12:03,596 --> 00:12:06,250 para involucrar súa mente en torno ao diferenzas entre C e PHP, 262 00:12:06,250 --> 00:12:09,030 literalmente comparar o ficheiro, Speller, desde o código fonte de hoxe 263 00:12:09,030 --> 00:12:11,190 que vou publicar máis tarde hoxe, contra p set 264 00:12:11,190 --> 00:12:15,309 cinco ortográfico punto c que nós dámoslle, e é case a mesma liña por liña. 265 00:12:15,309 --> 00:12:16,600 Hai algúns cifrões. 266 00:12:16,600 --> 00:12:18,330 Algunhas funcións un pouco diferente. 267 00:12:18,330 --> 00:12:20,038 Pero é unha boa forma de sorte de ver como 268 00:12:20,038 --> 00:12:22,740 traducir dunha lingua a outra. 269 00:12:22,740 --> 00:12:24,812 E é case idéntico liña para liña. 270 00:12:24,812 --> 00:12:27,770 Pero eu vou asumir que esta existe, eo que eu vou facer aquí 271 00:12:27,770 --> 00:12:31,310 é tentar explotar o seu mente por reimplementar 272 00:12:31,310 --> 00:12:36,210 a totalidade do problema axustou cinco xeito máis rápido que fixo ata agora. 273 00:12:36,210 --> 00:12:39,330 Así, por exemplo, eu vou primeiro declarar unha variable global chamada size, 274 00:12:39,330 --> 00:12:40,444 e configurar-lo igual a cero. 275 00:12:40,444 --> 00:12:41,610 Agora iso non é moita economía. 276 00:12:41,610 --> 00:12:44,170 As probabilidades son que aplicou tamaño practicamente o mesmo, 277 00:12:44,170 --> 00:12:48,440 ou información información, vai esta noite ou mañá, só usando unha variable global chamada 278 00:12:48,440 --> 00:12:49,900 tamaño, e define-la igual a cero. 279 00:12:49,900 --> 00:12:52,660 Isto non é un particularmente Spoiler incrible. 280 00:12:52,660 --> 00:12:57,180 >> Entón, cales foron os seus datos estruturas de elección, aqueles de vostedes que mergullaron en 281 00:12:57,180 --> 00:13:02,170 e ler a especificación, estruturas de datos que ter a maioría de vostedes teñen benvida a utilizar? 282 00:13:02,170 --> 00:13:06,840 Unha táboa ou intentar, quizais algunhas variantes. 283 00:13:06,840 --> 00:13:10,490 Así, a posta en marcha dunha táboa hash, polo menos, é unha especie de unha morea de liñas de código, 284 00:13:10,490 --> 00:13:10,990 non? 285 00:13:10,990 --> 00:13:13,700 E non todos poden ser funcional neste momento a semana, 286 00:13:13,700 --> 00:13:14,366 pero iso é bo. 287 00:13:14,366 --> 00:13:19,300 Porque en PHP, se eu Queres unha táboa hash, feito. 288 00:13:19,300 --> 00:13:20,260 Non? 289 00:13:20,260 --> 00:13:22,610 Entón, esa variable que eu teño só declarado é, obviamente, 290 00:13:22,610 --> 00:13:26,180 chamada táboa sinal de dólar, por introdución antes. 291 00:13:26,180 --> 00:13:28,902 >> Pero realmente só quero, polo ao final do día, unha matriz. 292 00:13:28,902 --> 00:13:31,610 Pero non un indexado numericamente array, porque iso é como dúas semanas 293 00:13:31,610 --> 00:13:33,440 material, cando falamos de matrices. 294 00:13:33,440 --> 00:13:34,850 Quero unha táboa hash. 295 00:13:34,850 --> 00:13:38,070 Pero unha táboa hash é realmente só unha forma concreta de dicir: 296 00:13:38,070 --> 00:13:40,190 quere unha matriz asociativa. 297 00:13:40,190 --> 00:13:43,270 Quere ser capaz de claves asociadas con valores. 298 00:13:43,270 --> 00:13:44,200 Chaves con valores. 299 00:13:44,200 --> 00:13:45,640 ¿Que é un dicionario, realmente? 300 00:13:45,640 --> 00:13:47,080 Ben, é unha morea de claves. 301 00:13:47,080 --> 00:13:50,320 Palabras como mazá, pera e plátano, e todas estas palabras inglesas 302 00:13:50,320 --> 00:13:51,490 que entregar-lle. 303 00:13:51,490 --> 00:13:54,820 >> E os valores que está efectivamente introducir no seu dicionario 304 00:13:54,820 --> 00:13:57,790 ou son certas, ou a ausencia, false. 305 00:13:57,790 --> 00:14:00,540 Noutras palabras, está introducindo unha morea de pares de valores clave, 306 00:14:00,540 --> 00:14:03,720 mazá, verdade, pera, verdadeira, bananas, é verdade. 307 00:14:03,720 --> 00:14:07,446 De xeito que cando recuperar ou ollar Se os datos na súa táboa hash 308 00:14:07,446 --> 00:14:10,070 coa súa función de comprobación, que é quere recibir de volta unha resposta, 309 00:14:10,070 --> 00:14:13,260 si, eu atope no meu complexo hash de táboa, ou non, non está alí, 310 00:14:13,260 --> 00:14:14,540 así que voltar falso. 311 00:14:14,540 --> 00:14:19,440 >> Entón, para facelo, todo o que eu teño é o de datos estrutura como propuxen antes. 312 00:14:19,440 --> 00:14:22,050 Eu só teño poder asociar palabras 313 00:14:22,050 --> 00:14:25,570 como, entre comiñas, símbolo, cun valor como, é verdade. 314 00:14:25,570 --> 00:14:27,090 Polo tanto, hai a miña táboa de hash. 315 00:14:27,090 --> 00:14:28,180 Imos realmente usalo. 316 00:14:28,180 --> 00:14:30,310 Polo tanto, hai algunhas funcións Necesito aplicar. 317 00:14:30,310 --> 00:14:33,300 Eu estou indo a ir adiante e morder fóra dun tamaño función chamada. 318 00:14:33,300 --> 00:14:34,390 Non ten argumentos. 319 00:14:34,390 --> 00:14:36,660 Non ten que preocuparse a palabra, baleiro, en PHP. 320 00:14:36,660 --> 00:14:38,770 Vou simplemente para volver tamaño. 321 00:14:38,770 --> 00:14:41,287 >> E como un aparte, PHP ten este detalle minorly irritante, 322 00:14:41,287 --> 00:14:44,620 onde se algo é global, ten que dicir a función en que está a usar 323 00:14:44,620 --> 00:14:46,220 que, hey, esa é unha variable global. 324 00:14:46,220 --> 00:14:49,330 Entón, menor estupidez, pero ten que facelo, con todo. 325 00:14:49,330 --> 00:14:50,920 >> Así que sobre carga? 326 00:14:50,920 --> 00:14:52,990 Eu estou indo a aplicar unha carga función chamada 327 00:14:52,990 --> 00:14:56,790 que leva, en nome dun dicionario, así como no problema axustou cinco. 328 00:14:56,790 --> 00:14:59,554 E antes de seguir, notar que eu non teño 329 00:14:59,554 --> 00:15:00,970 foi bastante escribindo as mesmas cousas. 330 00:15:00,970 --> 00:15:06,060 ¿Que é obviamente diferente en PHP sobre como declarar unha función contra C? 331 00:15:06,060 --> 00:15:06,616 Si. 332 00:15:06,616 --> 00:15:07,490 Audiencia: [inaudível] 333 00:15:07,490 --> 00:15:08,573 COLUMNA 1: Ningún tipo de retorno. 334 00:15:08,573 --> 00:15:12,350 E, de feito, este é o caso, PHP na medida en que está vagamente ingresaran, 335 00:15:12,350 --> 00:15:14,190 Tamén é un pouco desleixado nese sentido. 336 00:15:14,190 --> 00:15:17,680 Non especifica como o programador o que esta función devolve. 337 00:15:17,680 --> 00:15:20,490 Vostede tería que realmente ollar no código para descubrir iso. 338 00:15:20,490 --> 00:15:22,670 Ou ler os comentarios ou a documentación. 339 00:15:22,670 --> 00:15:24,870 Entón pros e contras de este tipo de decisións. 340 00:15:24,870 --> 00:15:26,750 Pero eu teño que dicir a palabra clave, a función. 341 00:15:26,750 --> 00:15:28,360 E cando aprendemos JavaScript nalgunhas semanas 342 00:15:28,360 --> 00:15:31,026 imos ver o mesmo de novo, pero é a mesma idea. 343 00:15:31,026 --> 00:15:34,220 O nome da función, o seu argumento ou argumentos ou a falta dela, e agora 344 00:15:34,220 --> 00:15:35,630 aquí é a posta en marcha. 345 00:15:35,630 --> 00:15:38,860 >> Entón eu vou cortar algúns cantos só para ser dramático por só un momento. 346 00:15:38,860 --> 00:15:40,485 Pero eu estou indo a ir adiante e dicir iso. 347 00:15:40,485 --> 00:15:44,890 Isto é como eu pode cargar un arquivo nun array. 348 00:15:44,890 --> 00:15:47,580 Hai unha función en PHP chamado arquivo. 349 00:15:47,580 --> 00:15:49,300 Vostede entrega-lo nome dun ficheiro. 350 00:15:49,300 --> 00:15:53,950 El entrégalle de volta unha matriz, dentro de que é cada liña do ficheiro. 351 00:15:53,950 --> 00:15:56,480 Desde cero, un, como máximo an menos 1 liñas. 352 00:15:56,480 --> 00:15:57,210 É iso aí, non? 353 00:15:57,210 --> 00:15:57,990 Non hai ningunha f lectura. 354 00:15:57,990 --> 00:15:58,826 Non hai ningunha f get s. 355 00:15:58,826 --> 00:15:59,700 Non hai por cento s. 356 00:15:59,700 --> 00:16:00,420 Non hai dores de cabeza. 357 00:16:00,420 --> 00:16:01,220 Non hai ningunha feof. 358 00:16:01,220 --> 00:16:03,950 Todo este material co que foi loitar quizais 359 00:16:03,950 --> 00:16:06,550 con p definir catro e cinco, vai. 360 00:16:06,550 --> 00:16:09,450 >> Entón, eu só ler estas liñas en o ficheiro e, a continuación, vostede sabe o que? 361 00:16:09,450 --> 00:16:15,510 Se quero iterado a estas palabras, Podo facer, para cada un liñas como liña. 362 00:16:15,510 --> 00:16:19,992 Lembre que esta era unha especie de intelixente camiño de iteración sobre unha matriz, índice 363 00:16:19,992 --> 00:16:25,090 polo índice, e en cada chamada iteración a liña actual, liña sinal de dólar. 364 00:16:25,090 --> 00:16:31,560 E aquí estou indo a ir e dicir táboa, soporte, liña, queda certo. 365 00:16:31,560 --> 00:16:35,880 >> Noutras palabras, é así que eu introducir na miña táboa hash en PHP. 366 00:16:35,880 --> 00:16:38,740 Digo táboa sinal de dólar, o que é a miña matriz asociativa que foi 367 00:16:38,740 --> 00:16:40,690 baleiro por a liña de código enriba. 368 00:16:40,690 --> 00:16:42,790 Entón eu índice para el non, utilizando un número, 369 00:16:42,790 --> 00:16:45,300 pero utilizando o literalmente palabra clave que me interesa. 370 00:16:45,300 --> 00:16:47,730 Quizais sexa a mazá ou pera ou bananas ou calquera outra cousa, 371 00:16:47,730 --> 00:16:51,645 pero especialmente Estou indexación para el coma se proposto anteriormente. 372 00:16:51,645 --> 00:16:53,770 Eu tomo o nome do meu matriz asociativa, e entón eu 373 00:16:53,770 --> 00:16:56,450 usar entre comiñas no corchetes cunha corda, 374 00:16:56,450 --> 00:16:58,490 en vez de un número real. 375 00:16:58,490 --> 00:17:00,250 >> E entón é iso. 376 00:17:00,250 --> 00:17:01,720 A función de carga está feito. 377 00:17:01,720 --> 00:17:05,119 Xa que loop for, eu coloque todo na táboa de hash. 378 00:17:05,119 --> 00:17:07,810 Agora pequeno aviso legal, hai unha algunhas cousas que eu non necesitan de corrección. 379 00:17:07,810 --> 00:17:10,030 E a versión Vou publicar en liña terá todos os matices, 380 00:17:10,030 --> 00:17:12,670 pero é na maior parte só será algunha comprobación de erros e algúns pequenos axustes. 381 00:17:12,670 --> 00:17:14,044 Pero iso é de feito a esencia do mesmo. 382 00:17:14,044 --> 00:17:16,750 Se eu agora quero aplicar a función chamada 383 00:17:16,750 --> 00:17:19,869 comprobar, que espera un palabra como seu argumento, 384 00:17:19,869 --> 00:17:22,099 como eu podería ir sobre como facelo? 385 00:17:22,099 --> 00:17:30,020 Ben, eu estou indo simplemente para dicir que, se dentro da miña mesa, a palabra de localización, 386 00:17:30,020 --> 00:17:30,652 Se está definido. 387 00:17:30,652 --> 00:17:32,360 Así, se hai é-- de feito, xa sabe o que? 388 00:17:32,360 --> 00:17:34,830 Vou facelo en un pouco de pseudocódigo. 389 00:17:34,830 --> 00:17:36,020 Pero a idea é a mesma. 390 00:17:36,020 --> 00:17:41,640 Se iso é igual a true, retorna true. 391 00:17:41,640 --> 00:17:43,890 Todo ben. 392 00:17:43,890 --> 00:17:46,851 Else-- podes tipo de ver onde este é going-- para voltar falso. 393 00:17:46,851 --> 00:17:47,350 Feito. 394 00:17:47,350 --> 00:17:49,640 Comprobación é feita. 395 00:17:49,640 --> 00:17:50,940 >> Pretty nice, non? 396 00:17:50,940 --> 00:17:52,560 E entón o que é iso realmente chegar? 397 00:17:52,560 --> 00:17:53,680 E iso tamén, eu cortar algúns cantos. 398 00:17:53,680 --> 00:17:56,020 Olhe a versión en liña para todas as lixeiras diferenzas. 399 00:17:56,020 --> 00:17:57,103 Pero esa é a esencia do mesmo. 400 00:17:57,103 --> 00:17:59,080 Índice no seu matriz asociativa, a.k.a. 401 00:17:59,080 --> 00:18:02,910 Táboa hash, ver se hai un valor alí, se se define como verdadeiro, e se é así, 402 00:18:02,910 --> 00:18:03,930 return true. 403 00:18:03,930 --> 00:18:05,819 Entón, nós temos reducidos toda a complexidade. 404 00:18:05,819 --> 00:18:07,110 Así, tipo de vento da mente, non? 405 00:18:07,110 --> 00:18:09,680 Non vou molestar remata-lo con descarga, porque en fact-- Oh, vostede sabe o que? 406 00:18:09,680 --> 00:18:11,620 Si, imos remata-lo con descarga. 407 00:18:11,620 --> 00:18:18,940 >> Descargar nunha táboa hash pode parecer como función de descarga, o retorno. 408 00:18:18,940 --> 00:18:19,930 OK así que é de descarga. 409 00:18:19,930 --> 00:18:21,350 Porque non hai nada para descargar, non? 410 00:18:21,350 --> 00:18:22,170 Non hai ningunha malloc. 411 00:18:22,170 --> 00:18:24,280 Non explicitamente pedir ao sistema operativo para calquera cousa. 412 00:18:24,280 --> 00:18:25,571 Eu só comecei a usar variables. 413 00:18:25,571 --> 00:18:30,510 E así que tamén é unha manifestación de características de linguaxes de alto nivel. 414 00:18:30,510 --> 00:18:32,940 Entón, de novo, a maior parte dese prazo temos lidado aquí 415 00:18:32,940 --> 00:18:34,280 con C. Super baixo nivel. 416 00:18:34,280 --> 00:18:35,980 Podes ver a memoria do ordenador. 417 00:18:35,980 --> 00:18:38,440 Pode tocar en calquera cousa que tanto na memoria RAM do seu ordenador, 418 00:18:38,440 --> 00:18:39,440 para mellor ou para peor. 419 00:18:39,440 --> 00:18:41,760 >> Ata aquí, imos a dar-se ese poder. 420 00:18:41,760 --> 00:18:44,730 Pero, meu Deus, mira como moito menos código que escribín. 421 00:18:44,730 --> 00:18:47,660 En realidade, se eu non estaba a falar e falando sobre a miña escritura, 422 00:18:47,660 --> 00:18:50,190 que sería feito con Neste exemplo hai cinco minutos. 423 00:18:50,190 --> 00:18:52,150 Entón o que é o prezo a ser pago? 424 00:18:52,150 --> 00:18:54,100 Ben, imos dar un ollo. 425 00:18:54,100 --> 00:18:55,340 Imos dar un ollo. 426 00:18:55,340 --> 00:18:59,340 Eu estou indo a ir adiante e executar CS50. 427 00:18:59,340 --> 00:19:02,160 Deixe-me ir primeiro en exemplos de hoxe onde 428 00:19:02,160 --> 00:19:03,970 Eu teño o directorio textos como antes. 429 00:19:03,970 --> 00:19:08,520 Eu estou indo a executar a solución que ven con problema axustou cinco chamado 430 00:19:08,520 --> 00:19:11,190 Speller, que está na conta de CS50. 431 00:19:11,190 --> 00:19:14,040 >> E eu estou indo a executa-lo en algo grande como a Biblia King James, 432 00:19:14,040 --> 00:19:16,547 só para que poidamos realmente poñer o solucións do persoal para a proba. 433 00:19:16,547 --> 00:19:19,130 Agora, ás veces, a Internet é un pouco máis lento, un pouco máis rápido, 434 00:19:19,130 --> 00:19:20,338 Pode levar un pouco para cambiar. 435 00:19:20,338 --> 00:19:23,730 Pero levou un total de .56 segundos corrixir a ortografía da King James 436 00:19:23,730 --> 00:19:25,150 Biblia usando a solución de equipo. 437 00:19:25,150 --> 00:19:25,620 Entón, moi bo. 438 00:19:25,620 --> 00:19:27,786 O seu pode ser moito máis lento, e iso é totalmente bo. 439 00:19:27,786 --> 00:19:30,090 Pero é correcto aquí. 440 00:19:30,090 --> 00:19:32,440 Entón esta é a solución equipo. 441 00:19:32,440 --> 00:19:34,785 Se eu entrar e limpar a versión de PHP. 442 00:19:34,785 --> 00:19:36,990 E eu vou facer algo como fermento espectáculo cousa. 443 00:19:36,990 --> 00:19:39,720 Nós imos incorporarse o código que escribín antes, polo que é perfectamente correcta. 444 00:19:39,720 --> 00:19:42,678 Porque o código que escribín non vai para ser perfectamente correcto só agora. 445 00:19:42,678 --> 00:19:47,310 Pero se eu executar a versión do PHP, o que eu teño que desistir de hoxe? 446 00:19:47,310 --> 00:19:49,980 Levei cinco minutos para aplicar p axustou cinco, eu afirmo. 447 00:19:49,980 --> 00:19:51,770 Cara a un prezo que eu pago? 448 00:19:51,770 --> 00:19:52,270 Si. 449 00:19:52,270 --> 00:19:52,937 >> Audiencia: Speed. 450 00:19:52,937 --> 00:19:53,645 COLUMNA 1: Speed. 451 00:19:53,645 --> 00:19:54,380 Que queres dicir? 452 00:19:54,380 --> 00:19:55,230 >> Audiencia: Vai levar máis tempo. 453 00:19:55,230 --> 00:19:55,660 >> COLUMNA 1: Todo ben. 454 00:19:55,660 --> 00:19:56,160 Vexamos. 455 00:19:56,160 --> 00:19:59,590 Vai levar máis tempo, non escribir, pero para executalo. 456 00:19:59,590 --> 00:20:00,090 Si. 457 00:20:00,090 --> 00:20:00,960 Entón, imos tentar iso. 458 00:20:00,960 --> 00:20:05,720 Entón aquí eu estou indo a ir adiante e facer PHP do Speller, e porque o ficheiro de 459 00:20:05,720 --> 00:20:06,360 chamado ortográfico. 460 00:20:06,360 --> 00:20:07,580 Entón eu non estou correndo o dicionario, recall, 461 00:20:07,580 --> 00:20:09,204 Estou executando o programa chamado ortográfico. 462 00:20:09,204 --> 00:20:12,450 Vou pasar na mesma arquivo, King James o quinto. 463 00:20:12,450 --> 00:20:14,377 Está voando. 464 00:20:14,377 --> 00:20:17,210 Este podería ser só velocidade a Internet, polo que non ler moito para iso. 465 00:20:17,210 --> 00:20:21,680 Pero se sente máis seguro. 466 00:20:21,680 --> 00:20:23,280 1,26 segundos. 467 00:20:23,280 --> 00:20:25,150 >> Agora que aínda é moi maldito rápido, non? 468 00:20:25,150 --> 00:20:28,140 E a única razón que me sentín como máis como tres ou catro, ou cinco 469 00:20:28,140 --> 00:20:30,515 segundo, iso é só porque Internet estaba sendo lento. 470 00:20:30,515 --> 00:20:33,980 O tempo de ordenador pasado foi de 1,26 segundo, contra Creo 0,56. 471 00:20:33,980 --> 00:20:35,880 Así, máis de dúas veces máis lenta. 472 00:20:35,880 --> 00:20:39,170 Agora que aínda é moi danado rápido, pero é unha manifestación 473 00:20:39,170 --> 00:20:40,860 de feito, ese prezo exacto. 474 00:20:40,860 --> 00:20:43,460 >> Porque estamos interpretando no código liña por liña, 475 00:20:43,460 --> 00:20:46,740 e este programa PHP é ler o meu top código para abaixo, de esquerda a dereita, 476 00:20:46,740 --> 00:20:47,940 ten que facer máis do pensamento. 477 00:20:47,940 --> 00:20:50,430 Ten que tipo de converter Lo dentro da propia 478 00:20:50,430 --> 00:20:53,464 correspondente á máquina código en tempo real, por así dicir, 479 00:20:53,464 --> 00:20:55,380 aínda que os mecanismos son un pouco diferentes. 480 00:20:55,380 --> 00:20:59,430 No canto de só para alimentar o Intel CPU os ceros e uns materias 481 00:20:59,430 --> 00:21:00,930 que entende nativamente. 482 00:21:00,930 --> 00:21:04,110 >> Entón, absolutamente, mans para abaixo, pagamos un prezo. 483 00:21:04,110 --> 00:21:09,120 E código escrito nunha linguaxe como PHP tende a ser máis lento. 484 00:21:09,120 --> 00:21:10,050 Pero o meu deus. 485 00:21:10,050 --> 00:21:12,740 Entón agora cando deletrear comprobar o meu arquivo, eu gastar un extra de 0,7 486 00:21:12,740 --> 00:21:17,280 ou ben segundos vs 20 horas para aplicar un corrector ortográfico máis rápido, non? 487 00:21:17,280 --> 00:21:18,397 É unha especie de un trade-off. 488 00:21:18,397 --> 00:21:20,980 E se está só comezando p definir cinco, pode non ser de 20 horas. 489 00:21:20,980 --> 00:21:22,188 Pode ser moito menos do que iso. 490 00:21:22,188 --> 00:21:23,600 Pero é un trade-off, de verdade. 491 00:21:23,600 --> 00:21:27,820 E se está executando o código realmente grande conxuntos de datos, ou mesmo en hardware máis antigo, 492 00:21:27,820 --> 00:21:32,650 estes tipos de diferenzas certamente pode sumar. 493 00:21:32,650 --> 00:21:34,880 >> Calquera preguntas ata agora? 494 00:21:34,880 --> 00:21:35,617 Si. 495 00:21:35,617 --> 00:21:36,492 >> Audiencia: [inaudível] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 COLUMNA 1: Sentímolo, pode vostede dicir iso unha vez? 498 00:21:39,978 --> 00:21:40,853 Audiencia: [inaudível] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 COLUMNA 1: Está dando-se tempo. 501 00:21:44,700 --> 00:21:45,283 Ben, entón si. 502 00:21:45,283 --> 00:21:47,322 Está a aforrar tempo, non ter que recompila-lo, 503 00:21:47,322 --> 00:21:48,530 se é iso que está preguntando. 504 00:21:48,530 --> 00:21:50,710 E, de feito, en CS50, a maioría dos programas, 505 00:21:50,710 --> 00:21:53,668 aínda que leve un pouco para escribir, son relativamente curto. 506 00:21:53,668 --> 00:21:56,860 Algunhas decenas, centos de liñas de código, e así eles compilar moi rapidamente. 507 00:21:56,860 --> 00:21:58,470 Pero cando comeza escribir programas grandes, 508 00:21:58,470 --> 00:22:01,511 como se é Microsoft ou se está Google e escribir realmente grandes programas 509 00:22:01,511 --> 00:22:05,360 en C, é C ++ ou similar compilado linguas, podería levar moitos segundos, 510 00:22:05,360 --> 00:22:08,577 ou mesmo minutos ou máis para compilar millóns de liñas de código. 511 00:22:08,577 --> 00:22:10,660 E hai tamén, que diferenza vai sumar. 512 00:22:10,660 --> 00:22:12,840 >> E, de feito, xa que hoxe transición, mesmo día 513 00:22:12,840 --> 00:22:15,910 hoxe, para programación web utilizando PHP, é 514 00:22:15,910 --> 00:22:18,460 indo atopalo só tanto máis agradable para escribir código 515 00:22:18,460 --> 00:22:21,501 cando non ten que facer estes estúpidos medidas como o cambio ao seu terminal 516 00:22:21,501 --> 00:22:24,202 fiestra, tipo de make Ola, re executalo, recargar a fiestra. 517 00:22:24,202 --> 00:22:25,910 Só tantos estúpido pasos que mecánicos 518 00:22:25,910 --> 00:22:28,480 só estar no camiño de facer o interesante, o traballo divertido. 519 00:22:28,480 --> 00:22:31,450 E, de feito nós xogar iso fóra con PHP. 520 00:22:31,450 --> 00:22:34,960 E podemos interactuar con máis rapidamente. 521 00:22:34,960 --> 00:22:35,495 Si. 522 00:22:35,495 --> 00:22:36,370 Audiencia: [inaudível] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 COLUMNA 1: Por suposto. 525 00:22:40,960 --> 00:22:42,876 Podo aclarar o que significa ser interpretado? 526 00:22:42,876 --> 00:22:45,870 Cando compilar unha linguaxe como C, que vai para abaixo 527 00:22:45,870 --> 00:22:48,140 como dixemos á máquina código, ceros e uns. 528 00:22:48,140 --> 00:22:51,860 E Intel decidiu anos, que certos patróns de ceros e uns 529 00:22:51,860 --> 00:22:56,220 representan diso, ou resta, ou impresión, ou outras operacións básicas. 530 00:22:56,220 --> 00:23:00,250 No mundo dunha linguaxe interpretada como PHP ou JavaScript, ou Python, 531 00:23:00,250 --> 00:23:03,120 ou Ruby, ou acios de outros, en vez alguén 532 00:23:03,120 --> 00:23:05,120 escribiu un interpreter-- neste caso 533 00:23:05,120 --> 00:23:09,770 É tamén chamado de PHP, o mesmo que o Nome do language-- que, esencialmente, 534 00:23:09,770 --> 00:23:13,840 ten un gran lazo nel que itera ao longo de todas as liñas de código 535 00:23:13,840 --> 00:23:18,170 que alimento-lo como entrada, como Ola dot PHP, ou dicionario dot PHP. 536 00:23:18,170 --> 00:23:21,760 >> E entón pode pensar na súa gran lazo como tendo unha serie de condicións. 537 00:23:21,760 --> 00:23:26,340 E esas condicións dicir, se o humano escribiu a palabra chave para, 538 00:23:26,340 --> 00:23:28,470 comezar a facer o seu código de novo e de novo. 539 00:23:28,470 --> 00:23:31,360 Ou se o humano ten escrito a liña de código, 540 00:23:31,360 --> 00:23:34,880 se, só a realizar a súa seguinte liña condicional. 541 00:23:34,880 --> 00:23:37,740 Entón, é realmente como interpretar nun sentido humano, liña 542 00:23:37,740 --> 00:23:39,660 por liña, e que só leva tempo. 543 00:23:39,660 --> 00:23:41,340 Leva sobrecarga. 544 00:23:41,340 --> 00:23:44,189 E o que é un preço-- boa question-- pagamos. 545 00:23:44,189 --> 00:23:46,480 Entón imos facer outra demo iso é un pouco máis dramático. 546 00:23:46,480 --> 00:23:51,160 Hai, eu diría, un estadio isto en 90% de probabilidade de fallar horrible, 547 00:23:51,160 --> 00:23:53,869 pero vai sorprender cun 10% de probabilidade. 548 00:23:53,869 --> 00:23:55,660 Así, cada ano nós tratamos para facelo, polo cal 549 00:23:55,660 --> 00:23:59,061 tentar escribir un programa que pasa por conxunto de problemas cero, para as que ten 550 00:23:59,061 --> 00:24:02,060 presentados os números de teléfono e un chea de outras informacións demográficas, 551 00:24:02,060 --> 00:24:06,030 e nós programaticamente enviarlle unha mensaxe de texto. 552 00:24:06,030 --> 00:24:08,540 E entón o teléfono de todos comeza a apitar ou vibrando, 553 00:24:08,540 --> 00:24:11,460 e é só sorprendente, porque ben, ollar para o que os ordenadores poden facer. 554 00:24:11,460 --> 00:24:13,840 >> Isto raramente funciona correctamente ao parecer, en gran parte, 555 00:24:13,840 --> 00:24:16,800 porque eu normalmente estar na lista negra polo Gmail ou algún outro servizo 556 00:24:16,800 --> 00:24:19,630 para realmente intentando facelo a escala. 557 00:24:19,630 --> 00:24:24,940 Pero divertido é tamén, sempre que Non temos todos aquí hoxe, 558 00:24:24,940 --> 00:24:27,690 diversión feito a última vez que o tempo tente iso hai dous anos, 559 00:24:27,690 --> 00:24:30,870 Eu creo que eu escribín un programa que se sentou nunha iteración de loop 560 00:24:30,870 --> 00:24:34,040 sobre todos os alumnos da clase, e cada un deles unha mensaxe de texto, 561 00:24:34,040 --> 00:24:37,534 e el dixo algo así como: por que non está na aula? 562 00:24:37,534 --> 00:24:39,170 Amor, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Non ten idea de cantos se desculparam e correos electrónicos especie de Dolores 564 00:24:42,580 --> 00:24:46,970 Recibín como resposta do n menos 100 persoas que non estaban aquí 565 00:24:46,970 --> 00:24:47,960 ese día. 566 00:24:47,960 --> 00:24:52,116 E aínda máis divertido, máis vergonzoso story-- vostede sabe, imos poñelas aí. 567 00:24:52,116 --> 00:24:53,740 É xa en vídeo de hai uns anos. 568 00:24:53,740 --> 00:24:56,810 Así, en breve vai verme escribir un loop for, en que 569 00:24:56,810 --> 00:25:00,640 é moi fácil escribir un erro que para circuíto, de tal xeito que por primeira vez 570 00:25:00,640 --> 00:25:02,800 a través do lazo, vostede enviar unha mensaxe de texto. 571 00:25:02,800 --> 00:25:06,190 >> A segunda vez a través do lazo I debería enviar unha mensaxe de texto, 572 00:25:06,190 --> 00:25:08,250 e, a continuación, máis un texto mensaxe, e un máis. 573 00:25:08,250 --> 00:25:11,490 Pero resulta que se comete un erro de dixitación Durante a programación, ás veces 574 00:25:11,490 --> 00:25:14,460 pode escribir programas que envían un mensaxe de texto, a continuación, dúas mensaxes de texto, 575 00:25:14,460 --> 00:25:18,742 a continuación, tres mensaxes de texto para todos que xa recibiu unha mensaxe de texto. 576 00:25:18,742 --> 00:25:21,450 E como vostede sabe, facer algo, algo, algo máis, 577 00:25:21,450 --> 00:25:25,910 algo, é grande o dun lote de mensaxes de texto, ou n ao cadrado, 578 00:25:25,910 --> 00:25:29,830 ou $ 0,10 nunha mensaxe de texto, US $ 20.000. 579 00:25:29,830 --> 00:25:33,700 >> Afortunadamente eu prema Control-C antes que aconteceu, pero eu teño que polo menos un 580 00:25:33,700 --> 00:25:37,550 dos seus antecesores $ 20 para o 200 algunhas mensaxes de texto estrañas que, 581 00:25:37,550 --> 00:25:40,450 non só foi para o seu teléfono, pero tamén era como un teléfono flip maior 582 00:25:40,450 --> 00:25:43,520 por iso quere empurrado para fóra do seu memoria calquera outro texto persoal 583 00:25:43,520 --> 00:25:45,930 mensaxe que tiña realmente chegar. 584 00:25:45,930 --> 00:25:49,250 Polo tanto, temos un obxectivo hoxe, para non facelo. 585 00:25:49,250 --> 00:25:50,620 Quizais activar o modo avión. 586 00:25:50,620 --> 00:25:51,120 Todo ben. 587 00:25:51,120 --> 00:25:56,590 Entón, imos entrar nun aquí callled-- programa 588 00:25:56,590 --> 00:25:59,060 que chamarei texto dot PHP. 589 00:25:59,060 --> 00:26:01,074 E con antelación, eu teño dous ficheiros aquí. 590 00:26:01,074 --> 00:26:06,030 Eu fixen un ficheiro a só persoal, que ten toda a información do persoal, todos os nomes 591 00:26:06,030 --> 00:26:07,260 na páxina web do curso. 592 00:26:07,260 --> 00:26:09,756 E entón por agora eu só poñer algúns números falsos 555-1212. 593 00:26:09,756 --> 00:26:11,380 Así, estes non sería realmente ir a calquera lugar. 594 00:26:11,380 --> 00:26:15,140 Pero teña en conta o interior deste arquivo CSV, que falamos brevemente antes 595 00:26:15,140 --> 00:26:16,540 no contexto ficheiro IO. 596 00:26:16,540 --> 00:26:18,730 >> ¿Que é un ficheiro CSV? 597 00:26:18,730 --> 00:26:19,970 Separados por comas variables. 598 00:26:19,970 --> 00:26:24,400 E iso é como unha especie de moi base de datos leve, se quere. 599 00:26:24,400 --> 00:26:28,650 Hai unha especie de tipo de catro columnas neste ficheiro, e non irregular, 600 00:26:28,650 --> 00:26:32,400 pero esencialmente as comas representan columnas no arquivo. 601 00:26:32,400 --> 00:26:35,400 A primeira columna é o TF ou o nome do CA. 602 00:26:35,400 --> 00:26:37,800 A segunda columna é o seu apelido. 603 00:26:37,800 --> 00:26:39,820 Terceira columna é o seu número de teléfono. 604 00:26:39,820 --> 00:26:44,760 E cuarta columna aparentemente é-- cuarta columna é, ao parecer, o que? 605 00:26:44,760 --> 00:26:45,870 OK, polo que é seu portador. 606 00:26:45,870 --> 00:26:47,180 Entón, Verizon, ou Sprint, ou que non. 607 00:26:47,180 --> 00:26:48,620 E se eu misspoke anteriormente, CSV. 608 00:26:48,620 --> 00:26:51,800 Valores separados por comas CSV é aquí. 609 00:26:51,800 --> 00:26:54,260 >> Entón, o que podo facer iso? 610 00:26:54,260 --> 00:26:56,940 Ben, este é só un arquivo de texto grande, e é unha especie de moito tempo, non? 611 00:26:56,940 --> 00:26:58,690 Como é que isto vai ser medio aburrido. 612 00:26:58,690 --> 00:27:03,510 E verifícase que, porén, que, se eu quere enviar unha mensaxe de texto para, imos 613 00:27:03,510 --> 00:27:05,180 Alex dicir aquí. 614 00:27:05,180 --> 00:27:09,690 Déixeme entrar no meu navegador e saír do modo de pantalla completa 615 00:27:09,690 --> 00:27:11,660 só así podo cambiar. 616 00:27:11,660 --> 00:27:20,280 Acontece, veremos si eu entrar aquí, e facer sesión no Gmail, todo ben. 617 00:27:20,280 --> 00:27:22,950 Non mire para esta parte. 618 00:27:22,950 --> 00:27:23,880 Así comezo a ver. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 está claro que o livestream pode aínda ver o que estou facendo. 621 00:27:28,800 --> 00:27:29,360 Todo ben. 622 00:27:29,360 --> 00:27:31,850 >> Entón aquí é só con Gmail O relato de John Harvard. 623 00:27:31,850 --> 00:27:34,000 Entón, se eu queira enviar unha mensaxe de texto para Alex, 624 00:27:34,000 --> 00:27:35,530 Podo, claro compoñer unha mensaxe. 625 00:27:35,530 --> 00:27:38,410 E ao parecer, e eu teño proba con Alex antes aquí, 626 00:27:38,410 --> 00:27:42,260 para que poida engadir un certo dominio nomear aos números de teléfono das persoas, 627 00:27:42,260 --> 00:27:45,850 porque non existe no mundo cousas chamado de SMS para enviar correo-e pasarelas. 628 00:27:45,850 --> 00:27:50,000 Que é un xeito elegante de dicir todo de nós que teñen teléfonos móbiles que 629 00:27:50,000 --> 00:27:53,200 teñen números de teléfono, por suposto, hai probablemente para a súa operadora, 630 00:27:53,200 --> 00:27:56,840 un sufixo como en certa Vtext.com para Verizon mensaxe de texto 631 00:27:56,840 --> 00:28:00,320 dot com, que pode engadir ao seu número de teléfono persoal propio, e, a continuación, 632 00:28:00,320 --> 00:28:03,540 vostede ou amigos, ou os seus pais poden texto que naquel enderezo particular. 633 00:28:03,540 --> 00:28:07,380 >> E Verizon ten un servidor, un correo-e servidor, que ao recibir este correo-e, 634 00:28:07,380 --> 00:28:11,180 mira para a parte de número e logo usa calquera maxia especial industria 635 00:28:11,180 --> 00:28:14,540 teñen que realmente envialo fóra sobre as ondas de radio para o seu teléfono móbil particular 636 00:28:14,540 --> 00:28:15,040 teléfono. 637 00:28:15,040 --> 00:28:18,030 Agora, iso é bo porque eu non fago realmente sabe como enviar unha mensaxe de texto 638 00:28:18,030 --> 00:28:20,460 ou escribir código aínda para o meu teléfono móbil, 639 00:28:20,460 --> 00:28:23,580 e pode facer exactamente isto para un proxecto final, pero de momento todo 640 00:28:23,580 --> 00:28:24,770 Eu teño é o meu portátil aquí. 641 00:28:24,770 --> 00:28:29,830 Entón, quero iterado que CSV arquivo, liña, por liña, por liña, por liña, 642 00:28:29,830 --> 00:28:35,160 coller cada un dos números de teléfono do persoal, e seu operador e programaticamente, 643 00:28:35,160 --> 00:28:39,770 concatenar, é dicir, conectar o teléfono número co nome de dominio axeitado 644 00:28:39,770 --> 00:28:40,820 e, a continuación, enviar un correo-e. 645 00:28:40,820 --> 00:28:41,940 >> Entón, iso é unha chea de pasos. 646 00:28:41,940 --> 00:28:45,530 E boa sorte de facelo en C. É un pesadelo dunha situación 647 00:28:45,530 --> 00:28:48,350 para abrir un ficheiro, lelo liña, por liña, por liña, como 648 00:28:48,350 --> 00:28:51,100 están a ver, ou pode ver en breve con xogo de problemas cinco, se non 649 00:28:51,100 --> 00:28:53,560 problema establecer catro, e logo para concatenar dinamicamente 650 00:28:53,560 --> 00:28:57,020 dúas cordas xuntos, porque en C, tomando dúas cordas e combina-los, 651 00:28:57,020 --> 00:29:00,900 o que fai minimamente cómpre facer máis probable? 652 00:29:00,900 --> 00:29:03,020 Debe declarar máis memoria, non? 653 00:29:03,020 --> 00:29:04,710 E preguntar, malloc, podo ter máis memoria? 654 00:29:04,710 --> 00:29:07,060 Polo tanto, podo poñer a metade deste aquí, a metade deste aquí. 655 00:29:07,060 --> 00:29:08,150 É só tantos pasos. 656 00:29:08,150 --> 00:29:10,310 E por ese punto que perdeu interese na pequena demostración estúpida 657 00:29:10,310 --> 00:29:11,851 onde fai teléfono Campá de todos. 658 00:29:11,851 --> 00:29:14,590 Imos facer este tipo de PHP estilo, polo cal só 659 00:29:14,590 --> 00:29:16,210 comezar a usar máis que pía da cociña. 660 00:29:16,210 --> 00:29:18,050 >> E as ideas son fundamentalmente o mesmo, 661 00:29:18,050 --> 00:29:20,710 pero nós non temos que preocupar-se moi moito sobre ese nivel inferior. 662 00:29:20,710 --> 00:29:22,950 Entón imos ver como eu podería vai facer sobre iso. 663 00:29:22,950 --> 00:29:26,664 E só así que eu non fago repetir os erros do pasado, 664 00:29:26,664 --> 00:29:28,330 Escribín algunhas notas para min aquí. 665 00:29:28,330 --> 00:29:31,070 E imos ver se consigo Camiñemos a través dalgunhas das etapas fundamentais, 666 00:29:31,070 --> 00:29:33,861 e, a continuación, por mor do tempo imos pode que algúns cantos cortados ao final. 667 00:29:33,861 --> 00:29:38,007 Eu estou indo a ir adiante e facer aberto soporte de PHP para comezar este ficheiro. 668 00:29:38,007 --> 00:29:39,590 E eu estou indo a ir adiante e facelo. 669 00:29:39,590 --> 00:29:41,490 Identificador de ficheiro, como vai en breve, en realidade, 670 00:29:41,490 --> 00:29:44,790 chama unha función chamada f aberto. 671 00:29:44,790 --> 00:29:46,280 E recorda se isto abre un arquivo. 672 00:29:46,280 --> 00:29:48,800 E a cita, pecha comiñas, r significa que, unha vez máis? 673 00:29:48,800 --> 00:29:49,800 Basta abrilo para lectura. 674 00:29:49,800 --> 00:29:51,210 Agora en p conxunto para, fixo iso. 675 00:29:51,210 --> 00:29:54,500 E tratar podería ser calquera cousa, fu, bar, bas, calquera nome de variable. 676 00:29:54,500 --> 00:29:57,470 Pero, xeralmente, un ordenador científico chamaría un ficheiro aberto, 677 00:29:57,470 --> 00:30:00,962 dándolle un identificador de ficheiro, algo para coller por así dicir. 678 00:30:00,962 --> 00:30:02,670 Eu só vou facer algúns verificación de erros. 679 00:30:02,670 --> 00:30:07,260 Polo tanto, se o identificador é falsa, así como no C, eu vou facer algo así como: 680 00:30:07,260 --> 00:30:09,545 non puido abrir o ficheiro, barra invertida n. 681 00:30:09,545 --> 00:30:11,420 E entón eu só vou para ir adiante e saír. 682 00:30:11,420 --> 00:30:14,340 E verifícase, en PHP, Non estou dentro dunha función. 683 00:30:14,340 --> 00:30:16,160 Non hai ningunha función principal aquí. 684 00:30:16,160 --> 00:30:17,450 Entón eu non volver, per se. 685 00:30:17,450 --> 00:30:18,120 Eu saír. 686 00:30:18,120 --> 00:30:19,619 Que é esencialmente o mesmo. 687 00:30:19,619 --> 00:30:22,510 E eu estou saíndo cun y probablemente. 688 00:30:22,510 --> 00:30:24,220 Unha significa só un erro de calquera tipo. 689 00:30:24,220 --> 00:30:25,580 É distinto de cero, polo que é un erro. 690 00:30:25,580 --> 00:30:30,220 >> Todo ben, entón se eu estou aquí agora no meu programa abrir o ficheiro. 691 00:30:30,220 --> 00:30:34,250 Eu estou indo a ir adiante e declarar unha matriz denominada enderezos, 692 00:30:34,250 --> 00:30:38,610 e en C Eu tería que saber o tamaño da matriz de antelación, non? 693 00:30:38,610 --> 00:30:41,910 Ou eu tería que declarar esta é un punteiro, e despois usar malloc. 694 00:30:41,910 --> 00:30:44,720 E, a continuación, cada vez que leo mediante outra liña no arquivo, 695 00:30:44,720 --> 00:30:46,620 Estou indo a necesidade de malloc máis memoria, malloc máis memoria. 696 00:30:46,620 --> 00:30:47,703 Isto é unha dor no pescozo. 697 00:30:47,703 --> 00:30:50,950 E, por sorte, PHP e Ruby, e Python e JavaScript, que 698 00:30:50,950 --> 00:30:53,880 vai medrar súas matrices para ti automaticamente. 699 00:30:53,880 --> 00:30:54,830 Non máis malloc. 700 00:30:54,830 --> 00:30:56,227 Non hai máis a xestión de memoria. 701 00:30:56,227 --> 00:30:57,560 O ordenador coida diso. 702 00:30:57,560 --> 00:31:00,330 Pero o prezo que paga. 703 00:31:00,330 --> 00:31:01,350 É un pouco máis lento. 704 00:31:01,350 --> 00:31:03,190 E para un programa como este nós non imos notar. 705 00:31:03,190 --> 00:31:04,720 Nós imos enviar 100 mensaxes de texto. 706 00:31:04,720 --> 00:31:06,136 Por exemplo, non vai sentir iso. 707 00:31:06,136 --> 00:31:08,430 É realmente só comeza a importa lingua da súa elección 708 00:31:08,430 --> 00:31:11,490 cando os seus datos ou dos seus programas obter moito considerable, 709 00:31:11,490 --> 00:31:14,120 como será o caso, de xeito máis co noso material baseado na web. 710 00:31:14,120 --> 00:31:15,450 >> Pero, por agora, imos seguir adiante. 711 00:31:15,450 --> 00:31:20,120 Mentres botan hai unha función en C chamada f obter CSV. 712 00:31:20,120 --> 00:31:24,570 Arquivo obter CSV, que leva un identificador de ficheiro como argumento, 713 00:31:24,570 --> 00:31:28,810 e el pasa, a continuación, liña por liña, por liña, para ler nunha fileira. 714 00:31:28,810 --> 00:31:30,964 El só le unha liña de texto do ficheiro. 715 00:31:30,964 --> 00:31:34,130 Pero o que é agradable sobre esta función, non só entregar-me unha liña de texto. 716 00:31:34,130 --> 00:31:37,320 Procura por esas vírgulas e analiza a liña. 717 00:31:37,320 --> 00:31:41,740 E para analizar a liña significa dividir que en determinados valores neste contexto. 718 00:31:41,740 --> 00:31:45,510 >> Noutras palabras, o sinal de dólar liña é unha variable que é 719 00:31:45,510 --> 00:31:47,010 me vai dar unha morea de índices. 720 00:31:47,010 --> 00:31:49,635 Este será o primeira columna na miña CSV. 721 00:31:49,635 --> 00:31:52,510 Este será o segundo columna, este vai ser o terceiro, 722 00:31:52,510 --> 00:31:53,968 e este será o cuarto. 723 00:31:53,968 --> 00:31:57,440 Porque recall, e non o Excel cooperar a última vez que fixen iso, 724 00:31:57,440 --> 00:32:03,350 pero se eu baixar equipo dot CSV. 725 00:32:03,350 --> 00:32:04,940 Uups, non renomear. 726 00:32:04,940 --> 00:32:09,120 Se eu baixar equipo dot CSV, e probe abrila, 727 00:32:09,120 --> 00:32:12,510 Eu xa registered-- oh I Non está a actualización Excel desde a última vez. 728 00:32:12,510 --> 00:32:15,880 Vai ver que, en equipo dot CSV, eu teño catro columnas. 729 00:32:15,880 --> 00:32:18,720 Entón, cando lin o primeira liña para Abby aquí, 730 00:32:18,720 --> 00:32:23,582 dólar sinal liña 0 é Abby, dólar sinal de liña é Lyons, 731 00:32:23,582 --> 00:32:27,740 dólar sinal liña dous é o número dela, e, a continuación, portadora do seu teléfono. 732 00:32:27,740 --> 00:32:28,410 >> Entón, iso é todo. 733 00:32:28,410 --> 00:32:30,740 E iso é bo, porque eu Non ten que descubrir agora fóra 734 00:32:30,740 --> 00:32:32,800 onde todos estes son realmente comas. 735 00:32:32,800 --> 00:32:35,300 Entón, eu estou indo a ir adiante e facelo, xa que a definición, 736 00:32:35,300 --> 00:32:38,960 Eu vou dicir que o seu nome é en soporte de liña cero, como prometido. 737 00:32:38,960 --> 00:32:41,150 E eu vou grab-- e de feito, xa sabe o que? 738 00:32:41,150 --> 00:32:42,780 Eu non estou indo a preocuparse o seu nome, neste caso. 739 00:32:42,780 --> 00:32:43,988 Vou mantelo simple. 740 00:32:43,988 --> 00:32:48,610 Eu vou facer o seu número é en soporte de liña dous, eu creo. 741 00:32:48,610 --> 00:32:50,510 E o seu portador estaba onde? 742 00:32:50,510 --> 00:32:53,405 Fileira de tres pisos ,. 743 00:32:53,405 --> 00:32:54,280 Entón, nada novo alí. 744 00:32:54,280 --> 00:32:56,770 É só de cero a indexación nunha matriz. 745 00:32:56,770 --> 00:32:58,760 >> E agora, eu vou facer o seguinte. 746 00:32:58,760 --> 00:33:03,930 O transportista é igual a igual a AT & T-- Eu só vou ter un loop-- 747 00:33:03,930 --> 00:33:06,790 Quero crear unha mensaxe enderezo que se parece con isto. 748 00:33:06,790 --> 00:33:12,320 Será 617-555-1212 no, o que é, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 é o que quero facer. 750 00:33:13,490 --> 00:33:15,260 Entón, como podo facer iso? 751 00:33:15,260 --> 00:33:16,730 Eu vou facer o seguinte. 752 00:33:16,730 --> 00:33:22,460 Enderezo será o seu número, e agora, deixe-me ir adiante e facelo. 753 00:33:22,460 --> 00:33:23,760 Esta é unha sintaxe descolados. 754 00:33:23,760 --> 00:33:27,250 Podería facer o truco por cento s, pero realmente pode só facelo. 755 00:33:27,250 --> 00:33:29,900 >> Entón iso é algo PHP, pero imos considerar o que estou facendo. 756 00:33:29,900 --> 00:33:31,630 Dólares asinar enderezo en á esquerda, só unha variable. 757 00:33:31,630 --> 00:33:32,300 Déame unha variable. 758 00:33:32,300 --> 00:33:33,390 Non teño para especificar o tipo. 759 00:33:33,390 --> 00:33:34,570 PHP vai descubrir iso. 760 00:33:34,570 --> 00:33:36,580 No lado dereito, cal é o tipo de datos 761 00:33:36,580 --> 00:33:38,399 desa cousa toda en da dereita? 762 00:33:38,399 --> 00:33:40,190 Parece que unha cadea, porque non hai dobre 763 00:33:40,190 --> 00:33:42,280 cita na extrema esquerda e extrema dereita. 764 00:33:42,280 --> 00:33:44,210 Agora hai algúns descolados nova sintaxe aquí. 765 00:33:44,210 --> 00:33:47,550 Hai as claves, eo número cifrão. 766 00:33:47,550 --> 00:33:52,860 Pero bótalle un adiviñar o que é que a sintaxe probablemente dicindo PHP para facer por min? 767 00:33:52,860 --> 00:33:53,360 Si. 768 00:33:53,360 --> 00:33:54,630 Só ten que introducir o valor alí. 769 00:33:54,630 --> 00:33:55,530 Polo tanto, non por cento s. 770 00:33:55,530 --> 00:33:58,160 Poderíamos usar impresión f ou s f impresión ou algo parecido, 771 00:33:58,160 --> 00:34:00,070 pero PHP e unha morea de linguaxes de alto nivel, 772 00:34:00,070 --> 00:34:03,070 vai ver que podería facer o mesmo funcionalmente, quizais 773 00:34:03,070 --> 00:34:04,019 seis xeitos diferentes. 774 00:34:04,019 --> 00:34:06,310 E así comeza a facer unha cuestión de deseño ou estilo. 775 00:34:06,310 --> 00:34:09,902 Polo tanto, esta é só unha forma ollar enigmático de dicir, me dea un enderezo de correo electrónico, 776 00:34:09,902 --> 00:34:12,110 pero o plugin en número entre esas claves. 777 00:34:12,110 --> 00:34:15,440 E as claves non vai acabar no enderezo final. 778 00:34:15,440 --> 00:34:18,010 >> Agora podemos ignorar algúns dos estas liñas por mor do tempo. 779 00:34:18,010 --> 00:34:21,210 Así, se un transportista é igual é igual a verHorizon-- whoops, 780 00:34:21,210 --> 00:34:24,989 Verizon-- quero facer algo moi semellante, onde a dirección está, 781 00:34:24,989 --> 00:34:27,569 Cita, pecha comiñas, número text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 E entón eu podo facer o mesmo tipo de cousa para o resto das operadoras. 784 00:34:35,050 --> 00:34:37,090 Pero eu vou facer punto, punto, punto de momento. 785 00:34:37,090 --> 00:34:43,050 E agora imos supor que Quero engadir matriz, empurrar. 786 00:34:43,050 --> 00:34:45,969 Quero engadir á matriz, chamados de enderezos. 787 00:34:45,969 --> 00:34:50,409 >> Este enderezo, é dicir como engadir algo a unha matriz en PHP. 788 00:34:50,409 --> 00:34:51,610 Non é preciso facer malloc. 789 00:34:51,610 --> 00:34:53,068 Non ten para cambiar o tamaño da matriz. 790 00:34:53,068 --> 00:34:54,259 Acaba de dicir matriz, pulo. 791 00:34:54,259 --> 00:34:57,300 O que quere para o conxunto push-- quere empurrar algo sobre? 792 00:34:57,300 --> 00:34:58,000 Enderezos. 793 00:34:58,000 --> 00:34:59,550 O que quere empurrar para enderezos? 794 00:34:59,550 --> 00:35:00,350 Enderezo. 795 00:35:00,350 --> 00:35:02,430 E, de feito, se realmente quere ser intelixente, 796 00:35:02,430 --> 00:35:05,610 un pouco de azucre sintático para iso, por así dicir, 797 00:35:05,610 --> 00:35:10,230 que significa só como pode facelo no o xeito máis bonita, sería para facelo. 798 00:35:10,230 --> 00:35:14,060 Isto tamén ten o efecto de crecemento a matriz de enderezos por un tamaño, 799 00:35:14,060 --> 00:35:17,130 e, a continuación, que plop adicional enderezo de correo-e para el. 800 00:35:17,130 --> 00:35:17,630 Si. 801 00:35:17,630 --> 00:35:19,730 >> Audiencia: [inaudível] 802 00:35:19,730 --> 00:35:22,520 >> COLUMNA 1: Un erro de dixitación no máis se-- oh, portador. 803 00:35:22,520 --> 00:35:23,070 Está ben. 804 00:35:23,070 --> 00:35:26,971 Tamén non vai gusta do meu fracaso en aplicar parte deste programa 805 00:35:26,971 --> 00:35:27,470 máis tarde. 806 00:35:27,470 --> 00:35:28,810 Pero grazas por captura. 807 00:35:28,810 --> 00:35:30,671 Un erro. 808 00:35:30,671 --> 00:35:31,170 Grazas. 809 00:35:31,170 --> 00:35:33,746 Queremos que este sexa Vtext.com. 810 00:35:33,746 --> 00:35:34,340 Si. 811 00:35:34,340 --> 00:35:34,839 Todo ben. 812 00:35:34,839 --> 00:35:36,330 Entón onde é que isto déixanos? 813 00:35:36,330 --> 00:35:38,224 Nós escribir o código para abrir o ficheiro. 814 00:35:38,224 --> 00:35:40,390 Temos un loop para iterado sobre as liñas no ficheiro. 815 00:35:40,390 --> 00:35:43,650 Temos código que engade ao meu matriz, un de cada vez, o correctamente 816 00:35:43,650 --> 00:35:44,790 enderezo de correo-e formatado. 817 00:35:44,790 --> 00:35:48,480 Entón, todo o que realmente falta é enviar un correo electrónico para cada unha destas persoas. 818 00:35:48,480 --> 00:35:52,830 >> Entón eu fun adiante e preparouse me deste xeito. 819 00:35:52,830 --> 00:35:59,580 O que eu vou facer aquí é-- e imos dalle saltar algún código real, 820 00:35:59,580 --> 00:36:00,620 que se parece con isto. 821 00:36:00,620 --> 00:36:02,950 Entón aquí é o pre-cocido versión que escribín anteriormente. 822 00:36:02,950 --> 00:36:04,700 E noten que eu rematar implantación de Sprint. 823 00:36:04,700 --> 00:36:06,130 Eu rematar de execución T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Eu rematar a implantación Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 E eu vou desculpar con antelación. 826 00:36:09,622 --> 00:36:12,080 Hai algunhas compañías que algúns alumnos da clase ten 827 00:36:12,080 --> 00:36:14,640 que eu non me incomoda enumerando na condición de aquí. 828 00:36:14,640 --> 00:36:16,015 Así, non todos os textos van saír. 829 00:36:16,015 --> 00:36:17,556 Pero imos ver o que máis eu teño que facer. 830 00:36:17,556 --> 00:36:19,660 Eu pechar o ficheiro, pode como en p definir catro. 831 00:36:19,660 --> 00:36:20,835 >> E esta é a nova sintaxe. 832 00:36:20,835 --> 00:36:22,710 E nós imos ver un pouco bit desta ao longo do tempo, 833 00:36:22,710 --> 00:36:24,450 especialmente con p definir sete e oito. 834 00:36:24,450 --> 00:36:28,140 Pero esta é a sintaxe para crear un tipo especial de estrutura. 835 00:36:28,140 --> 00:36:31,490 Acontece aí, é unha biblioteca que ven con PHP, chamado sistema de correo PHP. 836 00:36:31,490 --> 00:36:33,840 O seu propósito na vida é programaticamente enviar correos electrónicos. 837 00:36:33,840 --> 00:36:36,840 Código É alguén escribiu que fai máis doado para nós para enviar correos electrónicos, 838 00:36:36,840 --> 00:36:39,131 polo que non ten que manter indo e volvendo a Gmail, 839 00:36:39,131 --> 00:36:41,151 e colando en enderezos de correo electrónico das persoas. 840 00:36:41,151 --> 00:36:44,150 Hai unha morea de liñas aquí que, honestamente, eu medio que copiou 841 00:36:44,150 --> 00:36:45,660 e pegado a partir da documentación. 842 00:36:45,660 --> 00:36:47,409 E, de feito, se está Curioso, eu deixei todo 843 00:36:47,409 --> 00:36:50,550 das URLs da documentación no código que imos publicar máis tarde. 844 00:36:50,550 --> 00:36:52,360 E teña en conta que, entre as cousas que estou facendo 845 00:36:52,360 --> 00:36:55,710 é, eu estou dicindo a esta biblioteca, usar o servidor de Gmail, non? 846 00:36:55,710 --> 00:36:59,360 SMTP falamos brevemente sobre cando estaban en Yale sobre ser correo simple 847 00:36:59,360 --> 00:37:00,110 protocolo de transferencia. 848 00:37:00,110 --> 00:37:02,920 É que o protocolo servidores utilizados para enviar correo-e, 849 00:37:02,920 --> 00:37:05,150 e that's-- Gmail ten un deses. 850 00:37:05,150 --> 00:37:07,290 Un porto, que é o número de porto TCP. 851 00:37:07,290 --> 00:37:09,630 É bo se non vin 587 antes. 852 00:37:09,630 --> 00:37:11,420 Só sei que a partir da documentación. 853 00:37:11,420 --> 00:37:12,250 Aquí está o meu nome de usuario. 854 00:37:12,250 --> 00:37:13,670 Vou usar o bot CF50. 855 00:37:13,670 --> 00:37:16,690 E nun momento, eu estou indo só para escriba o contrasinal actual do bot. 856 00:37:16,690 --> 00:37:18,690 E, a continuación, para abaixo aquí, teña en conta o que permanece. 857 00:37:18,690 --> 00:37:22,840 >> Eu definir o meu enderezo de para ser bot no CS50.net. 858 00:37:22,840 --> 00:37:26,240 Eu creo que non vai se arrepender enviando unha mensaxe de texto para 800 persoas que 859 00:37:26,240 --> 00:37:30,590 di, sinto a súa falta, bot amor CS50, quizais para os que non podería facelo hoxe. 860 00:37:30,590 --> 00:37:33,160 E entón, en liña 76, o que fago? 861 00:37:33,160 --> 00:37:39,010 Este tipo de miradas como C. Polo tanto, para i é igual a 0, n equals-- agora contar é nova. 862 00:37:39,010 --> 00:37:42,077 Acontece que, se quere obter o número de cousas nunha matriz, 863 00:37:42,077 --> 00:37:43,660 non ten que lembrar máis. 864 00:37:43,660 --> 00:37:45,370 Pode só pedir a un función chamada conta, 865 00:37:45,370 --> 00:37:48,320 e el vai che dicir cantas enderezos están nesa matriz. 866 00:37:48,320 --> 00:37:53,210 >> E entón eu estou indo a engadir a dirección para o correo-e. 867 00:37:53,210 --> 00:37:55,090 E sei que iso usando a documentación. 868 00:37:55,090 --> 00:37:56,900 Hai unha función de dirección add. 869 00:37:56,900 --> 00:37:58,980 E agora conta que hai é unha peza de sintaxe. 870 00:37:58,980 --> 00:38:01,470 Xa vimos que antes en C. similares en espírito. 871 00:38:01,470 --> 00:38:04,100 Podes pensar en sinal de dólar O correo como a variable, o que é. 872 00:38:04,100 --> 00:38:08,100 Pero é unha estrutura en que non só propiedades, 873 00:38:08,100 --> 00:38:09,400 variables se quere. 874 00:38:09,400 --> 00:38:13,480 Pero parece que en PHP, que é unha programación orientada a obxecto 875 00:38:13,480 --> 00:38:16,520 linguaxe, como Java, se tomou APCS. 876 00:38:16,520 --> 00:38:21,420 >> Sinal de dólar e, se quere a-- Tamén ten funcións no interior do mesmo, 877 00:38:21,420 --> 00:38:22,380 ou métodos. 878 00:38:22,380 --> 00:38:24,720 Entón, iso quere dicir que sistema de correo especial PHP 879 00:38:24,720 --> 00:38:29,280 biblioteca, se eu teño unha variable do mesmo, se quero chamar unha función que 880 00:38:29,280 --> 00:38:31,559 que vén con biblioteca, para fins de hoxe, 881 00:38:31,559 --> 00:38:33,100 só sei que use a notación de frecha. 882 00:38:33,100 --> 00:38:34,150 Non hai ningunha notación de punto. 883 00:38:34,150 --> 00:38:35,220 É só a frecha. 884 00:38:35,220 --> 00:38:36,380 Pero iso non é un punteiro. 885 00:38:36,380 --> 00:38:38,680 É só prestado de sintaxe do C. 886 00:38:38,680 --> 00:38:43,620 Entón chame engadir a dirección dentro obxecto desta biblioteca ou variable. 887 00:38:43,620 --> 00:38:44,440 >> Todo ben. 888 00:38:44,440 --> 00:38:45,570 Esta é a liña máxica. 889 00:38:45,570 --> 00:38:46,740 É así que eu enviar un correo-e. 890 00:38:46,740 --> 00:38:50,040 Isto é o equivalente do oco Gmail, escribindo o para fóra, e bater enviar. 891 00:38:50,040 --> 00:38:54,870 Pero vai a enviar xa enviar correo-e a este enderezo, con este corpo, 892 00:38:54,870 --> 00:38:57,120 do bot CS50. 893 00:38:57,120 --> 00:38:58,710 E agora a liña de chave. 894 00:38:58,710 --> 00:39:03,130 Esta liña foi ausente en 2011 como cando penso que este último intentou. 895 00:39:03,130 --> 00:39:05,640 Esta liña hai, por suposto, limpa os enderezos. 896 00:39:05,640 --> 00:39:07,920 Entón, loxicamente, se eu non limpar a dirección 897 00:39:07,920 --> 00:39:11,740 despois de cada iteración, o primeiro enviar correo-e ou mensaxe de texto vai Alice, 898 00:39:11,740 --> 00:39:14,320 o segundo vai Alicia e Bob, o terceiro 899 00:39:14,320 --> 00:39:17,870 vai Alicia e Bob e Charlie, de aí o erro moi caro 900 00:39:17,870 --> 00:39:18,760 Eu fixen este ano. 901 00:39:18,760 --> 00:39:21,080 >> Entón imos ver. 902 00:39:21,080 --> 00:39:24,200 Hai algunha pregunta antes de enviar a todos un texto 903 00:39:24,200 --> 00:39:28,210 mensaxe con 10 por cento de probabilidade? 904 00:39:28,210 --> 00:39:28,940 Algunha pregunta? 905 00:39:28,940 --> 00:39:30,330 Todo ben. 906 00:39:30,330 --> 00:39:36,100 Imos me entrar aquí e cambio o contrasinal para o que debe funcionar, 907 00:39:36,100 --> 00:39:37,780 probablemente vai estar na lista negra do Gmail. 908 00:39:37,780 --> 00:39:39,821 Así, non poden ir todos a fóra, xa que probablemente 909 00:39:39,821 --> 00:39:42,960 Non me gusta de nós o envío de correos electrónicos 800 nun bucle dunha vez. 910 00:39:42,960 --> 00:39:45,140 Sempre que non se comportamento particularmente humano. 911 00:39:45,140 --> 00:39:47,460 >> Oh, eu vou cambiar algo. 912 00:39:47,460 --> 00:39:50,850 Alí enriba, eu estou indo a sent-- cambiar o ficheiro para estudantes dot CSV. 913 00:39:50,850 --> 00:39:55,420 E eu non vou abrir iso, pero esta é unha ficheiro CSV idéntica non 100 empregados, 914 00:39:55,420 --> 00:39:58,970 pero só 800 alumnos, de Harvard, Yale porque 915 00:39:58,970 --> 00:40:00,207 Ten outubro receso esta semana. 916 00:40:00,207 --> 00:40:03,290 E parece que un tipo de cousa idiota facendo ao texto todos eles por que 917 00:40:03,290 --> 00:40:04,750 eles non están en clase no vacacións. 918 00:40:04,750 --> 00:40:05,250 Está ben. 919 00:40:05,250 --> 00:40:08,310 Só estudantes de Harvard hoxe dentro dese ficheiro. 920 00:40:08,310 --> 00:40:12,320 E agora imos volver na miña fiestra de terminal. 921 00:40:12,320 --> 00:40:13,710 Estou un pouco nervioso. 922 00:40:13,710 --> 00:40:22,000 >> OK, entón agora eu estou indo a ir ao directorio, e dot texto PHP PHP. 923 00:40:22,000 --> 00:40:24,950 Como case un voluntario valente? 924 00:40:24,950 --> 00:40:26,690 Entón eu non quero iso para min. 925 00:40:26,690 --> 00:40:28,410 OK, imos cara arriba. 926 00:40:28,410 --> 00:40:29,162 Cal é o teu nome? 927 00:40:29,162 --> 00:40:29,662 MAYA: Maya. 928 00:40:29,662 --> 00:40:30,328 COLUMNA 1: Maya. 929 00:40:30,328 --> 00:40:31,610 Imos cara arriba, Maya. 930 00:40:31,610 --> 00:40:34,120 Todo ben. 931 00:40:34,120 --> 00:40:35,389 A ver se funciona. 932 00:40:35,389 --> 00:40:38,430 Engada o meu propio enderezo de correo-e no file-- meu propio número de teléfono no arquivo, 933 00:40:38,430 --> 00:40:40,110 de xeito que espero que eu vou conseguir un tamén. 934 00:40:40,110 --> 00:40:40,819 Encantado de coñecerte. 935 00:40:40,819 --> 00:40:41,443 MAYA: Do mesmo xeito. 936 00:40:41,443 --> 00:40:44,510 COLUMNA 1: Entón todo o que tes que facer é prema Intro para enviar 800 mensaxes de texto, 937 00:40:44,510 --> 00:40:45,466 se eu non romper. 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 Niza. 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 Pode levar un pouco, estatisticamente, ata chegar a un correo electrónico address-- 942 00:40:58,430 --> 00:41:00,573 unha mensaxe de texto que é no cuarto agora. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Imos relaxarse ​​e ver. 945 00:41:05,390 --> 00:41:06,940 >> Audiencia: [asubío] 946 00:41:06,940 --> 00:41:08,270 >> COLUMNA 1: Ah, si. 947 00:41:08,270 --> 00:41:09,230 >> Audiencia: Oh, Gotcha. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> COLUMNA 1: Para esta lazos é-- non é lento por mor do PHP. 950 00:41:19,180 --> 00:41:21,810 Esta é lento porque Gmail é nós de iguais e non 951 00:41:21,810 --> 00:41:25,170 deixar-nos enviar máis de como unha mensaxe por segundo. 952 00:41:25,170 --> 00:41:26,300 Algo? 953 00:41:26,300 --> 00:41:29,990 Iso foi unha cousa difícil para min para probar a casa con só eu e meu un teléfono, entón. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 É que espero que a partir do botón 956 00:41:41,111 --> 00:41:41,610 Si? 957 00:41:41,610 --> 00:41:42,110 Non? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Diga que si. 960 00:41:46,620 --> 00:41:47,479 Non? 961 00:41:47,479 --> 00:41:49,374 É de correo? 962 00:41:49,374 --> 00:41:49,874 Inábil. 963 00:41:49,874 --> 00:41:50,374 Aceptar. 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 Case seguro de que funciona aínda. 966 00:42:00,090 --> 00:42:00,910 Uh oh. 967 00:42:00,910 --> 00:42:03,190 Eles black-- oh, agarde un minuto. 968 00:42:03,190 --> 00:42:04,280 Oh, vostede sabe o que? 969 00:42:04,280 --> 00:42:06,100 Un momento por favor. 970 00:42:06,100 --> 00:42:07,802 Só Maya e I-- Mia, foi? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 COLUMNA 1: Maya, van sabe o que eu fixen de malo aquí. 973 00:42:12,110 --> 00:42:14,890 Oh, agarde un minuto. 974 00:42:14,890 --> 00:42:23,320 Eu creo que eu só enviou 100 mensaxes de texto para 555-1212. 975 00:42:23,320 --> 00:42:24,346 Espera. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Non podo gañar calquera ano. 978 00:42:29,270 --> 00:42:30,180 Aceptar. 979 00:42:30,180 --> 00:42:30,680 Maya? 980 00:42:30,680 --> 00:42:33,530 981 00:42:33,530 --> 00:42:36,219 Solucionar isto na post-produción. 982 00:42:36,219 --> 00:42:36,718 Dammit! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 Tras enderezo. 985 00:42:40,390 --> 00:42:41,301 OK, stand by. 986 00:42:41,301 --> 00:42:41,800 Desculpe. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 É doloroso cada ano. 989 00:42:47,080 --> 00:42:48,640 OK, un momento. 990 00:42:48,640 --> 00:42:50,530 Iso é bo. 991 00:42:50,530 --> 00:42:54,010 Vou no canto de facelo. 992 00:42:54,010 --> 00:42:55,470 De enderezos Impresión. 993 00:42:55,470 --> 00:42:56,030 OK, stand by. 994 00:42:56,030 --> 00:43:01,340 Imprimir enderezos, soporte i. 995 00:43:01,340 --> 00:43:02,710 Si, me gusta diso. 996 00:43:02,710 --> 00:43:10,220 Dólar sign-- OK eu vou explicar o que eu son facendo nun momento, despois de que eu realizar este. 997 00:43:10,220 --> 00:43:11,670 Cada ano. 998 00:43:11,670 --> 00:43:13,125 OK, aquí imos nós. 999 00:43:13,125 --> 00:43:15,750 Teño apenas-- e eu non quero para mostrar o número de teléfono de todos, 1000 00:43:15,750 --> 00:43:17,740 pero Maya pode confirmar cun aceno de cabeza, 1001 00:43:17,740 --> 00:43:20,800 que ve todo o mundo número de teléfono na clase 1002 00:43:20,800 --> 00:43:26,750 que vou copiar un programa chamado Gmail. 1003 00:43:26,750 --> 00:43:30,860 E se en Gmail, o que queremos dicir? 1004 00:43:30,860 --> 00:43:32,137 Bótote de menos. 1005 00:43:32,137 --> 00:43:33,220 Amor-- iso non é de min. 1006 00:43:33,220 --> 00:43:35,230 Eu aínda non chegou enviar aínda. 1007 00:43:35,230 --> 00:43:39,450 Entón, imos adiante e facer iso, se podo facer zoom. 1008 00:43:39,450 --> 00:43:40,300 Aceptar. 1009 00:43:40,300 --> 00:43:42,480 Entón, eu estou usando un programa chamado Gmail agora. 1010 00:43:42,480 --> 00:43:44,490 Se Maya, desexa prema no botón Enviar, 1011 00:43:44,490 --> 00:43:46,970 imos simular o que código debería ter feito. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Algo? 1014 00:43:55,254 --> 00:43:56,062 >> [Bip] 1015 00:43:56,062 --> 00:43:56,870 >> Audiencia: Yep. 1016 00:43:56,870 --> 00:43:58,030 >> COLUMNA 1: Si? 1017 00:43:58,030 --> 00:43:59,210 Salvación? 1018 00:43:59,210 --> 00:44:00,427 >> Audiencia: Yep. 1019 00:44:00,427 --> 00:44:01,260 COLUMNA 1: Miss ti. 1020 00:44:01,260 --> 00:44:02,718 E eu vou mandar para fóra o resto. 1021 00:44:02,718 --> 00:44:06,060 Mandei metade porque eu non creo que Gmail deixaría os pasar. 1022 00:44:06,060 --> 00:44:12,410 Entón lembre, hoxe é o día que aprendeu que podo usar Gmail. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 Iso foi horrible. 1025 00:44:15,810 --> 00:44:17,140 Un gran aplauso para Maya. 1026 00:44:17,140 --> 00:44:18,980 Grazas. 1027 00:44:18,980 --> 00:44:21,280 Todo ben, entón. 1028 00:44:21,280 --> 00:44:22,210 que 1029 00:44:22,210 --> 00:44:23,140 >> [Bip] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> Temos algúns sinais sonoros, si? 1032 00:44:26,580 --> 00:44:27,080 Todo ben. 1033 00:44:27,080 --> 00:44:30,590 Agora eu estou indo a obter 700 realmente correos electrónicos infelices costas dos compañeiros de clase. 1034 00:44:30,590 --> 00:44:32,400 Así, polo menos imos ver se isto valeu a pena. 1035 00:44:32,400 --> 00:44:33,300 Entón, o que deu mal? 1036 00:44:33,300 --> 00:44:35,300 Vou descubrir o que deu mal despois do feito, 1037 00:44:35,300 --> 00:44:38,340 pero basta ollar o quão doado que era para facer iso en PHP. 1038 00:44:38,340 --> 00:44:44,598 Entón o que podemos realmente facer agora que temos esta expresividade do PHP. 1039 00:44:44,598 --> 00:44:45,970 Isto foi-- que foi horrible. 1040 00:44:45,970 --> 00:44:46,480 Todo ben. 1041 00:44:46,480 --> 00:44:48,430 Entón era iso que debería saír. 1042 00:44:48,430 --> 00:44:52,770 Tanto me estaba probando esta mañá no meu teléfono, pantalla real do meu teléfono. 1043 00:44:52,770 --> 00:44:56,180 >> Pero agora imos considerar o por en realidade estamos introducindo 1044 00:44:56,180 --> 00:44:57,840 todas estas cousas en primeiro lugar. 1045 00:44:57,840 --> 00:45:01,625 Así, o obxectivo non é escribir estes programas que 1046 00:45:01,625 --> 00:45:03,250 son escritos na liña de comandos, non? 1047 00:45:03,250 --> 00:45:05,000 Entón eu escribín un simple Ola programa, escribín 1048 00:45:05,000 --> 00:45:09,155 un pequeno programa que fai condicionais, e usada unha liña de lectura e así por diante. 1049 00:45:09,155 --> 00:45:11,530 E, en teoría, só escribín un programa que enviou a fóra 1050 00:45:11,530 --> 00:45:14,290 800 mensaxes de texto, máis ou menos 800. 1051 00:45:14,290 --> 00:45:16,830 E que o programa era todo aínda corren na liña de comandos. 1052 00:45:16,830 --> 00:45:18,538 E iso, por suposto, é non a web, non? 1053 00:45:18,538 --> 00:45:22,160 A meta agora é comezar a utilizalo o que eu reivindico é unha máis doado de usar 1054 00:45:22,160 --> 00:45:24,720 lingua, atrévome a dicir que a máis linguaxe potente en termos 1055 00:45:24,720 --> 00:45:27,104 dos recursos que veñen con el, para comezar 1056 00:45:27,104 --> 00:45:29,850 escribindo código que xera páxinas web. 1057 00:45:29,850 --> 00:45:33,248 >> Así última vez e, a semana pasada, falamos de HTTP e HTML. 1058 00:45:33,248 --> 00:45:36,350 E o que é agradable sobre HTML é que non é só texto puro. 1059 00:45:36,350 --> 00:45:38,220 E o texto está certamente algo que pode 1060 00:45:38,220 --> 00:45:42,040 imprimir, literalmente, chamando a impresión f función ou a función de impresión. 1061 00:45:42,040 --> 00:45:46,160 E, de feito, é o que se PHP agora vai permitir facer. 1062 00:45:46,160 --> 00:45:48,610 Así, entre os exemplos ter no código fonte de hoxe, 1063 00:45:48,610 --> 00:45:51,610 Ademais a parte do código que engada alí enriba hai pouco, 1064 00:45:51,610 --> 00:45:55,440 temos programas como este, por exemplo. 1065 00:45:55,440 --> 00:45:58,760 Froshims, ou Freshman Intramural Sports, era, en realidade, 1066 00:45:58,760 --> 00:46:01,500 un dos primeiros extracurriculars Eu me envolvín con anos. 1067 00:46:01,500 --> 00:46:03,750 E o meu compañeiro de cuarto e eu, con algunhas outras nenos no campus, 1068 00:46:03,750 --> 00:46:05,280 usado para executar o programa froshims. 1069 00:46:05,280 --> 00:46:07,420 Estou recibindo miñas mensaxes de texto agora. 1070 00:46:07,420 --> 00:46:14,030 >> Agora, para que, de volta ao día, de xeito que este 1996 foi máis ou menos, houbo unha internet, 1071 00:46:14,030 --> 00:46:17,395 pero non había alí process-- houbo web para froshims. 1072 00:46:17,395 --> 00:46:20,270 E por iso, se quería para rexistrar a fútbol ou voleibol ou calquera outra cousa, 1073 00:46:20,270 --> 00:46:22,240 ía cubrir esa cousa chamado un anaco de papel, 1074 00:46:22,240 --> 00:46:25,060 e ía atravesar Harvard curro, e deslize- 1075 00:46:25,060 --> 00:46:29,230 no slot de correo do Proctor, que estaba en Wigglesworth, un dos dormitorios. 1076 00:46:29,230 --> 00:46:31,270 E iso que estaba rexistrado. 1077 00:46:31,270 --> 00:46:33,570 E el ou ela faría logo compoñer unha mensaxe para ti 1078 00:46:33,570 --> 00:46:36,514 manualmente, así como eu só fixen aquí con Maya, 1079 00:46:36,514 --> 00:46:38,930 e entón será confirmado como sendo rexistrado. 1080 00:46:38,930 --> 00:46:40,840 >> Polo tanto, este foi como baixo colgado froito, por así dicir. 1081 00:46:40,840 --> 00:46:42,930 Era unha especie de estúpido que que estabamos usando a este papel. 1082 00:46:42,930 --> 00:46:45,024 Eu quería que nós fósemos capaces só para ir dun sitio web, 1083 00:46:45,024 --> 00:46:47,440 ou ter os calouros ir nunha web, cadastre-se para o deporte, 1084 00:46:47,440 --> 00:46:50,398 e só automatizar unha morea desas cousas poñendo os seus nomes e correos electrónicos 1085 00:46:50,398 --> 00:46:51,850 etc. nunha base de datos. 1086 00:46:51,850 --> 00:46:56,510 E, de feito, a primeira versión do sitio web, usando HTML super feo, 1087 00:46:56,510 --> 00:46:58,195 pode ter coma algo así. 1088 00:46:58,195 --> 00:47:01,070 De feito, foi, irónicamente, máis embaraçoso bonito que esta de volta 1089 00:47:01,070 --> 00:47:01,460 entón. 1090 00:47:01,460 --> 00:47:02,890 Pero eu usei unha linguaxe de programación. 1091 00:47:02,890 --> 00:47:06,060 Non PHP, mais si chamado Perl, que é unha linguaxe máis vello, 1092 00:47:06,060 --> 00:47:07,251 pero moi semellante en espírito. 1093 00:47:07,251 --> 00:47:09,000 E eu só completamente ensinoulle a min mesmo. 1094 00:47:09,000 --> 00:47:12,208 E el me levou un tempo para descubrir iso, facendo moitas preguntas de amigos. 1095 00:47:12,208 --> 00:47:14,080 Pero as ideas alí eran exactamente o mesmo. 1096 00:47:14,080 --> 00:47:18,050 Porque o que o PHP foi realmente deseñado para non é o material de liña de comandos 1097 00:47:18,050 --> 00:47:20,450 nós só vai co, pero para programación web. 1098 00:47:20,450 --> 00:47:24,960 >> Realmente amarre na súa característica definida para a web, como segue. 1099 00:47:24,960 --> 00:47:26,370 Este é froshims. 1100 00:47:26,370 --> 00:47:28,720 E se eu quixese cadastre-se deste xeito, 1101 00:47:28,720 --> 00:47:30,930 iso é moi feo, certamente, pero deixe-me ir adiante 1102 00:47:30,930 --> 00:47:34,440 e ser un alumno menos cómodo, e calquera deporte para Matthews, 1103 00:47:34,440 --> 00:47:35,630 prema en Register. 1104 00:47:35,630 --> 00:47:39,780 O que quero ser capaz de facer é enviar información dun formulario, 1105 00:47:39,780 --> 00:47:42,400 non ao servidor de Google como fixemos a última vez, completamente 1106 00:47:42,400 --> 00:47:47,100 trampas usando o seu motor, I quero aplicar o meu propio código motor. 1107 00:47:47,100 --> 00:47:51,410 O que significa escribir PHP código que vive nunha URL 1108 00:47:51,410 --> 00:47:54,180 que os datos do formulario pode ser sometido. 1109 00:47:54,180 --> 00:47:57,510 >> E entón o seu código, escrito en PHP nun servidor, 1110 00:47:57,510 --> 00:47:59,400 Pode entón responder a esta entrada do usuario. 1111 00:47:59,400 --> 00:48:03,287 Como o seu nome, ou nivel de confort, ou dormitorio, e, a continuación, facer algo con el. 1112 00:48:03,287 --> 00:48:05,120 Neste caso, eu só estupidamente imprimiu 1113 00:48:05,120 --> 00:48:06,750 como texto, que non é tan fermosa. 1114 00:48:06,750 --> 00:48:09,590 Pero podería certamente imaxinar, se coñeces HTML, 1115 00:48:09,590 --> 00:48:13,010 e en breve vai saber como xerar HTML con impresión f, e de impresión, 1116 00:48:13,010 --> 00:48:16,500 e funcións similares, certamente pode xerar unha páxina web máis fermosa que di: 1117 00:48:16,500 --> 00:48:17,929 David hey, que agora está rexistrado. 1118 00:48:17,929 --> 00:48:20,220 Es menos cómodo estudante de Matthews, non? 1119 00:48:20,220 --> 00:48:23,880 >> Pode só usar unha morea de% ses, ou as claves e sinal de dólar 1120 00:48:23,880 --> 00:48:27,750 notación usei hai pouco, a xerar texto que é máis user friendly 1121 00:48:27,750 --> 00:48:28,567 que este. 1122 00:48:28,567 --> 00:48:30,150 Entón imos dar un ollo a un presente de arquivo. 1123 00:48:30,150 --> 00:48:34,666 Froshim de cero punto PHP parece con isto. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Cando recargar CS50 IDE, de cero froshim parece iso. 1126 00:48:43,500 --> 00:48:45,700 Este é nulo froshim punto PHP. 1127 00:48:45,700 --> 00:48:47,730 E o que observa sobre este ficheiro? 1128 00:48:47,730 --> 00:48:49,506 >> Audiencia: [inaudível] 1129 00:48:49,506 --> 00:48:50,922 COLUMNA 1: Sentímolo, un pouco máis alto? 1130 00:48:50,922 --> 00:48:53,250 Audiencia: [inaudível] É todo en HTML. 1131 00:48:53,250 --> 00:48:57,130 E, de feito, que é, porque o que é interesante sobre o PHP 1132 00:48:57,130 --> 00:48:58,880 é que foi deseñado ser, para mellor 1133 00:48:58,880 --> 00:49:02,110 ou para peor, entremeadas con código HTML. 1134 00:49:02,110 --> 00:49:05,850 E, de feito, aínda que esta arquivo, froshim de cero punto PHP 1135 00:49:05,850 --> 00:49:11,470 ten un comentario PHP superior del, é todo só HTML. 1136 00:49:11,470 --> 00:49:17,655 Pero por outra banda, se eu abrir, imos digamos, cadastre-se de cero punto PHP, que 1137 00:49:17,655 --> 00:49:19,550 só ten un gran comentario na parte superior. 1138 00:49:19,550 --> 00:49:26,500 Isto tamén parece case enteiramente como HTML, excepto para o que? 1139 00:49:26,500 --> 00:49:29,350 Liña, o que, 21 looks un pouco raro. 1140 00:49:29,350 --> 00:49:32,739 >> Pero repare en que eu estou entrando en modo PHP co soporte aberto signo de interrogación PHP. 1141 00:49:32,739 --> 00:49:33,780 Entón eu teño algunhas cousas. 1142 00:49:33,780 --> 00:49:36,724 E, a continuación, ao final da liña Teño case, signo de interrogación PHP. 1143 00:49:36,724 --> 00:49:38,390 E iso é o que quero dicir con mesturados. 1144 00:49:38,390 --> 00:49:41,910 Podes escribir HTML que acaba quere que o servidor para cuspir. 1145 00:49:41,910 --> 00:49:45,090 Pero se quere facer algo parcialmente dinámica través da páxina, 1146 00:49:45,090 --> 00:49:47,699 como introducir o meu nome ou dormitorio ou nivel de confort, 1147 00:49:47,699 --> 00:49:49,490 Podo usar unha función como a copia r, que é 1148 00:49:49,490 --> 00:49:52,492 imprimir recursiva, o que significa só imprimir esta variable, formato-lo 1149 00:49:52,492 --> 00:49:53,200 como sexa. 1150 00:49:53,200 --> 00:49:55,880 Non é realmente para propósitos humanos, é só 1151 00:49:55,880 --> 00:49:58,290 con fins de diagnóstico ou depuración. 1152 00:49:58,290 --> 00:49:59,460 Entón é así que eu fixen iso. 1153 00:49:59,460 --> 00:50:06,100 >> Se eu en vez de ir froshims dous dot PHP notar que a acción deste xeito 1154 00:50:06,100 --> 00:50:09,680 É un usuario de cero punto como PHP old-- o anterior era realmente. 1155 00:50:09,680 --> 00:50:11,222 Pero está rexistrado dous dot PHP. 1156 00:50:11,222 --> 00:50:13,680 Entón, imos ollar como este compórtase de forma un pouco diferente. 1157 00:50:13,680 --> 00:50:15,140 Se eu entrar en versión dous. 1158 00:50:15,140 --> 00:50:20,430 Aquí, se eu rexistrar como David, menos cómodo, de dormitorio de Mathews, 1159 00:50:20,430 --> 00:50:21,480 rexístrese se. 1160 00:50:21,480 --> 00:50:23,770 Entón, esta vez dixo, rexístranse, non realmente. 1161 00:50:23,770 --> 00:50:25,370 Imos ver o que eu fixen aquí. 1162 00:50:25,370 --> 00:50:29,760 Se eu ollar para rexistro de dous puntos PHP, iso ten algún código PHP. 1163 00:50:29,760 --> 00:50:35,410 É un pouco máis limpo, aínda aínda envolve un pouco longo nesta liña. 1164 00:50:35,410 --> 00:50:36,260 Observe aquí. 1165 00:50:36,260 --> 00:50:40,300 I imprimir meu tag HTML, miña marca de cabeza, miña tag title, a cabeza, o corpo. 1166 00:50:40,300 --> 00:50:45,410 >> E entón eu comezo a dicir cousas como que entre en modo de PHP. 1167 00:50:45,410 --> 00:50:48,540 E así que tag, soporte aberto PHP-- signo de interrogación PHP di, 1168 00:50:48,540 --> 00:50:53,460 hey, servidor, execute-- interpretar o seguinte material como PHP 1169 00:50:53,460 --> 00:50:55,030 ata ver a marca de fin. 1170 00:50:55,030 --> 00:50:58,590 E aínda que pode non saber calquera PHP outro que xa viu ata agora, 1171 00:50:58,590 --> 00:51:01,290 pode tipo de ler iso moi intuitivamente. 1172 00:51:01,290 --> 00:51:10,670 Se o nome está baleiro, ou o confort é baleiro, ou dormitorio está baleiro, o que fago? 1173 00:51:10,670 --> 00:51:12,830 O que digo para o usuario? 1174 00:51:12,830 --> 00:51:15,330 Ten que proporcionar o seu nome, confort, e aloxamento, e así por diante. 1175 00:51:15,330 --> 00:51:17,750 Senón, eu digo que é rexistrado, así, non realmente. 1176 00:51:17,750 --> 00:51:19,190 >> E eu non digo realmente porque non hai base de datos. 1177 00:51:19,190 --> 00:51:20,200 Eu non estou facendo nada cos datos. 1178 00:51:20,200 --> 00:51:22,408 Estou só xoga-la fóra con fins de demostración. 1179 00:51:22,408 --> 00:51:24,320 Agora eu tipo de aforrado ao longo da liña 22. 1180 00:51:24,320 --> 00:51:26,400 Hai máis de sintaxe alí, pero sinal de dólar 1181 00:51:26,400 --> 00:51:28,320 subliñado post é ben interesante. 1182 00:51:28,320 --> 00:51:30,300 E iso é o que é agradable sobre PHP. 1183 00:51:30,300 --> 00:51:35,610 No PHP ten o que son chamados algunhas variables globais super. 1184 00:51:35,610 --> 00:51:38,430 Son unha especie de aínda máis importante que as variables globais. 1185 00:51:38,430 --> 00:51:41,370 E estes, todo en maiúsculas como tal, ven con PHP. 1186 00:51:41,370 --> 00:51:44,550 Entón se ten un servidor que ten un servidor web instalado, como o Apache, 1187 00:51:44,550 --> 00:51:49,390 e instalar o idioma soporte para PHP, de súpeto 1188 00:51:49,390 --> 00:51:52,250 Pode comezar a usar estes super- variables globais no seu código. 1189 00:51:52,250 --> 00:51:54,330 >> E o que é agradable sobre PHP é que se só 1190 00:51:54,330 --> 00:51:57,540 gravar un arquivo que remata en dot PHP, poñelas nun servidor web, 1191 00:51:57,540 --> 00:52:01,260 e despois que enviar un formulario para el vía que marca a acción e unha etiqueta de formulario, 1192 00:52:01,260 --> 00:52:05,110 ese atributo acción no forma tag, PHP e web 1193 00:52:05,110 --> 00:52:09,360 figuras completamente fóra como coller todos estes pares de chaves de valor fóra 1194 00:52:09,360 --> 00:52:11,633 do URL como cuestión marca q é igual a gatos, 1195 00:52:11,633 --> 00:52:14,782 vai descubrir como q e gatos. 1196 00:52:14,782 --> 00:52:17,710 Se enviar unha foto ou un nome de usuario, ou un contrasinal para gustar Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP descubrirá para ti onde todos os datos é. 1198 00:52:21,360 --> 00:52:23,821 E ela só vai entregá- vostede unha matriz asociativa 1199 00:52:23,821 --> 00:52:27,560 chamado dólar post signo subliñado, ou sinal de dólar subliñar obter, 1200 00:52:27,560 --> 00:52:30,590 dependendo se está usando GET ou POST submissões. 1201 00:52:30,590 --> 00:52:32,950 E ela só vai entregar-lle unha variable global super, 1202 00:52:32,950 --> 00:52:37,254 de xeito que, se quere obter o nome que o usuario enviou vía web que 1203 00:52:37,254 --> 00:52:41,894 forma, literalmente só dicir o nome da variable global super, multimedia, 1204 00:52:41,894 --> 00:52:43,380 unquote, nome. 1205 00:52:43,380 --> 00:52:46,144 E citas, confort unquote, e multimedia, dormitorio pecha comiñas. 1206 00:52:46,144 --> 00:52:48,810 E nós imos ser capaces de facer isto e moito máis con PHP. 1207 00:52:48,810 --> 00:52:50,540 E aínda que este foi unha mirada turbilhão no que fai, 1208 00:52:50,540 --> 00:52:51,980 imos mergullar máis a próxima semana. 1209 00:52:51,980 --> 00:52:54,247 Imos introducir unha base de datos de xeito que é, en realidade, 1210 00:52:54,247 --> 00:52:56,816 comezará a aplicar based-- seu propio e-comercio 1211 00:52:56,816 --> 00:52:59,150 como o sitio web no tempo só unha semana. 1212 00:52:59,150 --> 00:53:02,750 Entón, imos ver se a próxima vez, e espero que teña as mensaxes de texto. 1213 00:53:02,750 --> 00:53:05,450 Bye. 1214 00:53:05,450 --> 00:53:06,950 >> [Música tocando] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [APERTURA DE PORTA] 1217 00:53:12,950 --> 00:53:14,475 >> COLUMNA 2: Hey. 1218 00:53:14,475 --> 00:53:15,350 COLUMNA 3: Cal é? 1219 00:53:15,350 --> 00:53:17,750 COLUMNA 2: O que está facendo? 1220 00:53:17,750 --> 00:53:19,850 COLUMNA 3: Traballo nun conxunto de problemas. 1221 00:53:19,850 --> 00:53:21,050 COLUMNA 2: Nice. 1222 00:53:21,050 --> 00:53:22,550 Cinco elevados. 1223 00:53:22,550 --> 00:53:23,150 >> [HIGH FIVE] 1224 00:53:23,150 --> 00:53:25,584 >> Que é-- uh, o que está facendo aquí? 1225 00:53:25,584 --> 00:53:26,750 COLUMNA 3: Só colgando para fóra. 1226 00:53:26,750 --> 00:53:28,134 Acaba de volver da academia. 1227 00:53:28,134 --> 00:53:30,050 Eu non podería axudar, pero notar cando gama fived, 1228 00:53:30,050 --> 00:53:32,450 que ten mans moi duro. 1229 00:53:32,450 --> 00:53:33,950 Ir á academia? 1230 00:53:33,950 --> 00:53:35,150 >> COLUMNA 2: Non. 1231 00:53:35,150 --> 00:53:36,650 Non. 1232 00:53:36,650 --> 00:53:38,450 >> COLUMNA 3: Cara, mira moi grande. 1233 00:53:38,450 --> 00:53:45,950 O que é malo, porque todo o mundo sabe 8-ball é o gran home no campus. 1234 00:53:45,950 --> 00:53:48,050 Alta e cinco. 1235 00:53:48,050 --> 00:53:49,550 >> COLUMNA 2: Uh, non. 1236 00:53:49,550 --> 00:53:50,450 Non, eu creo que eu son bo. 1237 00:53:50,450 --> 00:53:52,300 Eu creo que eu son bo. 1238 00:53:52,300 --> 00:53:54,097