1 00:00:00,000 --> 00:00:11,470 2 00:00:11,470 --> 00:00:12,764 >> 扬声器1:所有,欢迎回来。 3 00:00:12,764 --> 00:00:14,140 这是CS50。 4 00:00:14,140 --> 00:00:16,800 这是9周的开始。 5 00:00:16,800 --> 00:00:19,960 这是开始的其余部分 你的时间,我们在CS50 6 00:00:19,960 --> 00:00:23,170 现在,终于到Web转型 方面的课程,在那里你会 7 00:00:23,170 --> 00:00:26,200 发现很多的基本面, 我们已经出口数周 8 00:00:26,200 --> 00:00:29,270 还回来参观, 或困扰我们。 9 00:00:29,270 --> 00:00:33,440 但现在,你会发现,它是一个 为了要容易得多, 10 00:00:33,440 --> 00:00:36,540 完成某些任务和 解决某些问题 - 11 00:00:36,540 --> 00:00:41,050 以至于即使你认为 在他们的乐趣若干问题集 12 00:00:41,050 --> 00:00:44,200 自己的路,我认为你会发现 P设定7,第8,然后, 13 00:00:44,200 --> 00:00:47,990 最终,最终的项目将 更可喜的,因为你会 14 00:00:47,990 --> 00:00:51,830 发现我们开始想当然 现在喜欢的东西的内存管理, 15 00:00:51,830 --> 00:00:54,190 指针,这是怎么回事 引擎盖下。 16 00:00:54,190 --> 00:00:57,310 再次,专题,所有整个 学期一直是这种分层 17 00:00:57,310 --> 00:00:58,030 和层次感。 18 00:00:58,030 --> 00:01:00,530 而现在我们排序 在这里,站在 19 00:01:00,530 --> 00:01:01,930 过去几周的肩膀。 20 00:01:01,930 --> 00:01:05,360 >> 现在,回想最后一次 谈到如何在互联网上工作。 21 00:01:05,360 --> 00:01:08,120 这也许是一个 过于简单,但要记住, 22 00:01:08,120 --> 00:01:12,960 在世界上的每一台电脑都有一个IP 解决,虽然这是一个有点 23 00:01:12,960 --> 00:01:14,570 仍然过于简单化。 24 00:01:14,570 --> 00:01:18,180 这些地址被用来唯一 识别机,这样 25 00:01:18,180 --> 00:01:22,010 当您发送信息,或包, 可以这么说,他们可以有一个原点 26 00:01:22,010 --> 00:01:24,000 地址和目的地址。 27 00:01:24,000 --> 00:01:27,830 而那些可以使用相同的IP地址 既为好,也为邪恶, 28 00:01:27,830 --> 00:01:29,270 跟踪你的,例如。 29 00:01:29,270 --> 00:01:32,200 事实上,每一个你用笔记本电脑 现在打开,或在你的手机 30 00:01:32,200 --> 00:01:35,070 口袋里,都有一个IP地址 哈佛的网络。 31 00:01:35,070 --> 00:01:39,120 它不是那么困难 关联,谁和你 32 00:01:39,120 --> 00:01:40,180 这些天。 33 00:01:40,180 --> 00:01:42,090 但更多的,也许 在未来。 34 00:01:42,090 --> 00:01:46,510 >> 现在,我想我会带回一些 [回忆?提升?]给你 35 00:01:46,510 --> 00:01:49,360 你一个展示的另一个剪辑 可能会发现熟悉。 36 00:01:49,360 --> 00:01:52,710 如果我们可以把灯光调暗 短短的几秒钟。 37 00:01:52,710 --> 00:01:53,960 显示数字追凶。 38 00:01:53,960 --> 00:01:57,510 39 00:01:57,510 --> 00:02:00,540 >> 扬声器2:这是一个的32位IPP4地址。 40 00:02:00,540 --> 00:02:01,610 >> 扬声器3:IPP,在互联网? 41 00:02:01,610 --> 00:02:02,968 >> 扬声器2:专用网络。 42 00:02:02,968 --> 00:02:04,960 阿弥陀佛的私人网络。 43 00:02:04,960 --> 00:02:16,930 44 00:02:16,930 --> 00:02:19,602 她是如此惊人。 45 00:02:19,602 --> 00:02:21,030 >> 扬声器3:来吧,查理。 46 00:02:21,030 --> 00:02:21,490 >> 扬声器2:这是。 47 00:02:21,490 --> 00:02:22,470 镜子的IP地址。 48 00:02:22,470 --> 00:02:27,680 她让我们看什么 她在做实时的。 49 00:02:27,680 --> 00:02:30,930 >> 扬声器1:OK,这样的几件事情 不对的图片。 50 00:02:30,930 --> 00:02:32,920 所以,这个人是可以接受的, 这实际上是 51 00:02:32,920 --> 00:02:34,400 不是一个有效的IP地址。 52 00:02:34,400 --> 00:02:38,190 一个有效的IP地址必须是数字 形式w.x.y.z的,其中每个 53 00:02:38,190 --> 00:02:40,000 这些信件是0到255。 54 00:02:40,000 --> 00:02:42,330 但是,这很好,因为就像 电影里他们假的电话号码, 55 00:02:42,330 --> 00:02:43,520 他们伪造的IP地址。 56 00:02:43,520 --> 00:02:45,230 其实你不打真正的服务器。 57 00:02:45,230 --> 00:02:46,760 >> 但是,你要知道,这是一个浏览器。 58 00:02:46,760 --> 00:02:50,760 浏览器不启动输出 像这样的计算机代码。 59 00:02:50,760 --> 00:02:54,230 如果我们看得更深,注意 ,他们所看到的语言 60 00:02:54,230 --> 00:02:57,040 屏幕上是一种语言叫 目的C,这是语言 61 00:02:57,040 --> 00:02:59,520 iPhone应用程序被写入, 特别是那些涉及 62 00:02:59,520 --> 00:03:03,540 蜡笔,你可以看到从 这里的源代码。 63 00:03:03,540 --> 00:03:06,600 64 00:03:06,600 --> 00:03:07,560 >> OK,我认为这非常可笑。 65 00:03:07,560 --> 00:03:12,240 因此,这个代码片段绝对 不管这无关 66 00:03:12,240 --> 00:03:13,940 特别是情节。 67 00:03:13,940 --> 00:03:17,590 所以这个笑话是一种对乡亲 服用此授予。 68 00:03:17,590 --> 00:03:20,220 但是这还不是全部,很难得到 这些技术细节的权利。 69 00:03:20,220 --> 00:03:21,980 我会鼓励你。 70 00:03:21,980 --> 00:03:25,530 而实际上,50很可能糟蹋 很多的电视节目和电影,或者你 71 00:03:25,530 --> 00:03:27,320 因为你会发现,它只是 不可能的,他们是怎么 72 00:03:27,320 --> 00:03:28,630 在屏幕上做。 73 00:03:28,630 --> 00:03:31,750 但事实上,这是代码 可能会看到它在iPhone应用程序 74 00:03:31,750 --> 00:03:33,640 或Mac OS的应用程序。 75 00:03:33,640 --> 00:03:35,685 它什么都没有 与安全。 76 00:03:35,685 --> 00:03:38,610 因此,保持眼睛出更多的 如此有趣之类的东西。 77 00:03:38,610 --> 00:03:42,720 >> 但是今天,我们开始潜水真的 深入到语言一整套。 78 00:03:42,720 --> 00:03:45,410 事实上,总体 这个部分的外卖 79 00:03:45,410 --> 00:03:51,815 当然不是学习如何编程 在PHP中,没有学习SQL本身,而不是 80 00:03:51,815 --> 00:03:58,100 学习JavaScript本身,而是 教自己如何教 81 00:03:58,100 --> 00:04:02,030 自己新的语言,因为,事实上, 我们现在开始采取 82 00:04:02,030 --> 00:04:06,020 训练车轮关闭,因此后 当然年底,你不要指望一个20 83 00:04:06,020 --> 00:04:08,890 页的规范来告诉你如何 实现一些程序。 84 00:04:08,890 --> 00:04:12,970 你有足够的成分在你的 头脑,你的工具和足够的工具 85 00:04:12,970 --> 00:04:15,750 套件,开始建设 感兴趣的问题的解决方案 86 00:04:15,750 --> 00:04:19,130 一些学生组,对于一些 研究项目,或者什么 87 00:04:19,130 --> 00:04:20,140 你的兴趣。 88 00:04:20,140 --> 00:04:24,150 >> 为此,记得,这是 图片中我们把它最后一次。 89 00:04:24,150 --> 00:04:27,620 这是两台电脑,客户端和 断绝,彼此交谈。 90 00:04:27,620 --> 00:04:31,130 的协议,语言,所以 说话,那这两台计算机发生 91 00:04:31,130 --> 00:04:33,220 发言被称为HTTP。 92 00:04:33,220 --> 00:04:37,730 而这仅仅是所使用的协议 计算机传输信息 93 00:04:37,730 --> 00:04:38,710 万维网。 94 00:04:38,710 --> 00:04:41,770 网页,当然,这只是一个服务 顶部的运行 95 00:04:41,770 --> 00:04:43,000 所谓的互联网。 96 00:04:43,000 --> 00:04:48,660 什么提供其他服务 顶在互联网上这些天? 97 00:04:48,660 --> 00:04:51,600 其他一些协议或 - 那是什么? 98 00:04:51,600 --> 00:04:52,300 >> 观众:FTP。 99 00:04:52,300 --> 00:04:52,790 >> 扬声器1:FTP。 100 00:04:52,790 --> 00:04:54,630 因此,文件传输协议是另一回事。 101 00:04:54,630 --> 00:04:56,050 大多数人可能都没有使用过它。 102 00:04:56,050 --> 00:04:58,830 但你们中的大多数可能已经使用 之类的东西Gchat,或即时 103 00:04:58,830 --> 00:05:00,970 消息更一般地, 当然电子邮件。 104 00:05:00,970 --> 00:05:04,470 而这些,也都是上运行的服务 在互联网的顶部,因为在 105 00:05:04,470 --> 00:05:08,180 一天结束的时候,互联网本身 真的只是得到数据从A点到 106 00:05:08,180 --> 00:05:12,480 B点,它使用了大量的 颗粒本身,其中一个或两个 107 00:05:12,480 --> 00:05:17,340 的他们最一般称为TCP / IP, 这就是说,一台计算机上 108 00:05:17,340 --> 00:05:19,960 互联网实际上可以做 不同的东西,电子邮件, 109 00:05:19,960 --> 00:05:20,980 和网页,等等。 110 00:05:20,980 --> 00:05:22,220 谷歌做了很多这方面。 111 00:05:22,220 --> 00:05:26,310 那么,如何是那些独特的服务 确定,我们说,在电脑上 112 00:05:26,310 --> 00:05:29,080 实际上可能会做 多重的东西? 113 00:05:29,080 --> 00:05:29,860 >> 端口号。 114 00:05:29,860 --> 00:05:34,180 而这些都只是人类任意 约定如80网络,443是 115 00:05:34,180 --> 00:05:36,580 加密网络,25是电子邮件。 116 00:05:36,580 --> 00:05:38,230 有一个串他人。 117 00:05:38,230 --> 00:05:41,860 这些数字只是包含在 这些数据包的信息,这些 118 00:05:41,860 --> 00:05:46,230 虚拟信封,实际上 包含了一个请求或响应。 119 00:05:46,230 --> 00:05:51,300 >> 所以,当你回来的响应 网页,通常情况下,你不会看到任何 120 00:05:51,300 --> 00:05:54,780 无论在任何数字 响应的状态码。 121 00:05:54,780 --> 00:05:56,770 其实你不看 内部运作的 122 00:05:56,770 --> 00:05:58,090 回来的数据包。 123 00:05:58,090 --> 00:05:59,860 但200确实意味着确定。 124 00:05:59,860 --> 00:06:01,530 这意味着一切都很好。 125 00:06:01,530 --> 00:06:02,870 你可能已经看到了一堆这些。 126 00:06:02,870 --> 00:06:05,710 这可能是最常见的 你见过在网络上? 127 00:06:05,710 --> 00:06:05,980 >> 404。 128 00:06:05,980 --> 00:06:07,330 它只是意味着找不到文件。 129 00:06:07,330 --> 00:06:08,270 这意味着有人搞砸了。 130 00:06:08,270 --> 00:06:11,450 你输错网址,或者是有人 给你一个别人做的 131 00:06:11,450 --> 00:06:15,100 无效的URL,或者删除了 文件和URL仍然是 132 00:06:15,100 --> 00:06:16,130 被人们所使用。 133 00:06:16,130 --> 00:06:19,670 因此,任何数量的原因可以解释 为什么文件没有找到。 134 00:06:19,670 --> 00:06:22,990 你会看到,在未来几周内, 这些错误代码,你会 135 00:06:22,990 --> 00:06:24,195 趁他们中的一些。 136 00:06:24,195 --> 00:06:25,760 最糟糕的是500。 137 00:06:25,760 --> 00:06:29,820 如果你得到一个500错误代码,您已经 写的,认为那是那种 138 00:06:29,820 --> 00:06:33,290 模拟赛格中的故障 Web编程的世界。 139 00:06:33,290 --> 00:06:34,560 不,这是相当可怕的。 140 00:06:34,560 --> 00:06:36,660 但它只是意味着,在某处, 你搞砸了。 141 00:06:36,660 --> 00:06:38,260 所以那些期待。 142 00:06:38,260 --> 00:06:39,910 >> 但是,让我们来看看,如果我们能 看到这些上下文中。 143 00:06:39,910 --> 00:06:43,460 让我去这里的浏览器 并做到以下几点。 144 00:06:43,460 --> 00:06:45,710 因此,这是Chrome浏览器,这恰好 安装在产品中。 145 00:06:45,710 --> 00:06:49,410 但几乎每一个浏览器,这些天有 一些相同的功能。 146 00:06:49,410 --> 00:06:52,610 我要去Chrome的菜单, 去工具,而且我要去 147 00:06:52,610 --> 00:06:53,990 开发工具。 148 00:06:53,990 --> 00:06:57,040 你会看到,这个小面板 打开窗口的底部。 149 00:06:57,040 --> 00:07:00,190 另一种快捷方式,说实话,我 自己平时使用右键单击 150 00:07:00,190 --> 00:07:04,370 或控制点击在网络上的任何地方 页面,只是去检查元素。 151 00:07:04,370 --> 00:07:07,440 而且,不仅将打开 这有你。 152 00:07:07,440 --> 00:07:10,230 它也将打开,​​具体而言, 元素部分 153 00:07:10,230 --> 00:07:11,430 左手侧。 154 00:07:11,430 --> 00:07:12,460 >> 所以,我们当然看到谷歌。 155 00:07:12,460 --> 00:07:13,930 今天他们改变他们的标志。 156 00:07:13,930 --> 00:07:20,200 但是,如果我在这里向下滚动,请注意 根据元素,你看 157 00:07:20,200 --> 00:07:23,460 什么叫做HTML超文本标记 语言,这是语言 158 00:07:23,460 --> 00:07:26,000 ,这和所有的网页, 真的,编写的。 159 00:07:26,000 --> 00:07:28,950 但实际上它是格式化 我们这么多可读性 160 00:07:28,950 --> 00:07:29,970 比正常的。 161 00:07:29,970 --> 00:07:34,810 事实上,如果我缩小,我反而 只需右键单击或控制点击 162 00:07:34,810 --> 00:07:39,630 在页面上点击,然后去查看 页面源代码,这是字面意思是什么 163 00:07:39,630 --> 00:07:42,150 谷歌向下发送到我的浏览器。 164 00:07:42,150 --> 00:07:46,480 >> 于是某人或某些人写的 Google.com使用这个源代码。 165 00:07:46,480 --> 00:07:47,790 其中大部分是没有的HTML。 166 00:07:47,790 --> 00:07:49,340 它实际上是一个语言,称为 JavaScript中,这 167 00:07:49,340 --> 00:07:50,880 我们还会回来上周三。 168 00:07:50,880 --> 00:07:55,580 但是,Chrome和每一个浏览器 可以为我们做什么,是那种见 169 00:07:55,580 --> 00:07:59,610 过去所有的分心 疯狂的语法,然后重新插入空白 170 00:07:59,610 --> 00:08:02,940 对我们来说,甚至语法高亮, 或上色为我们的事情。 171 00:08:02,940 --> 00:08:06,470 所以你会发现,这些所谓的 内置了浏览器的开发者工具 172 00:08:06,470 --> 00:08:10,830 这样会让你的生活,所以更容易 因为你可以探索,通过此菜单 173 00:08:10,830 --> 00:08:13,940 接口,正是底层 源代码是为 174 00:08:13,940 --> 00:08:15,750 在互联网上的任何页面。 175 00:08:15,750 --> 00:08:19,070 事实上,这是一个最 有效的方法来学习如何做 176 00:08:19,070 --> 00:08:22,860 新的东西,至少如果页面 也不是那么复杂压倒, 177 00:08:22,860 --> 00:08:26,700 开始戳它周围的HTML,看 在其所谓的CSS,我们还会回来 178 00:08:26,700 --> 00:08:30,310 一个位为好,得到 的那个程序员如何理解 179 00:08:30,310 --> 00:08:33,480 某些特定的实施 功能的页面。 180 00:08:33,480 --> 00:08:36,530 >> 但技术上更有趣的权利 现在还会是这样。 181 00:08:36,530 --> 00:08:39,429 如果我去“网络”选项卡, 现在,让我们清除此。 182 00:08:39,429 --> 00:08:43,429 我要点击小 在这里交叉符号,然后 183 00:08:43,429 --> 00:08:45,630 转到另一个网站。 184 00:08:45,630 --> 00:08:48,430 我只是要输入 在Facebook.com。 185 00:08:48,430 --> 00:08:51,940 没有HTTPS,HTTP,没有任何WWW。 186 00:08:51,940 --> 00:08:53,850 让我们真正看到这里发生了什么。 187 00:08:53,850 --> 00:08:55,030 >> 回车键。 188 00:08:55,030 --> 00:08:58,480 现在可以看到一大堆东西 出现在这个底部面板, 189 00:08:58,480 --> 00:09:00,285 除了网页 出现在顶部。 190 00:09:00,285 --> 00:09:04,890 我要滚动备份到 网络“选项卡在这里,我要 191 00:09:04,890 --> 00:09:06,080 点击第一行。 192 00:09:06,080 --> 00:09:10,580 此工具会向我们揭示了什么 是每一个HTTP请求 193 00:09:10,580 --> 00:09:13,550 只是迅速回去 我的浏览器之间来回 194 00:09:13,550 --> 00:09:14,930 Facebook的服务器。 195 00:09:14,930 --> 00:09:17,830 所以每一个这些行 代表这样的一个请求或 196 00:09:17,830 --> 00:09:20,970 响应,一个或多个 那些虚拟的信封。 197 00:09:20,970 --> 00:09:24,080 或者更随意,这就像一个人 就像一个人,一个客户在一个 198 00:09:24,080 --> 00:09:26,710 餐厅,要求的东西 一遍,一遍,又一遍。 199 00:09:26,710 --> 00:09:29,400 服务员不断带来 回一次。 200 00:09:29,400 --> 00:09:33,850 >> 所以,现在,如果我在变焦时,请注意 这将是诸如此类的事情, 201 00:09:33,850 --> 00:09:36,600 欢迎你,并鼓励 发挥你自己,因为我们 202 00:09:36,600 --> 00:09:38,150 不会去通过一切 很详细。 203 00:09:38,150 --> 00:09:40,070 但是请注意,有一个 这里的几个子选项卡 - 204 00:09:40,070 --> 00:09:43,700 接头,预览,响应, 饼干,和时机。 205 00:09:43,700 --> 00:09:48,280 我只是要看看报头 现在,因为这些小 206 00:09:48,280 --> 00:09:53,600 成分在里面的信封 帮助数据和从地方。 207 00:09:53,600 --> 00:09:57,590 >> 因此,首先让我点击,查看 来源请求头旁边。 208 00:09:57,590 --> 00:10:01,910 有要求我的浏览器, 在这种情况下,浏览器,发送内侧 209 00:10:01,910 --> 00:10:02,910 该虚拟信封。 210 00:10:02,910 --> 00:10:04,800 你还记得上周我 手动键入它,而 211 00:10:04,800 --> 00:10:06,380 假装是一个浏览器。 212 00:10:06,380 --> 00:10:09,980 然后,它提醒服务器,它是 寻找称为主机 213 00:10:09,980 --> 00:10:10,835 Facebook.com。 214 00:10:10,835 --> 00:10:13,630 再有是一个有点神秘的 信息,我们将挥手 215 00:10:13,630 --> 00:10:14,830 现在我们手中。 216 00:10:14,830 --> 00:10:18,640 >> 但是,如果我现在开始向下滚动 这个窗口中,让我得到的 217 00:10:18,640 --> 00:10:19,980 响应头。 218 00:10:19,980 --> 00:10:23,270 这是在虚拟 信封回来 219 00:10:23,270 --> 00:10:24,095 Facebook.com。 220 00:10:24,095 --> 00:10:27,390 如果我只是单击“查看源文件” 看它的原始文本, 221 00:10:27,390 --> 00:10:28,400 注意到一些事情。 222 00:10:28,400 --> 00:10:32,130 一,Facebook还讲同 协议,其1.1版本。 223 00:10:32,130 --> 00:10:33,390 所以这是很好的。 224 00:10:33,390 --> 00:10:36,820 但是,状态代码301, 永久地移动。 225 00:10:36,820 --> 00:10:38,880 >> 嗯,赫克Facebook的去了? 226 00:10:38,880 --> 00:10:40,430 这是什么试图传达给我们的吗? 227 00:10:40,430 --> 00:10:44,310 那么,请注意这里还有另一个 头叫位置。 228 00:10:44,310 --> 00:10:51,050 那么,为什么是Facebook告诉我说,他们 被永久移动到该网址 229 00:10:51,050 --> 00:10:53,580 旁边的位置吗? 230 00:10:53,580 --> 00:10:54,962 我忘了www。 231 00:10:54,962 --> 00:10:56,250 >> 所以这是我的选择。 232 00:10:56,250 --> 00:11:00,450 事实上,我们大多数人很少,大概, 键入www.whatever.com这些天。 233 00:11:00,450 --> 00:11:03,390 但事实证明,一个系统管理员, 像Facebook, 234 00:11:03,390 --> 00:11:06,800 以这样一种方式配置自己的服务器 无论是Facebook.com的作品,或 235 00:11:06,800 --> 00:11:12,450 www.Facebook.com的作品,或者,真的, 在他们面前任何这样的前缀 236 00:11:12,450 --> 00:11:13,210 域名。 237 00:11:13,210 --> 00:11:14,500 所以,他们做了我们。 238 00:11:14,500 --> 00:11:16,910 他们重定向,大概 对于一些技术, 239 00:11:16,910 --> 00:11:18,100 一些市场营销的原因。 240 00:11:18,100 --> 00:11:21,570 他们只是想规范化 上www.Facebook.com。 241 00:11:21,570 --> 00:11:24,040 >> 但是,这不是相当。 242 00:11:24,040 --> 00:11:28,560 如果我在这里向下滚动,让 看个究竟。 243 00:11:28,560 --> 00:11:30,810 这是告诉我,我们 永久移至 244 00:11:30,810 --> 00:11:33,450 http://www.Facebook.com。 245 00:11:33,450 --> 00:11:36,620 因此,让我们来看看第二个请求 我的浏览器发送。 246 00:11:36,620 --> 00:11:40,070 不幸的是,它看起来像Facebook 再次提出,因为第二个 247 00:11:40,070 --> 00:11:44,420 请求的网址,而不是通过选择, 说,也感动 248 00:11:44,420 --> 00:11:45,010 久治不愈。 249 00:11:45,010 --> 00:11:48,140 并让我在这里向下滚动 响应头。 250 00:11:48,140 --> 00:11:51,530 Facebook的现在已经不存在了吗? 251 00:11:51,530 --> 00:11:52,680 >> 所以HTTPS。 252 00:11:52,680 --> 00:11:56,130 所以,现在Facebook已经开始, 特别是在光电流 253 00:11:56,130 --> 00:11:59,750 在最近几个月的事件,尤其是 在过去几年也 254 00:11:59,750 --> 00:12:03,670 迫使他们的所有用户,在一个良好的 的方式,以使用HTTPS,这是更 255 00:12:03,670 --> 00:12:06,210 安全,虽然并非完全安全。 256 00:12:06,210 --> 00:12:10,000 所以现在我的网页,我的浏览器 将要求这第三个URL。 257 00:12:10,000 --> 00:12:14,710 而现在,终于,我们得到 否则看不见200确定。 258 00:12:14,710 --> 00:12:18,830 >> 那么,什么在世界上所有 这些行这里。 259 00:12:18,830 --> 00:12:22,630 我简直输入一件事,我 浏览器似乎已经要求像 260 00:12:22,630 --> 00:12:23,840 20一些奇怪的事情。 261 00:12:23,840 --> 00:12:24,640 那是什么? 262 00:12:24,640 --> 00:12:25,810 >> 观众:脚本? 263 00:12:25,810 --> 00:12:28,460 >> 扬声器1:脚本,所以其他文件 书面语言叫 264 00:12:28,460 --> 00:12:30,780 JavaScript中,这一次,我们将 在周三去看了一下。 265 00:12:30,780 --> 00:12:32,760 还有什么呢? 266 00:12:32,760 --> 00:12:33,390 样式表。 267 00:12:33,390 --> 00:12:36,350 所以东西的语言叫 CSS,我们会看到在一个位。 268 00:12:36,350 --> 00:12:40,690 GIF动画和JPEG,GIF和PNG格式,图片, 和电影文件 - 无论一个网页 269 00:12:40,690 --> 00:12:43,280 已经是最有可能在 一个文件的形式。 270 00:12:43,280 --> 00:12:46,750 还等什么,我们看到在左边 右手边有所有文件 271 00:12:46,750 --> 00:12:50,280 铬下载, 递归的,如果你愿意,为了 272 00:12:50,280 --> 00:12:52,430 构成的页面的全部。 273 00:12:52,430 --> 00:12:56,210 >> 所以,我们刚才也看到了与谷歌, 如果我点击的元素 274 00:12:56,210 --> 00:13:00,470 标签,这肯定的是,HTML, 组成该页面的语言。 275 00:13:00,470 --> 00:13:01,890 但是,还有其他的事情串。 276 00:13:01,890 --> 00:13:02,640 还有一个标志。 277 00:13:02,640 --> 00:13:04,680 有那些蓝十岁上下的 那边的图标。 278 00:13:04,680 --> 00:13:07,610 还有其他元素仍然 页面本身可能会对 279 00:13:07,610 --> 00:13:08,610 单独的文件。 280 00:13:08,610 --> 00:13:11,860 >> 那么,什么是浏览器很好 它着眼于我们要去的语言 281 00:13:11,860 --> 00:13:14,690 开始写,或者你已经 在P组7,数字开始写作 282 00:13:14,690 --> 00:13:17,970 这些文件在哪里住了, 去抓住他们。 283 00:13:17,970 --> 00:13:21,010 我不能强调不够,甚至 虽然这可能看起来有点 284 00:13:21,010 --> 00:13:24,820 神秘的或压倒乍一看, 学习如何编程 285 00:13:24,820 --> 00:13:28,500 为Web应用程序,它的 无价的,以了解这些 286 00:13:28,500 --> 00:13:29,410 小工具的工作。 287 00:13:29,410 --> 00:13:33,830 这些都是有点像GDB工具一样, 但简单得多,最终使用 - 288 00:13:33,830 --> 00:13:37,690 真的让你的眼睛变成了什么 我们一直理所当然 289 00:13:37,690 --> 00:13:39,170 相当一段时间了。 290 00:13:39,170 --> 00:13:42,270 >> 所以我们现在做什么用 这一信息? 291 00:13:42,270 --> 00:13:44,875 好吧,让我们实际来看看 基本概念的HTML。 292 00:13:44,875 --> 00:13:49,025 我们会推迟,因为我们已经有了, 部分本周的问题 293 00:13:49,025 --> 00:13:53,260 设置7说明书中,一些比较 这些语言的详情。 294 00:13:53,260 --> 00:13:57,020 但是,让我们看到,如果我们不能画一个 你应该明白什么图片 295 00:13:57,020 --> 00:13:57,940 整体这里。 296 00:13:57,940 --> 00:14:02,280 >> 所以HTML超文本标记语言, 是不是一种编程语言。 297 00:14:02,280 --> 00:14:03,520 那是什么意思呢? 298 00:14:03,520 --> 00:14:05,690 因此,HTML看起来是这样的。 299 00:14:05,690 --> 00:14:06,810 一些你已经知道这一点。 300 00:14:06,810 --> 00:14:08,130 你们中的一些人一直在做 这一段时间。 301 00:14:08,130 --> 00:14:10,270 但是,让我们看看我们是否可以不填 在一些空白。 302 00:14:10,270 --> 00:14:11,760 所以在这里发现一对夫妇的事情。 303 00:14:11,760 --> 00:14:13,030 一,它只是文字。 304 00:14:13,030 --> 00:14:15,960 因此,它的源代码就像 C,或其他语言。 305 00:14:15,960 --> 00:14:17,750 >> 请注意,似乎有 这里有一种模式。 306 00:14:17,750 --> 00:14:20,870 有压痕,但在技术上 压痕是人性 307 00:14:20,870 --> 00:14:21,205 约定。 308 00:14:21,205 --> 00:14:24,980 Â浏览器不关心,如果有新的 行和制表符像我们看到有。 309 00:14:24,980 --> 00:14:27,410 但注意到,有 这里的对称性。 310 00:14:27,410 --> 00:14:31,180 有什么我会打电话的顶部, 此文件中,打开的标签,或者开始 311 00:14:31,180 --> 00:14:33,030 标签,称为HTML。 312 00:14:33,030 --> 00:14:36,800 然后,向下跌破,完美内衬 ,就像我们做的大括号, 313 00:14:36,800 --> 00:14:40,910 我们看到开放式支架,前进 斜线,HTML,靠近支架。 314 00:14:40,910 --> 00:14:44,610 所以这是对应关闭 标签或结束标签,那件事。 315 00:14:44,610 --> 00:14:47,990 >> 总之,一切都里面的 所谓的开放标记和结束标记 316 00:14:47,990 --> 00:14:50,440 谱写我们会打电话给一个元素。 317 00:14:50,440 --> 00:14:53,910 我们将看到,在短短的时刻,它的 真的很喜欢在树上的一个节点。 318 00:14:53,910 --> 00:14:57,470 因为,如果你认为现在 缩进,这里的暗示, 319 00:14:57,470 --> 00:15:00,780 样的,喜欢,祖父母 节点称为HTML。 320 00:15:00,780 --> 00:15:06,870 多少个孩子,你可能会说,根据 这张照片上的HTML元素? 321 00:15:06,870 --> 00:15:07,720 >> 所以,可能有两个。 322 00:15:07,720 --> 00:15:10,240 一个是头元素,显然。 323 00:15:10,240 --> 00:15:11,710 一个是人体元素。 324 00:15:11,710 --> 00:15:12,555 为什么两个孩子呢? 325 00:15:12,555 --> 00:15:15,840 好吧,我只是一种推断,如果 我有一个开放的头标记,然后 326 00:15:15,840 --> 00:15:17,820 头部标记,这是一个元素。 327 00:15:17,820 --> 00:15:21,200 然后,如果有一个开放式的身体 标签和近身标签,就像 328 00:15:21,200 --> 00:15:22,340 另一个元素。 329 00:15:22,340 --> 00:15:26,000 因此,在这个意义上说,如果我种旋转 在其一侧的图片,这是 330 00:15:26,000 --> 00:15:29,910 就像有一个HTML标记,然后一个 头标记,然后身体标记, 331 00:15:29,910 --> 00:15:34,290 然后一些文本,你好世界,晃来晃去 关闭body标签本身。 332 00:15:34,290 --> 00:15:36,620 >> 因此,我们可以得出一个图片 可能会这个样子。 333 00:15:36,620 --> 00:15:38,020 的形状是任意的。 334 00:15:38,020 --> 00:15:40,870 但是请注意,我用的排序 椭圆形的顶部来表示 335 00:15:40,870 --> 00:15:41,860 文件本身。 336 00:15:41,860 --> 00:15:45,980 原来,有可能是其他的东西 我不是一个网页,里面的 337 00:15:45,980 --> 00:15:46,940 这里引出。 338 00:15:46,940 --> 00:15:50,800 所以我们要去甚至挂HTML 所谓的文件节点的节点关闭。 339 00:15:50,800 --> 00:15:53,730 然后我们有头部和 身体和标题,通知, 340 00:15:53,730 --> 00:15:55,360 进一步嵌套。 341 00:15:55,360 --> 00:15:58,650 我没有刻意把额外的行 标题标签里面休息。 342 00:15:58,650 --> 00:16:02,710 它只是感觉就像是获得 显得有点冗长。 343 00:16:02,710 --> 00:16:07,000 所以,我离开了它在一行, 开题,你好,靠近世界冠军。 344 00:16:07,000 --> 00:16:09,380 然后我们有一些文字 这里晃来晃去。 345 00:16:09,380 --> 00:16:12,200 >> 因此,这幅画会回来 当我们潜入成JavaScript。 346 00:16:12,200 --> 00:16:15,110 和理解,当你 写HTML这个样子, 347 00:16:15,110 --> 00:16:16,250 浏览器是在做什么? 348 00:16:16,250 --> 00:16:19,290 好吧,我们不必担心 它是如何这样做,或什么 349 00:16:19,290 --> 00:16:23,090 算法,但在一天结束时, 当浏览器收到类似HTML 350 00:16:23,090 --> 00:16:27,510 认为,从Facebook或谷歌,它分析 它,可以这么说,它会读取它, 351 00:16:27,510 --> 00:16:31,160 像用fread的东西,顶 底部,左到右,因为它 352 00:16:31,160 --> 00:16:36,300 意识到,哦,开放标签,然后关闭 标签,开始对malloc,可以这么说, 353 00:16:36,300 --> 00:16:37,800 的树中的节点。 354 00:16:37,800 --> 00:16:41,130 当它遇到,因为我们已经暗示 这里与压痕, 355 00:16:41,130 --> 00:16:45,400 子节点,它mallocs一个节点 并附着到树。 356 00:16:45,400 --> 00:16:49,150 >> 因此,树的结构,二叉树 三元树,和更大的树, 357 00:16:49,150 --> 00:16:53,380 我们在一两个星期前,扫了一眼通知 ,同样的原则是 358 00:16:53,380 --> 00:16:54,220 回来给我们。 359 00:16:54,220 --> 00:16:57,590 凡实施,铬无论 团队这样做,大概有 360 00:16:57,590 --> 00:17:00,800 实现某种类型的树结构 引擎盖下。 361 00:17:00,800 --> 00:17:05,329 而这本身就是很可能在 语言如C或C + +或较低 362 00:17:05,329 --> 00:17:08,540 层次的语言,我们会 现在使用的网页之上。 363 00:17:08,540 --> 00:17:11,200 >> 所以,现在,也许,这将 更有意义。 364 00:17:11,200 --> 00:17:15,420 一些家伙,谁可能实际纹身 最终后悔了,有种。 365 00:17:15,420 --> 00:17:17,359 OK,所有的权利,所以很多的网络幽默。 366 00:17:17,359 --> 00:17:18,599 这不是真的 在今天这么好。 367 00:17:18,599 --> 00:17:19,560 因此,我们将继续前进。 368 00:17:19,560 --> 00:17:20,180 好的。 369 00:17:20,180 --> 00:17:22,760 >> 因此,让我们来看看现在 几个例子。 370 00:17:22,760 --> 00:17:24,660 最简单的可能 事情可能是这样的。 371 00:17:24,660 --> 00:17:29,170 我要去进取,不断开拓中 gedit的一个文件名为hello.php的。 372 00:17:29,170 --> 00:17:31,730 373 00:17:31,730 --> 00:17:36,330 在这里,我要迅速 只是这样做的printf,报价 374 00:17:36,330 --> 00:17:38,590 引文结束的“hello world”。 375 00:17:38,590 --> 00:17:42,460 >> 因此,通知,我会尽我的反斜线Ñ, 我没有打扰申报主体。 376 00:17:42,460 --> 00:17:45,310 事实证明,在PHP中,和很多 语言,你不需要主 377 00:17:45,310 --> 00:17:46,090 功能本身。 378 00:17:46,090 --> 00:17:47,720 您可以开始写 你的程序。 379 00:17:47,720 --> 00:17:51,210 现在,当我保存这个文件,通知我 要做到以下几点。 380 00:17:51,210 --> 00:17:55,360 我不会使用,我不 要使用铛因为PHP,不像 381 00:17:55,360 --> 00:17:57,400 C,是不是编译语言。 382 00:17:57,400 --> 00:18:01,400 这就是被称为一种解释 语言,这意味着你运行它 383 00:18:01,400 --> 00:18:04,650 通过另一个程序作为输入 所谓的解释。 384 00:18:04,650 --> 00:18:08,150 并且该程序读取,顶 底部,从左向右,做 385 00:18:08,150 --> 00:18:09,290 无论你告诉它做的。 386 00:18:09,290 --> 00:18:12,920 >> 因此,在这种情况下,在这里我有 行的printf说。 387 00:18:12,920 --> 00:18:17,990 所以,当我运行这个源代码, hello.php的,虽然一个程序, 388 00:18:17,990 --> 00:18:22,830 情况下,方便,被称为PHP, 该程序PHP要读 389 00:18:22,830 --> 00:18:26,120 这个文件,从上到下,从左到右, 它会做什么,我 390 00:18:26,120 --> 00:18:30,110 告诉它做 - 执行代码,如果 它不承认的东西,只是 391 00:18:30,110 --> 00:18:31,320 随地吐痰出来。 392 00:18:31,320 --> 00:18:34,940 所以,我要继续前进, 运行PHP的hello.php。 393 00:18:34,940 --> 00:18:37,110 回车键。 394 00:18:37,110 --> 00:18:39,690 >> 这并不完全是我的本意。 395 00:18:39,690 --> 00:18:40,530 那么,这是为什么? 396 00:18:40,530 --> 00:18:43,910 嗯,PHP是一门语言,这实际上是 设计是相当 397 00:18:43,910 --> 00:18:46,150 交织在一起的网络。 398 00:18:46,150 --> 00:18:50,460 当这种语言制作网页 PHP的,因为我们很快就会看到,我们将 399 00:18:50,460 --> 00:18:54,560 想要做类似打印 出像这样的线。 400 00:18:54,560 --> 00:18:55,940 >> 所以我要做到这一点。 401 00:18:55,940 --> 00:19:00,810 打开支架,问号,PHP, 现在我只是要缩进只是为了保持 402 00:19:00,810 --> 00:19:01,960 美好的东西。 403 00:19:01,960 --> 00:19:04,910 现在我要做的一个问题 标记密切支架。 404 00:19:04,910 --> 00:19:06,270 所以这是一个有点不对称。 405 00:19:06,270 --> 00:19:07,490 你不这样做。 406 00:19:07,490 --> 00:19:10,530 而且你不必做一个斜线,所以 PHP是一个有点不同。 407 00:19:10,530 --> 00:19:14,610 >> 但现在,如果我重新运行这个程序, PHP的hello.php,现在我 408 00:19:14,610 --> 00:19:16,090 实际上得到的Hello World。 409 00:19:16,090 --> 00:19:17,750 我们将看到为什么这是有价值的。 410 00:19:17,750 --> 00:19:20,960 一,它让我来指定, 超明确,这是 411 00:19:20,960 --> 00:19:22,480 代码执行。 412 00:19:22,480 --> 00:19:25,480 而这的确是这些 特殊的标签,意味着这里。 413 00:19:25,480 --> 00:19:30,330 >> 但是,这也意味着,如果我只是做 类似我的目标是在这里, 414 00:19:30,330 --> 00:19:34,000 ,从字面上看,这将只是手段 被打印出来,而不需要 415 00:19:34,000 --> 00:19:36,850 实际上调用printf或打印, 或任何类似的功能。 416 00:19:36,850 --> 00:19:39,445 因此,我们会回来, 在短短的时刻。 417 00:19:39,445 --> 00:19:40,470 >> 首先,让我们做到这一点。 418 00:19:40,470 --> 00:19:43,950 里面的家电,我们有一个 目录称为虚拟主机,虚拟 419 00:19:43,950 --> 00:19:47,000 主机,斜线本地主机,削减公共。 420 00:19:47,000 --> 00:19:50,240 所以这是一个有点冗长,但很长的故事 总之,设备的设计不 421 00:19:50,240 --> 00:19:53,770 只支持这也是 旨在支持PHP。 422 00:19:53,770 --> 00:19:57,440 但它也被设计成一个网页 服务器,和数据库服务器。 423 00:19:57,440 --> 00:20:00,230 它的设计,真正的配置, 任何让人联想 424 00:20:00,230 --> 00:20:04,230 商业网站托管公司 你可能支付每月5美元, 425 00:20:04,230 --> 00:20:05,040 $ 100一个月。 426 00:20:05,040 --> 00:20:08,200 无论服务,它的配置 是非常类似于一个 427 00:20:08,200 --> 00:20:10,170 真实世界的生产服务器。 428 00:20:10,170 --> 00:20:13,485 >> 这是什么意思是,运行 该设备是Web服务器软件。 429 00:20:13,485 --> 00:20:15,060 它发生在被称为Apache的。 430 00:20:15,060 --> 00:20:17,790 这只是免费的,开源的, 而大受欢迎。 431 00:20:17,790 --> 00:20:23,260 我们已经配置好Apache知道 如果我访问某个网址, 432 00:20:23,260 --> 00:20:28,060 浏览器或任何浏览器里面的 家电,寻找到这个目录 433 00:20:28,060 --> 00:20:31,030 文件 用户请求。 434 00:20:31,030 --> 00:20:32,790 >> 换句话说,让我 继续前进,做到这一点。 435 00:20:32,790 --> 00:20:36,890 我的公开目录里面,我要去 继续前进,建立一个文件 436 00:20:36,890 --> 00:20:39,580 名为index.html。 437 00:20:39,580 --> 00:20:41,000 这给了我这里的标签。 438 00:20:41,000 --> 00:20:44,210 我要走得非常快 继续前进,爆炸了 439 00:20:44,210 --> 00:20:45,010 这个程序在这里。 440 00:20:45,010 --> 00:20:48,410 DOCTYPE HTML,现在,只 假设你必须键入。 441 00:20:48,410 --> 00:20:53,490 这只是一个神秘的标签,这不是 真正的HTML标记,它指定 442 00:20:53,490 --> 00:20:55,050 这里是一些HTML。 443 00:20:55,050 --> 00:20:57,400 >> 我要继续前进,并重新 我们刚才也看到了。 444 00:20:57,400 --> 00:20:58,650 下面是在页面头部。 445 00:20:58,650 --> 00:21:01,170 头部内侧 - 446 00:21:01,170 --> 00:21:01,890 这样的标题。 447 00:21:01,890 --> 00:21:04,340 所以我们会说你好,世界。 448 00:21:04,340 --> 00:21:06,570 再往下是身体标记。 449 00:21:06,570 --> 00:21:08,580 让我收身标签。 450 00:21:08,580 --> 00:21:12,280 然后在这里,我也会说, 只是为了清晰世界,你好。 451 00:21:12,280 --> 00:21:14,770 >> 因此,这是可以说,最简单的 可能网页 452 00:21:14,770 --> 00:21:15,770 能使这是有效的。 453 00:21:15,770 --> 00:21:17,030 这是语法上是有效的。 454 00:21:17,030 --> 00:21:18,620 一切的打开关闭。 455 00:21:18,620 --> 00:21:20,910 一切都很好 风格和缩进。 456 00:21:20,910 --> 00:21:23,600 所以,让我们来看看现在我怎么 可以访问此文件。 457 00:21:23,600 --> 00:21:25,540 >> 好了,让我去这里的铬。 458 00:21:25,540 --> 00:21:35,050 并让我去 http://localhost/index.html。 459 00:21:35,050 --> 00:21:36,200 那么什么是本地主机? 460 00:21:36,200 --> 00:21:39,400 嗯,大部分在世界上任何一台计算机, 在Linux,Mac OS,Windows中,有一个绰号 461 00:21:39,400 --> 00:21:40,680 所谓本地主机。 462 00:21:40,680 --> 00:21:42,900 所以,如果你想谈 自己的电脑 - 463 00:21:42,900 --> 00:21:45,140 不过,奇怪的本能 - 464 00:21:45,140 --> 00:21:47,080 你称自己为本地主机。 465 00:21:47,080 --> 00:21:50,390 不管你的实际计算机 ,无论是大卫的MacBook 466 00:21:50,390 --> 00:21:52,490 空气,或更多的东西 冗长的那样。 467 00:21:52,490 --> 00:21:57,760 >> 所以这个网址显然要使用 HTTP谈论到本地主机, 468 00:21:57,760 --> 00:22:00,800 在同一台计算机,家电, 要问,只取一 469 00:22:00,800 --> 00:22:02,570 猜测,什么样的文件? 470 00:22:02,570 --> 00:22:04,460 index.html的。 471 00:22:04,460 --> 00:22:08,650 因此,该设备已配置在 提前知道,如果我问 472 00:22:08,650 --> 00:22:13,460 类似的index.html,寻找 在一个文件夹中,在一个被称为虚拟主机 473 00:22:13,460 --> 00:22:17,950 文件夹,名为本地的文件夹中 其中被称为公众。 474 00:22:17,950 --> 00:22:20,400 这就是我的所有公共 文件将要。 475 00:22:20,400 --> 00:22:22,610 所以我现在要敲回车。 476 00:22:22,610 --> 00:22:27,100 >> 该死的,还有就是禁 消息,否则403中,被称为 477 00:22:27,100 --> 00:22:28,490 它的数字代码。 478 00:22:28,490 --> 00:22:30,130 那么,什么是错在这里? 479 00:22:30,130 --> 00:22:33,210 嗯,这是不够的,只是把 我的文件夹里面的文件。 480 00:22:33,210 --> 00:22:35,790 我需要做以下。 481 00:22:35,790 --> 00:22:40,210 >> 让我去,进到我的虚拟主机目录 本地主机,进入公共场所,并让 482 00:22:40,210 --> 00:22:41,680 我LS划线升。 483 00:22:41,680 --> 00:22:44,510 还有一些其他的东西 在这里为今天的目的。 484 00:22:44,510 --> 00:22:50,540 但是请注意,在左侧,旁边 到index.html,我们看到的只是一个RW。 485 00:22:50,540 --> 00:22:53,560 而在过去, RW站在了? 486 00:22:53,560 --> 00:22:54,240 >> 只要读或写。 487 00:22:54,240 --> 00:22:58,000 事实上,它在左边以rw说 意味着我拥有这个文件,可以 488 00:22:58,000 --> 00:22:59,020 读或写它。 489 00:22:59,020 --> 00:23:05,010 但我需要让所有的人在 世界阅读本,虽然没有写出来。 490 00:23:05,010 --> 00:23:09,650 所以我要改变的模式 文件,属性,给所有加r 491 00:23:09,650 --> 00:23:13,910 每个人的读取权限, 名为index.html的文件。 492 00:23:13,910 --> 00:23:18,040 >> 如果我现在重新输入LS几许升,通知 在这里,多了一些 493 00:23:18,040 --> 00:23:19,160 R的弹出。 494 00:23:19,160 --> 00:23:21,090 而现在,规范进入 的更多细节。 495 00:23:21,090 --> 00:23:24,450 对于P套7,这只是意味着每个人 现在可以读取这个文件。 496 00:23:24,450 --> 00:23:27,790 如果我回到我的浏览器 现在重装,瞧。 497 00:23:27,790 --> 00:23:28,750 世界,你好。 498 00:23:28,750 --> 00:23:32,260 >> 我什至可以打开我的Chrome工具 看看,就像谷歌和 499 00:23:32,260 --> 00:23:34,590 Facebook上有我的HTML, 格式化了一下 500 00:23:34,590 --> 00:23:35,930 不同的颜色。 501 00:23:35,930 --> 00:23:40,450 如果我去“网络”选项卡,并重新加载 的页面,发现有得到 502 00:23:40,450 --> 00:23:42,900 要求Chrome的发送 家电。 503 00:23:42,900 --> 00:23:46,020 有200, 特定的文件。 504 00:23:46,020 --> 00:23:49,340 因此,在短期,这是如何使所有这些 各个部分都撞在了一起。 505 00:23:49,340 --> 00:23:53,530 它只是恰巧,在Web服务器 我们现在正在使用的并不遥远, 506 00:23:53,530 --> 00:23:54,210 像Facebook。 507 00:23:54,210 --> 00:23:58,330 严格地讲,它在同一台计算机上, 这是完全确定的。 508 00:23:58,330 --> 00:24:00,590 >> 那么什么我们可以做一个网页呢? 509 00:24:00,590 --> 00:24:03,110 好了,只是,让微风拂过 一对夫妇的这些东西。 510 00:24:03,110 --> 00:24:07,860 不过,让我继续前进,重新打开 gedit中的index.html。 511 00:24:07,860 --> 00:24:13,980 让我继续前进,打招呼CS50, 保存这个文件,回去 512 00:24:13,980 --> 00:24:16,260 浏览器,真正给人留下深刻印象的变化。 513 00:24:16,260 --> 00:24:19,130 >> 但是,如果我们想要真正 连结的东西呢? 514 00:24:19,130 --> 00:24:23,480 所以,事实证明,我们可以有 在HTML中的链接,只是标签 515 00:24:23,480 --> 00:24:24,140 自己。 516 00:24:24,140 --> 00:24:27,320 它发生在被称为 锚标记。一个href的等于的 517 00:24:27,320 --> 00:24:33,190 https://www.cs50.net,www.cs50.net 报价接近,靠近支架。 518 00:24:33,190 --> 00:24:35,230 现在让我们来看看 否则接下来。 519 00:24:35,230 --> 00:24:36,500 >> 我已经打开的标签。 520 00:24:36,500 --> 00:24:38,990 我现在需要给它 短语像CS50。 521 00:24:38,990 --> 00:24:40,600 让我关闭标签。 522 00:24:40,600 --> 00:24:42,010 并注意几件事情。 523 00:24:42,010 --> 00:24:45,270 即使有这个神秘的东西 在这里,我不重复它,当你 524 00:24:45,270 --> 00:24:46,010 关闭标签。 525 00:24:46,010 --> 00:24:48,230 你刚刚关闭的标签 其名称本身。 526 00:24:48,230 --> 00:24:50,940 这是被称为 属性的值。 527 00:24:50,940 --> 00:24:56,070 属性只需要修改的行为 一些标签的一个页面内。 528 00:24:56,070 --> 00:24:59,150 >> 因此,这是指定的超级 花式一种说法参考, 529 00:24:59,150 --> 00:25:03,660 此锚的URL,这 链接,应该是CS50.net。 530 00:25:03,660 --> 00:25:07,440 而我们要显示的文字 用户不是该原始URL,而是 531 00:25:07,440 --> 00:25:08,730 字CS50。 532 00:25:08,730 --> 00:25:13,710 >> 所以,如果我现在重装,让我放大以 清晰度,让我重新加载页面, 533 00:25:13,710 --> 00:25:16,460 注意到我们有这个老学校 蓝色带下划线的链接。 534 00:25:16,460 --> 00:25:20,000 如果我将鼠标悬停在它,它是怎么回事 很难看到,在左下方 535 00:25:20,000 --> 00:25:23,690 右下角的画面,请注意 它说,到的URL 536 00:25:23,690 --> 00:25:24,430 我要去。 537 00:25:24,430 --> 00:25:27,940 如果我点击那里,瞧, 现在我制作网页。 538 00:25:27,940 --> 00:25:30,140 而且我们自己 到主页。 539 00:25:30,140 --> 00:25:32,670 >> 但是请注意,有什么发展潜力 这为我们提供了。 540 00:25:32,670 --> 00:25:34,890 安全是非常 在流行的这些日子。 541 00:25:34,890 --> 00:25:41,210 如果我不是这样说 这一点,我反而去,说,让我们 542 00:25:41,210 --> 00:25:42,460 看到,fakeCS50.net。 543 00:25:42,460 --> 00:25:44,660 544 00:25:44,660 --> 00:25:46,360 刷新此页。 545 00:25:46,360 --> 00:25:50,180 >> OK,所以发现它仍然看起来像我 CS50,除非一个精明眼 546 00:25:50,180 --> 00:25:51,560 会注意到我要假CS50。 547 00:25:51,560 --> 00:25:54,550 我猜此域不采取。 548 00:25:54,550 --> 00:25:55,960 OK,所以无法使用。 549 00:25:55,960 --> 00:25:56,600 所以这是很好的。 550 00:25:56,600 --> 00:25:57,900 居然没有一个人拥有该域名。 551 00:25:57,900 --> 00:26:00,380 >> 但是,让我们多了几分恶意 因为这是一种愚蠢的。 552 00:26:00,380 --> 00:26:02,240 如果我们改变到PayPal。 553 00:26:02,240 --> 00:26:09,960 如果我们调用这个一样, www.paypal.badguy.com 554 00:26:09,960 --> 00:26:12,070 无论您正在访问的域名。 555 00:26:12,070 --> 00:26:13,700 这可能存在。 556 00:26:13,700 --> 00:26:16,260 所以,现在让我重新加载页面。 557 00:26:16,260 --> 00:26:22,890 这里,我们有一个钓鱼的排序 攻击,p-h-I-S-H-I-N-G,这是 558 00:26:22,890 --> 00:26:26,760 傻字的攻击 尝试鱼信息,或更好 559 00:26:26,760 --> 00:26:30,450 ,钱,出人通过欺骗 他们到提供信息 560 00:26:30,450 --> 00:26:31,990 否则他们可能不会做。 561 00:26:31,990 --> 00:26:33,500 这看上去完全合法的,对不对? 562 00:26:33,500 --> 00:26:34,930 我必须有一个链接在这里Paypal.com的。 563 00:26:34,930 --> 00:26:37,700 564 00:26:37,700 --> 00:26:40,430 凭心而论,如果我绝育手术了一些 图形,我们可以使它看起来 565 00:26:40,430 --> 00:26:41,310 如PayPal。 566 00:26:41,310 --> 00:26:41,510 对吗? 567 00:26:41,510 --> 00:26:43,815 因为我可以,顺便说一句, 我可以去Paypal.com。 568 00:26:43,815 --> 00:26:47,110 我们刚刚看到,我怎么能 看到他们的HTML。 569 00:26:47,110 --> 00:26:50,560 我可能只是把它复制并重新创建 美学贝宝,而不是去 570 00:26:50,560 --> 00:26:51,490 这里的老同学。 571 00:26:51,490 --> 00:26:55,010 但是请注意,当然,这是一个有点 仍小,只有在底部 572 00:26:55,010 --> 00:26:59,190 左上角,像一个10点 字体,你看你是什么样的网址 573 00:26:59,190 --> 00:27:01,310 实际上是被领导。 574 00:27:01,310 --> 00:27:06,580 >> 所以如果你曾经得到的垃圾邮件说 先走了,你的帐户 575 00:27:06,580 --> 00:27:07,420 已大打折扣。 576 00:27:07,420 --> 00:27:10,615 请点击这个链接,让我们知道, 您的密码,所以我们可以确保你 577 00:27:10,615 --> 00:27:13,010 你永远不这样做。 578 00:27:13,010 --> 00:27:14,180 这些东西应该是不言而喻。 579 00:27:14,180 --> 00:27:17,670 但它的奇妙有趣,并且 惨烈,每年这似乎 580 00:27:17,670 --> 00:27:19,660 发生一些非零 许多人。 581 00:27:19,660 --> 00:27:21,400 >> 这就是美丽 网络钓鱼攻击。 582 00:27:21,400 --> 00:27:23,160 您可以发送100万封电子邮件。 583 00:27:23,160 --> 00:27:27,720 即使0.01%的人实际上 点击Paypal和给你 584 00:27:27,720 --> 00:27:31,040 密码,这仍然是一个非零数字 刚刚给谁的人 585 00:27:31,040 --> 00:27:32,200 你自己的钱。 586 00:27:32,200 --> 00:27:36,170 接收和发送电子邮件,当然是相当 容易,从本质上讲,自由 587 00:27:36,170 --> 00:27:36,970 这些天。 588 00:27:36,970 --> 00:27:40,410 >> 所以长话短说,奇妙 美丽的想法,对吧? 589 00:27:40,410 --> 00:27:44,620 几年前,这是最早的 网页,使网 590 00:27:44,620 --> 00:27:46,330 资源之间的超链接。 591 00:27:46,330 --> 00:27:49,520 但如此之快可能是 用于生病的目的。 592 00:27:49,520 --> 00:27:54,100 电子邮件,我只想说,这些 天,里面嵌入HTML。 593 00:27:54,100 --> 00:27:55,410 >> 好吧,让我只是另一件事情。 594 00:27:55,410 --> 00:27:58,640 我们将推迟主要部分 问题设置七,让您 595 00:27:58,640 --> 00:28:00,000 探索的详情。 596 00:28:00,000 --> 00:28:01,990 不过,让我继续前进, 在这里做几件事情。 597 00:28:01,990 --> 00:28:04,840 我要去,并宣布 什么叫做一个div,或 598 00:28:04,840 --> 00:28:06,080 师的页面。 599 00:28:06,080 --> 00:28:07,770 让我关闭该div标签。 600 00:28:07,770 --> 00:28:11,460 >> 我会说 这里页的前头。 601 00:28:11,460 --> 00:28:14,940 然后下面这个,我要做的事情 像另一个分区,请关闭此 602 00:28:14,940 --> 00:28:17,800 标签,做页面底部。 603 00:28:17,800 --> 00:28:18,840 让我们保存它。 604 00:28:18,840 --> 00:28:21,040 >> 所以,现在让我们回到我的文件。 605 00:28:21,040 --> 00:28:22,120 非常深刻印象。 606 00:28:22,120 --> 00:28:25,520 但是,什么样的分工, 引擎盖下,这实际上 607 00:28:25,520 --> 00:28:26,920 一个很好的结构元素。 608 00:28:26,920 --> 00:28:30,300 它不具有任何美学迄今 我们可以看到,以外,很显然, 609 00:28:30,300 --> 00:28:31,890 把东西放在新线。 610 00:28:31,890 --> 00:28:36,290 >> 但是请注意,顺便说一句,只是击中 输入不削减它在HTML喜欢它 611 00:28:36,290 --> 00:28:39,840 并在C你可能会认为这是 打算把一个漂亮的大差距 612 00:28:39,840 --> 00:28:41,300 在页面的顶部和底部。 613 00:28:41,300 --> 00:28:43,420 但它忽略。 614 00:28:43,420 --> 00:28:48,040 基本上是忽略空白 网页以外的第一 615 00:28:48,040 --> 00:28:51,530 空格字符,回车, 你打在键盘上。 616 00:28:51,530 --> 00:28:55,370 如果你想更多的换行符, 有自己指定它。 617 00:28:55,370 --> 00:28:59,080 >> 所以我要做的几件事情 这里要说明发生了什么事情。 618 00:28:59,080 --> 00:29:02,700 我要添加一个属性 存在并再次,你的学习方式 619 00:29:02,700 --> 00:29:07,110 哪些属性存在,存在什么标签, 真的,是网上的引用。 620 00:29:07,110 --> 00:29:09,750 HTML语言的那种 - 这是 不是一种编程语言。 621 00:29:09,750 --> 00:29:12,460 这是一种标记语言 - 后 良好的半个小时,也许一个小时, 622 00:29:12,460 --> 00:29:15,930 它,你一定会把握,最 可能的是,基本的想法。 623 00:29:15,930 --> 00:29:20,350 然后谷歌搜索距离是所有 你可能会对可能的标签 624 00:29:20,350 --> 00:29:21,170 感兴趣 625 00:29:21,170 --> 00:29:24,290 按照规范,那是相当的 欢迎这里和鼓励。 626 00:29:24,290 --> 00:29:26,120 >> 所以,现在让我继续前进, 做这样的事情。 627 00:29:26,120 --> 00:29:28,690 背景颜色。 628 00:29:28,690 --> 00:29:32,060 而现在,我要做的事情 喜欢红色,分号。 629 00:29:32,060 --> 00:29:33,970 你可以做到这一点 几种不同的方式。 630 00:29:33,970 --> 00:29:36,770 我只是那种超级键入 明确越好。 631 00:29:36,770 --> 00:29:41,960 >> 但事实证明,这里,这个值是 什么叫做CSS层叠样式 632 00:29:41,960 --> 00:29:43,700 床单,这是另一种 语言完全。 633 00:29:43,700 --> 00:29:46,770 CSS无关,与 打开标签和关闭标签。 634 00:29:46,770 --> 00:29:48,230 它做与性能。 635 00:29:48,230 --> 00:29:52,660 >> 和属性是简单的键值 对,这只是意味着一些字, 636 00:29:52,660 --> 00:29:54,680 冒号,然后其他一些字。 637 00:29:54,680 --> 00:29:57,940 如果你有多个,或者只是 在这里,你可以结束它与 638 00:29:57,940 --> 00:29:59,390 分号,只是为了清晰。 639 00:29:59,390 --> 00:30:01,370 但是,这也将在这里工作。 640 00:30:01,370 --> 00:30:02,500 >> 现在这是什么该怎么办? 641 00:30:02,500 --> 00:30:03,610 你可能已经猜到了。 642 00:30:03,610 --> 00:30:05,930 让我继续前进,然后刷新页面。 643 00:30:05,930 --> 00:30:07,300 而现在,它真的来了一起。 644 00:30:07,300 --> 00:30:09,150 因此,我的网页的顶部是红色的。 645 00:30:09,150 --> 00:30:12,380 但这里的关键是,我提到 早些时候,该div给你 646 00:30:12,380 --> 00:30:13,220 一个分工的页面。 647 00:30:13,220 --> 00:30:14,410 而这确实是它做什么。 648 00:30:14,410 --> 00:30:17,920 它实质上是将页面分为 一个矩形,然后你可以 649 00:30:17,920 --> 00:30:18,720 操纵。 650 00:30:18,720 --> 00:30:22,330 >> 而这个概念是怎么样的矩形 引人注目的是,如果你认为 651 00:30:22,330 --> 00:30:26,410 几乎所有的网站,有可能是 它的一些结构。 652 00:30:26,410 --> 00:30:29,620 你们中的大多数可能已经很少见到 如果你登录Facebook的主页 653 00:30:29,620 --> 00:30:30,440 在所有的时间。 654 00:30:30,440 --> 00:30:33,920 >> 但在Facebook的主页上,有 某种格的顶部。 655 00:30:33,920 --> 00:30:36,140 它可能不是那么简单 作为一个div,但有一个 656 00:30:36,140 --> 00:30:37,560 矩形区域。 657 00:30:37,560 --> 00:30:40,290 页面的其余部分是什么样的 一个巨大的div,就像一个多 658 00:30:40,290 --> 00:30:41,910 更大的矩形区域。 659 00:30:41,910 --> 00:30:44,540 所以长话短说,刚才有 这些小积木, 660 00:30:44,540 --> 00:30:49,250 能力模型的东西如矩形, 无论是宽的还是窄的,你也可以 661 00:30:49,250 --> 00:30:53,680 潜在列,让你 页面布局,真的,但是你 662 00:30:53,680 --> 00:30:54,100 想。 663 00:30:54,100 --> 00:30:56,170 我们真的只是皮毛 这里的表面。 664 00:30:56,170 --> 00:30:59,820 >> 事实上,如果我做一个另一个, 让我继续前进,做款式, 665 00:30:59,820 --> 00:31:05,410 背景颜色,我们会做一些事情 喜欢蓝色,特写报价。 666 00:31:05,410 --> 00:31:06,620 重装。 667 00:31:06,620 --> 00:31:08,260 所以现在它变得更加丑陋。 668 00:31:08,260 --> 00:31:11,520 但现在我可以种炫耀 我P设置5个技能,对不对? 669 00:31:11,520 --> 00:31:12,690 红色。 670 00:31:12,690 --> 00:31:15,640 这让我想起RGB,红 绿色蓝三倍。 671 00:31:15,640 --> 00:31:19,330 哦,原来在网络编程, 或网页设计,它是这样的,我们已经 672 00:31:19,330 --> 00:31:21,650 尚未任何编程 本身,实际上,你可以 673 00:31:21,650 --> 00:31:22,880 有十六进制代码。 674 00:31:22,880 --> 00:31:26,480 因此,一些东西,一些 一些东西,一些东西。 675 00:31:26,480 --> 00:31:30,650 所以,你可以有六个十六进制 字符,或者在某些情况下,三, 676 00:31:30,650 --> 00:31:33,480 和那些问号 是一个十六进制数字, 677 00:31:33,480 --> 00:31:34,985 0到f。 678 00:31:34,985 --> 00:31:41,000 >> 如果我想有很多的红色, 没有绿色,没有蓝色的,有什么 679 00:31:41,000 --> 00:31:43,740 相反为零时使用十六进制? 680 00:31:43,740 --> 00:31:44,480 这是F。 681 00:31:44,480 --> 00:31:51,130 所以我可以做FF,零,零, 保存这个,现在来这里。 682 00:31:51,130 --> 00:31:52,700 我没有真正看到了变化。 683 00:31:52,700 --> 00:31:56,230 所以报价引文结束的“红色”显然是 所有红色的代名词, 684 00:31:56,230 --> 00:31:57,610 没有绿色,没有蓝色。 685 00:31:57,610 --> 00:31:59,960 同时,让我们刻意改变 这样一来的东西 686 00:31:59,960 --> 00:32:01,210 随机的,像ABCDF。 687 00:32:01,210 --> 00:32:03,790 688 00:32:03,790 --> 00:32:05,860 >> 让我们来看看这是什么。 689 00:32:05,860 --> 00:32:08,530 这是一个非常漂亮的蓝色, 实际上,粉蓝。 690 00:32:08,530 --> 00:32:11,820 所有的权利,所以这些都是刚才 有些随机组合 691 00:32:11,820 --> 00:32:12,210 字符。 692 00:32:12,210 --> 00:32:13,410 因此,我们不会陷入在了这里。 693 00:32:13,410 --> 00:32:15,930 但是,这讲的精度 你就可以开始 694 00:32:15,930 --> 00:32:19,090 适用 - 即使你很不堪重负 美学。 695 00:32:19,090 --> 00:32:21,750 事实上,如果你真的想成为 留下深刻的印象,让我继续前进,改变 696 00:32:21,750 --> 00:32:23,500 的字体大小,例如。 697 00:32:23,500 --> 00:32:25,960 注意分号, 存在是必要的。 698 00:32:25,960 --> 00:32:29,570 >> 字体大小,我们可以只是可笑 在这里,96点。 699 00:32:29,570 --> 00:32:31,280 保存。 700 00:32:31,280 --> 00:32:33,670 哇,这是一个大的字体大小。 701 00:32:33,670 --> 00:32:35,490 所有的权利,所以它是很容易的。 702 00:32:35,490 --> 00:32:38,260 而实际上,你基本上看到 我的第一个网页 703 00:32:38,260 --> 00:32:40,060 几年前,当我第一次 学到这个东西。 704 00:32:40,060 --> 00:32:42,190 这很容易做出非常 可怕的事情很快。 705 00:32:42,190 --> 00:32:46,115 >> 如果你熟悉回程 机archive.org 706 00:32:46,115 --> 00:32:48,210 可以找到我所有的狰狞 本科生的网页。 707 00:32:48,210 --> 00:32:50,090 一个青蛙柯密特的前面。 708 00:32:50,090 --> 00:32:53,150 我经历了一个阶段,我想 凉爽的背景 709 00:32:53,150 --> 00:32:56,320 一个红色的窗帘,当我得知你如何 再次可以平铺图像,并再次, 710 00:32:56,320 --> 00:32:59,540 再次,以填补页 一个俗气的大红色幕布。 711 00:32:59,540 --> 00:33:03,120 然后,在此之上,是一个图标 你不得不点击进入我的家 712 00:33:03,120 --> 00:33:04,960 因为这是页 非常流行。 713 00:33:04,960 --> 00:33:08,870 >> 然后我的第一个程序,我曾经写过 在PHP中,但在一种语言不是 714 00:33:08,870 --> 00:33:12,260 称为明珠,写了一个留言簿, 是一个非常酷的事情,一个 715 00:33:12,260 --> 00:33:14,250 很多人期待你 有一个主页上。 716 00:33:14,250 --> 00:33:17,510 当你得到的页面,他们希望你 签署,并说,你是谁, 717 00:33:17,510 --> 00:33:18,720 为什么你在那里。 718 00:33:18,720 --> 00:33:21,320 这是非常20世纪90年代风格的网页设计。 719 00:33:21,320 --> 00:33:24,130 >> 但这些天,当然,我们已经 来了很多更远。 720 00:33:24,130 --> 00:33:27,560 你会看到,在第,甚至 在问题设置七, 721 00:33:27,560 --> 00:33:31,570 充分利用图书馆,这些天, 它是如此容易使 722 00:33:31,570 --> 00:33:33,400 漂亮的东西很快。 723 00:33:33,400 --> 00:33:36,550 真的在这里,我们只是刮伤 表面你可以做什么 724 00:33:36,550 --> 00:33:37,400 文体。 725 00:33:37,400 --> 00:33:41,660 >> 而事实上,已经让我强调 这已经越来越丑,未 726 00:33:41,660 --> 00:33:46,030 只是美观,但在 我的代码风格,或者 727 00:33:46,030 --> 00:33:47,260 我的代码设计。 728 00:33:47,260 --> 00:33:52,350 我目前已comingled的HTML, 绿色开放的标签, 729 00:33:52,350 --> 00:33:55,160 CSS属性, 是完全合法的。 730 00:33:55,160 --> 00:33:57,200 这是真的,其中的语言 有它的起源。 731 00:33:57,200 --> 00:34:01,030 >> 但在干净设计的兴趣, 就像我们开始保的东西 732 00:34:01,030 --> 00:34:05,370 从C文件到h文件,让 实际上,我的那种练习 733 00:34:05,370 --> 00:34:07,990 原则,并开始做 这个代替。 734 00:34:07,990 --> 00:34:13,280 让我把风格标签, 也存在于HTML,让我 735 00:34:13,280 --> 00:34:15,330 指定以下。 736 00:34:15,330 --> 00:34:16,360 让我删除。 737 00:34:16,360 --> 00:34:18,110 背景颜色将是红色的。 738 00:34:18,110 --> 00:34:19,800 我要完全删除。 739 00:34:19,800 --> 00:34:22,580 我要摆脱的风格 属性,我要去唯一 740 00:34:22,580 --> 00:34:24,620 识别这个div用一个字 - 741 00:34:24,620 --> 00:34:28,750 随意,但合理报价 引文结束“顶”。和ID是一种特殊的 742 00:34:28,750 --> 00:34:32,530 唯一定义的属性 某些HTML元素 743 00:34:32,530 --> 00:34:33,850 作为具有该ID。 744 00:34:33,850 --> 00:34:37,969 >> 如果我现在要程式化,在这里 我的网页,里面的头 745 00:34:37,969 --> 00:34:41,730 风格标签,请注意 我可以做的哈希顶部。 746 00:34:41,730 --> 00:34:45,300 然后我可以把一对夫妇的卷发 牙套,让人想起了C,然后让 747 00:34:45,300 --> 00:34:47,130 我贴在那个程式化。 748 00:34:47,130 --> 00:34:49,929 让我在这里继续和预期 我要去的地方这一点。 749 00:34:49,929 --> 00:34:53,380 让我还可以创建一个 底部的div。 750 00:34:53,380 --> 00:34:58,010 让我抓住这个丑陋的代码从下 把它放在这里,在这里,我会 751 00:34:58,010 --> 00:35:00,770 多一点现在肛门和程式化 只是把自己的事情 752 00:35:00,770 --> 00:35:02,540 线,用分号结束。 753 00:35:02,540 --> 00:35:04,430 让我摆脱的风格标签。 754 00:35:04,430 --> 00:35:05,320 >> 但我还没有完成。 755 00:35:05,320 --> 00:35:07,406 我需要做的另一件事情。 756 00:35:07,406 --> 00:35:10,070 是啊,ID等于报价引文结束,“自下而上” 或任何ID,我想 757 00:35:10,070 --> 00:35:11,740 给该元素。 758 00:35:11,740 --> 00:35:13,420 现在,在这里让我回去。 759 00:35:13,420 --> 00:35:14,360 这是残暴的。 760 00:35:14,360 --> 00:35:15,805 我对付不了96点。 761 00:35:15,805 --> 00:35:16,960 让我们做24点。 762 00:35:16,960 --> 00:35:18,320 或者你可以更精确。 763 00:35:18,320 --> 00:35:21,800 实际上,你可以使用像素,像素,所以 你真的得到更细的颗粒 764 00:35:21,800 --> 00:35:23,220 控制在你的网页上。 765 00:35:23,220 --> 00:35:26,860 >> 顺便说一句,这是不一定 最好的东西,如果用户, 766 00:35:26,860 --> 00:35:29,650 辅助功能的原因,要 可以增加体积。 767 00:35:29,650 --> 00:35:32,650 因此,意识到有办法做 不一定的事情, 768 00:35:32,650 --> 00:35:34,230 硬编码的一切。 769 00:35:34,230 --> 00:35:37,220 >> 所有权利,所以它比较大,24点, 比任何默认为。 770 00:35:37,220 --> 00:35:38,630 但现在它的少许清洁剂。 771 00:35:38,630 --> 00:35:40,230 让我走这一步。 772 00:35:40,230 --> 00:35:47,220 就像头文件的想法, 请注意,我们一步步接近那个。 773 00:35:47,220 --> 00:35:52,000 我有分解出来,但还是留下, 我的网页,这些CSS规则内。 774 00:35:52,000 --> 00:35:56,200 我为什么要采取这一步 进一步,删除,这完全 775 00:35:56,200 --> 00:35:59,860 把它放在一个单独的文件? 776 00:35:59,860 --> 00:36:01,070 >> 所以,我可以重复使用它,对不对? 777 00:36:01,070 --> 00:36:03,155 这仅仅是一种直觉 现在。 778 00:36:03,155 --> 00:36:06,340 在此之前,我声称这只是 越来越难看的风格 779 00:36:06,340 --> 00:36:08,480 里面的属性 自己的div。 780 00:36:08,480 --> 00:36:09,750 但只是认为通过。 781 00:36:09,750 --> 00:36:13,560 当你的页面变长,如果 你把在这里,并在这里, 782 00:36:13,560 --> 00:36:18,350 这里,在这里,所有这些不同的 颜色和字体大小,以及其他类似 783 00:36:18,350 --> 00:36:22,550 属性,你的网页是非常快 将变得不可收拾您。 784 00:36:22,550 --> 00:36:24,570 >> 如果有人来向你及 说,哦,你知道是什么吗? 785 00:36:24,570 --> 00:36:28,070 我真的很想改变字体大小 另外两个点, 786 00:36:28,070 --> 00:36:31,275 可能去查找和替换 数量庞大的代码行。 787 00:36:31,275 --> 00:36:35,170 它更引人注目集中的 这里所有这样的美学。 788 00:36:35,170 --> 00:36:38,850 但是,如果你想重用那些 美学的多个网页, 789 00:36:38,850 --> 00:36:41,100 更引人注目的, 例如,创建一个文件 790 00:36:41,100 --> 00:36:45,290 调用这些内容。 791 00:36:45,290 --> 00:36:46,680 >> 让我这样做。 792 00:36:46,680 --> 00:36:51,150 793 00:36:51,150 --> 00:36:51,920 保存这个文件。 794 00:36:51,920 --> 00:36:55,580 我说styles.css的,任意的, 但传统。 795 00:36:55,580 --> 00:36:58,770 我将把它在约翰·哈佛的家 目录现在简单。 796 00:36:58,770 --> 00:37:03,880 在我的网页,我能做些什么是 摆脱完全的风格标签, 797 00:37:03,880 --> 00:37:08,270 和有点unintuitively,使用链接 标签,它不会给你一个链接 798 00:37:08,270 --> 00:37:13,140 超链接,点击感,但 我说链接,HREF等于 799 00:37:13,140 --> 00:37:15,120 styles.css的。 800 00:37:15,120 --> 00:37:20,050 的关系,这些元素 网页已经是作为 801 00:37:20,050 --> 00:37:21,280 它的样式表。 802 00:37:21,280 --> 00:37:22,670 >> 那么我怎么会知道呢? 803 00:37:22,670 --> 00:37:25,950 一,你刚才读手册, 或者你谷歌身边,和你 804 00:37:25,950 --> 00:37:27,000 看看各种资源。 805 00:37:27,000 --> 00:37:30,520 我的意思是,那才是真正的你挑 像这样的技术,一致 806 00:37:30,520 --> 00:37:34,720 这个想法自己新的教学 再次,语言,你会发现, 807 00:37:34,720 --> 00:37:38,830 只有数量有限的东西 任何语言,一旦你得到 808 00:37:38,830 --> 00:37:41,310 他们,你会发现,它得到 越来越快写。 809 00:37:41,310 --> 00:37:44,180 事实上,学习一种新的编程 语言是如此的速度远远超过了新的 810 00:37:44,180 --> 00:37:47,380 口语,因为这些东西 更小的和更 811 00:37:47,380 --> 00:37:48,820 精确的定义。 812 00:37:48,820 --> 00:37:51,590 >> 不过,我已经强调了一点 这里的异常。 813 00:37:51,590 --> 00:37:57,750 我为什么要强调这 向前斜线这里? 814 00:37:57,750 --> 00:37:59,420 因为我不得不闭上标签。 815 00:37:59,420 --> 00:38:00,530 我应该关闭标签。 816 00:38:00,530 --> 00:38:02,750 你会发现无数的资源 不在线 817 00:38:02,750 --> 00:38:04,080 一定关闭标签。 818 00:38:04,080 --> 00:38:08,770 抓实,它不是严格 必要的技术,并且有 819 00:38:08,770 --> 00:38:11,950 现实的原因,浏览器只是 在web相当宽容失误 820 00:38:11,950 --> 00:38:14,360 页,或好或坏, 但大多是雪上加霜。 821 00:38:14,360 --> 00:38:18,830 >> 因此,这仅仅是一个更清洁的方式 说这样愚蠢的东西, 822 00:38:18,830 --> 00:38:22,330 其中,如果你要打开的链接标签 但关闭它,真的没有概念 823 00:38:22,330 --> 00:38:23,720 内容的链接标签。 824 00:38:23,720 --> 00:38:26,000 它只是意味着加载此 文件,并把它放在这里。 825 00:38:26,000 --> 00:38:30,610 C.您可以像尖锐包括 一次全部打开和关闭标签 826 00:38:30,610 --> 00:38:31,660 标签相同的范围内。 827 00:38:31,660 --> 00:38:33,520 和其他这样的例子。 828 00:38:33,520 --> 00:38:37,280 这是没有办法做到这一点,但 br标签,换行,如果我 829 00:38:37,280 --> 00:38:41,780 真正想要对我是什么 试图按下回车键之前,如果 830 00:38:41,780 --> 00:38:45,380 我明确地说线断裂,线断裂, 断行,断行, 831 00:38:45,380 --> 00:38:49,100 然后重新加载这个页面,你会发现 页面的底部的是, 832 00:38:49,100 --> 00:38:51,940 事实上,很多越走越远 页的底部。 833 00:38:51,940 --> 00:38:55,840 但即使这样,可以做得更多 干净,CSS和利润, 834 00:38:55,840 --> 00:38:58,120 与其它类似的审美 技术。 835 00:38:58,120 --> 00:38:59,940 >> 因此,就目前而言,外卖店。 836 00:38:59,940 --> 00:39:02,320 在HTML中,我们有这些 东西叫做标签。 837 00:39:02,320 --> 00:39:04,830 在CSS中,我们有这些事 称为属性。 838 00:39:04,830 --> 00:39:08,700 我们,可以comingle这两种语言, 通过使用样式属性, 839 00:39:08,700 --> 00:39:14,240 或者样式的标签,或最好的还没有,保 它完全,因为我们做的 840 00:39:14,240 --> 00:39:17,270 问题7。 841 00:39:17,270 --> 00:39:23,820 问题,那么,约 这里的概念基本? 842 00:39:23,820 --> 00:39:24,740 >> 观众:我有一个问题。 843 00:39:24,740 --> 00:39:25,630 >> 扬声器1:哦,对不起。 844 00:39:25,630 --> 00:39:28,880 >> 观众:为什么没有彩色 - 845 00:39:28,880 --> 00:39:31,410 >> 扬声器1:哦,在“其他”选项卡? 846 00:39:31,410 --> 00:39:32,232 在这里? 847 00:39:32,232 --> 00:39:33,482 >> 观众:不,这是这样的 - 848 00:39:33,482 --> 00:39:35,330 849 00:39:35,330 --> 00:39:39,480 >> 扬声器1:哦,那是因为 我被马虎。 850 00:39:39,480 --> 00:39:41,350 我把文件放错了地方。 851 00:39:41,350 --> 00:39:47,840 所以,如果我把它放在这里,和我 chmod将其所有+ R styles.css的, 852 00:39:47,840 --> 00:39:52,050 现在刷新页面,现在我们 得到程式化回。 853 00:39:52,050 --> 00:39:54,530 因为字体大小 不同,我们没有看到相当多 854 00:39:54,530 --> 00:39:55,010 白色的空间。 855 00:39:55,010 --> 00:39:58,240 我们不是看到什么 而不是默认。 856 00:39:58,240 --> 00:40:00,050 这个问题问得好。 857 00:40:00,050 --> 00:40:00,846 是吗? 858 00:40:00,846 --> 00:40:02,630 >> 观众:为什么是链接 标签里面的头? 859 00:40:02,630 --> 00:40:06,270 >> 扬声器1:为什么链接 标签里面的头 - 860 00:40:06,270 --> 00:40:07,650 简短的答案,只是因为。 861 00:40:07,650 --> 00:40:08,930 那是什么决定。 862 00:40:08,930 --> 00:40:10,720 这就是去当链接标签 您有什么所谓的一个 863 00:40:10,720 --> 00:40:13,650 外部的样式表。 864 00:40:13,650 --> 00:40:16,430 其他问题吗? 865 00:40:16,430 --> 00:40:17,770 >> 好吧,让我们做到这一点。 866 00:40:17,770 --> 00:40:20,500 我们有这么多的乐趣,今天摆在我们面前。 867 00:40:20,500 --> 00:40:22,480 这只是刮​​伤 CSS的表面。 868 00:40:22,480 --> 00:40:23,010 让我们做到这一点。 869 00:40:23,010 --> 00:40:25,980 让我们这里休息5分钟 因为按我的电子邮件,让我们挂在 870 00:40:25,980 --> 00:40:27,200 那里,直到今天2:30 ISH。 871 00:40:27,200 --> 00:40:28,540 但如果你有 离开,这很好。 872 00:40:28,540 --> 00:40:30,380 但是,我们将锐意进取 休息5分钟。 873 00:40:30,380 --> 00:40:35,930 我们将学习一点东西 关于PHP,MySQL和。 874 00:40:35,930 --> 00:40:44,520 >> 好吧,让我们来试试,现在,将比分扳成一 几个在一起,使这些想法, 875 00:40:44,520 --> 00:40:46,180 说,我们自己的搜索引擎。 876 00:40:46,180 --> 00:40:48,570 我注意到,相当好奇, 以下。 877 00:40:48,570 --> 00:40:52,610 当你在Google.com,你 通常在这里像这样的一个URL 878 00:40:52,610 --> 00:40:54,870 没有后点COM。 879 00:40:54,870 --> 00:40:59,760 但是像一些愚蠢的事,如果我搜索 猫,并按下回车,我们会得到 - 880 00:40:59,760 --> 00:41:01,300 笨,但你知道的。 881 00:41:01,300 --> 00:41:05,410 >> OK,所以注意到,在页面顶部, 现在,URL,当然改变。 882 00:41:05,410 --> 00:41:07,190 这是没有什么 我们任何新的。 883 00:41:07,190 --> 00:41:09,290 您点击链接和东西 发生在网络上。 884 00:41:09,290 --> 00:41:11,420 但是,什么是有趣的 是以下内容。 885 00:41:11,420 --> 00:41:14,500 有一大堆杂乱的,但让 我扔掉的东西,我不 886 00:41:14,500 --> 00:41:16,600 不太明白或不 看看有关。 887 00:41:16,600 --> 00:41:18,490 >> 让我摆脱这种。 888 00:41:18,490 --> 00:41:20,030 让我摆脱这种。 889 00:41:20,030 --> 00:41:22,630 让我摆脱 所有这一切。 890 00:41:22,630 --> 00:41:28,840 现在发现,猫是在URL中, 其次具有Q,那么等于 891 00:41:28,840 --> 00:41:29,710 签署在它的前面。 892 00:41:29,710 --> 00:41:32,110 因此,原来这是怎样的 它的工作方式,当谈到 893 00:41:32,110 --> 00:41:33,360 输入和输出。 894 00:41:33,360 --> 00:41:37,510 >> 我们早就谈过 黑盒子,对不对? 895 00:41:37,510 --> 00:41:41,650 因此,如果这是实现的功能 这里是一个黑盒子,它需要输入 896 00:41:41,650 --> 00:41:45,290 并产生输出,以及,意味着 您提供的输入到 897 00:41:45,290 --> 00:41:49,270 网站方式,很多时候,它的网址。 898 00:41:49,270 --> 00:41:52,850 您只需打上问号 然后一键等于价值。 899 00:41:52,850 --> 00:41:56,740 然后也许一个符号,然后 另一个关键等于价值,那么也许 900 00:41:56,740 --> 00:41:58,810 另一个符号,关键等于价值。 901 00:41:58,810 --> 00:42:03,030 这是你如何通过键和 值,对输入。 902 00:42:03,030 --> 00:42:07,050 >> 所以,如果我现在敲回车,什么是 有趣的谷歌,是所有 903 00:42:07,050 --> 00:42:10,420 我删除,杂波不会出现 是绝对必要的。 904 00:42:10,420 --> 00:42:15,120 我需要发送到谷歌的问题 标记Q等于猫得到 905 00:42:15,120 --> 00:42:16,160 备份一些猫。 906 00:42:16,160 --> 00:42:20,160 那么,寓意,然后, 如果我拉gedit中,我已经开始 907 00:42:20,160 --> 00:42:24,360 在这里我自己的搜索引擎 在一个名为seach0.html。 908 00:42:24,360 --> 00:42:26,750 >> 让我去和删除 多行 909 00:42:26,750 --> 00:42:27,910 不应该看到的。 910 00:42:27,910 --> 00:42:31,070 现在,让我进入我自己的浏览器, 所以没有给谷歌,去 911 00:42:31,070 --> 00:42:34,900 http://localhost的。 912 00:42:34,900 --> 00:42:36,220 ,这就是将要得到的方式。 913 00:42:36,220 --> 00:42:43,240 因此,我们将不得不说再见 现在,移动在这里, 914 00:42:43,240 --> 00:42:46,270 哦,现在我们将不得不 该文件说再见。 915 00:42:46,270 --> 00:42:51,700 >> 每当你有一个文件名为 在index.html或编辑 916 00:42:51,700 --> 00:42:54,980 目录,如果Web服务器 以这种方式配置,你会 917 00:42:54,980 --> 00:42:59,600 ,默认情况下,看到的内容 文件而不是上市 918 00:42:59,600 --> 00:43:02,330 目录,因为我想在这里。 919 00:43:02,330 --> 00:43:03,750 在这个问题上的规范。 920 00:43:03,750 --> 00:43:04,610 你没有看到这一点。 921 00:43:04,610 --> 00:43:06,360 >> 所以这是我其实是想什么。 922 00:43:06,360 --> 00:43:08,810 不过片刻前,有一个 在此文件夹中的文件名为 923 00:43:08,810 --> 00:43:11,290 index.html和index.php文件。 924 00:43:11,290 --> 00:43:13,380 所以Web服务器 我的那些文件。 925 00:43:13,380 --> 00:43:15,900 相反,我想这个目录 在这里列出。 926 00:43:15,900 --> 00:43:18,340 >> 所以我要进入 CSS和去搜索0。 927 00:43:18,340 --> 00:43:21,770 我要求,这是将是 开始我自己的竞争 928 00:43:21,770 --> 00:43:22,490 搜索引擎。 929 00:43:22,490 --> 00:43:27,630 而要做到这一点,我要去 在这里,到CSS,并打开了 930 00:43:27,630 --> 00:43:30,190 gedit中,搜索。 931 00:43:30,190 --> 00:43:32,280 但不幸的是,有 没有太多打算就在这里。 932 00:43:32,280 --> 00:43:35,690 我所做的只是使用标题标签, 会发生被称为H1, 933 00:43:35,690 --> 00:43:38,180 基本上是指大 勇敢的,就是这样。 934 00:43:38,180 --> 00:43:40,810 但以何种方式,我们可以 通过这些提供投入 935 00:43:40,810 --> 00:43:42,180 东西叫做形式。 936 00:43:42,180 --> 00:43:46,040 >> 因此,让我继续前进,打开和关闭, 先发制人,有形式标记。 937 00:43:46,040 --> 00:43:48,060 让我继续做 这样的事情。 938 00:43:48,060 --> 00:43:51,430 文本输入,键入等于。 939 00:43:51,430 --> 00:43:56,320 然后让内关闭标签 括号本身。 940 00:43:56,320 --> 00:43:58,800 我并不需要启动一个文本字段 并停止文本字段。 941 00:43:58,800 --> 00:44:01,080 它只是将是有还是没有。 942 00:44:01,080 --> 00:44:06,210 >> 然后,让我们做如下 输入类型等于提交。 943 00:44:06,210 --> 00:44:06,870 保存。 944 00:44:06,870 --> 00:44:08,630 现在让我们只是做了 快速完整性检查。 945 00:44:08,630 --> 00:44:09,820 让我们重新加载。 946 00:44:09,820 --> 00:44:10,890 >> OK,所以它不坏。 947 00:44:10,890 --> 00:44:13,260 这不是谷歌的风格, 但它是相当接近的。 948 00:44:13,260 --> 00:44:13,920 有一个文本字段。 949 00:44:13,920 --> 00:44:17,190 我可以键入一些东西,敲回车, 但什么也没有发生。 950 00:44:17,190 --> 00:44:21,090 那是因为我还没有指定 这种形式的行动,可以这么说。 951 00:44:21,090 --> 00:44:23,860 所以,如果我回去的表单元素, 事实证明,我知道这是唯一的 952 00:44:23,860 --> 00:44:27,460 从阅读的文档, 标签的形式以一个属性 953 00:44:27,460 --> 00:44:31,880 调用的动作是URL 在网站中,您 954 00:44:31,880 --> 00:44:34,790 要发送的形式。 955 00:44:34,790 --> 00:44:37,610 >> 我真的不认为我们有时间 为实现整个后端 956 00:44:37,610 --> 00:44:38,570 今天的搜索引擎。 957 00:44:38,570 --> 00:44:41,900 所以,我们只是会说,哎, 去google.com /搜索。 958 00:44:41,900 --> 00:44:43,450 现在让我关闭我的报价。 959 00:44:43,450 --> 00:44:46,070 让我进一步明确 使用的方法是怎么回事 960 00:44:46,070 --> 00:44:47,120 被称为。 961 00:44:47,120 --> 00:44:50,650 >> 长话短说,有两种方式, 至少,你可以提交信息 962 00:44:50,650 --> 00:44:51,880 从浏览器到服务器。 963 00:44:51,880 --> 00:44:55,340 一个,而且,对于今天的目的, 这仅仅意味着在URL中。 964 00:44:55,340 --> 00:44:58,730 你清楚地看到问号,则 等号,和&符号, 965 00:44:58,730 --> 00:44:59,780 我们在前面看到的。 966 00:44:59,780 --> 00:45:02,890 或者有另一种称为后。 967 00:45:02,890 --> 00:45:06,490 现在,知道后经常被用来 当你要上传的文件,如 968 00:45:06,490 --> 00:45:09,820 图像等等,或当你想 提交信用卡信息,或 969 00:45:09,820 --> 00:45:13,810 密码,任何事情,它不 真正意义,概念,或 970 00:45:13,810 --> 00:45:18,020 安全明智的,最终的URL 您的浏览器,窥探父母, 971 00:45:18,020 --> 00:45:21,520 或室友,或任何访问 到您的计算机可能会看到。 972 00:45:21,520 --> 00:45:23,110 >> 所以,让我们保存在这里。 973 00:45:23,110 --> 00:45:24,480 我需要做的另一件事情。 974 00:45:24,480 --> 00:45:27,250 它不足够 说给我一个文本字段。 975 00:45:27,250 --> 00:45:29,850 我已经给该字段的 珍惜一个名称。 976 00:45:29,850 --> 00:45:34,500 因此,让我借用谷歌的选择 名,q和指定该第二 977 00:45:34,500 --> 00:45:38,150 属性我真的不关心 “提交”按钮的名称。 978 00:45:38,150 --> 00:45:40,890 我只在乎提交 什么类型的用户英寸 979 00:45:40,890 --> 00:45:41,940 >> 现在这是一种丑陋的。 980 00:45:41,940 --> 00:45:42,820 它只是说提交。 981 00:45:42,820 --> 00:45:46,350 事实证明,我知道这从 文档,我其实可以说 982 00:45:46,350 --> 00:45:51,710 值等于报价引文结束“CS50 SEACH“密切的报价。 983 00:45:51,710 --> 00:45:53,030 然后,让我们再次重装。 984 00:45:53,030 --> 00:45:57,020 所以我一直打命令-R,或 控制-R我的键盘上重新加载。 985 00:45:57,020 --> 00:45:58,605 >> 现在我们有一个更有趣 搜索引擎。 986 00:45:58,605 --> 00:46:00,340 它不完全的样子 谷歌,目前还。 987 00:46:00,340 --> 00:46:04,100 所以,让我们继续在这里 做一个小小的断行。 988 00:46:04,100 --> 00:46:06,066 >> 好了,现在我们有谷歌。 989 00:46:06,066 --> 00:46:08,260 实际上,我们几乎看谷歌。 990 00:46:08,260 --> 00:46:10,460 所以,现在什么事情发生呢? 991 00:46:10,460 --> 00:46:12,220 我要输入的东西 像猫。 992 00:46:12,220 --> 00:46:16,570 和浏览器解析 这种形式,我定义。 993 00:46:16,570 --> 00:46:19,470 它会发送 该网址的用户。 994 00:46:19,470 --> 00:46:23,420 所以这个时候,一些奇怪的原因, 我得到了更多有关股票信息 995 00:46:23,420 --> 00:46:24,410 比实际的猫。 996 00:46:24,410 --> 00:46:30,580 但是,这很好,因为我们仍然注意到 在这里结束了,Q等于猫。 997 00:46:30,580 --> 00:46:35,200 >> 所以长话短说,它似乎相当 微不足道的来自用户的输入。 998 00:46:35,200 --> 00:46:38,190 而且是公平的,有串 其他类型的表单字段。 999 00:46:38,190 --> 00:46:41,510 有复选框,有点相互 独家单选按钮, 1000 00:46:41,510 --> 00:46:42,960 下拉菜单等。 1001 00:46:42,960 --> 00:46:46,160 但所有这些都是相对 轻松实现 1002 00:46:46,160 --> 00:46:48,040 这个文本字段。 1003 00:46:48,040 --> 00:46:52,050 最终,我们只需要做出 肯定有人听其他 1004 00:46:52,050 --> 00:46:56,490 为了得到该行结束 信息处理,不知何故, 1005 00:46:56,490 --> 00:46:58,440 让我们回到我们的猫。 1006 00:46:58,440 --> 00:47:00,840 >> 让我们来看看一个稍微 更多参与的例子。 1007 00:47:00,840 --> 00:47:06,020 让我去到我的虚拟主机的目录, 到本地主机,公共场所,并在那里我 1008 00:47:06,020 --> 00:47:06,980 把今天的源代码。 1009 00:47:06,980 --> 00:47:09,800 所有这一切都将在球场上的 网站为你鼓捣。 1010 00:47:09,800 --> 00:47:15,420 我若去成froshims,让我开 现在了这个文件,froshim0.php。 1011 00:47:15,420 --> 00:47:18,460 这是一个有点冗长,所以 我们不会写这篇文章从头开始。 1012 00:47:18,460 --> 00:47:21,970 但是,仅仅注意到现在几点几分 熟悉的特点。 1013 00:47:21,970 --> 00:47:24,550 >> 一,形式标记,不同的动作。 1014 00:47:24,550 --> 00:47:25,670 这不是一个完整的URL。 1015 00:47:25,670 --> 00:47:29,930 现在,它显然文件名为 的register0.php,因为在某一时刻, 1016 00:47:29,930 --> 00:47:32,660 我要教自己一点点 一些关于PHP,编程 1017 00:47:32,660 --> 00:47:37,360 语言,因为PHP可以用来 实施什么谷歌实施 1018 00:47:37,360 --> 00:47:39,650 搜索引擎的后端。 1019 00:47:39,650 --> 00:47:42,890 >> 谷歌,在现实中,可能使用 一些Python,一些C + +, 1020 00:47:42,890 --> 00:47:44,230 其他语言的串。 1021 00:47:44,230 --> 00:47:48,230 不过,我们当然可以实现搜索 使用PHP,如果我们想要的结果。 1022 00:47:48,230 --> 00:47:49,610 但是现在,我们将保持它的简单。 1023 00:47:49,610 --> 00:47:53,320 这实际上是让人想起一个 我第一网站 1024 00:47:53,320 --> 00:47:54,490 年前作出。 1025 00:47:54,490 --> 00:47:58,160 >> 早在我的日子,你注册 作为一个新生的校内体育活动 1026 00:47:58,160 --> 00:48:00,880 填写一张纸,走 穿过院子,并将其放置在 1027 00:48:00,880 --> 00:48:04,890 一个宝洁的邮箱 威格尔斯沃,那就是你如何 1028 00:48:04,890 --> 00:48:05,460 登记手续。 1029 00:48:05,460 --> 00:48:09,650 所以我的项目后不久,CS50, 是把,这使得完美 1030 00:48:09,650 --> 00:48:13,460 某种意义上说,在网络上,这是不 作为时尚,因为它是现在。 1031 00:48:13,460 --> 00:48:17,510 但是,所有我们必须做的是创造, 从本质上讲,一个HTML表单。 1032 00:48:17,510 --> 00:48:19,640 >> 而这种形式看起来 大致是这样的。 1033 00:48:19,640 --> 00:48:22,480 我有一个输入 大一的名字。 1034 00:48:22,480 --> 00:48:27,780 我有另外的复选框是否 他们想成为队长, 1035 00:48:27,780 --> 00:48:30,400 他们的性别, 他们的宿舍是什么。 1036 00:48:30,400 --> 00:48:33,370 然后,我硬编码的事情 像Apley法院,卡纳迪, 1037 00:48:33,370 --> 00:48:34,880 灰色,等等。 1038 00:48:34,880 --> 00:48:36,300 >> 如此反复,新的标签。 1039 00:48:36,300 --> 00:48:39,820 还没有看到这些之前,新 属性,但还算访问。 1040 00:48:39,820 --> 00:48:42,360 一旦你看到一个例子,你可以 借这个想法,使下降 1041 00:48:42,360 --> 00:48:43,820 下拉菜单对于大多数什么。 1042 00:48:43,820 --> 00:48:46,350 但最关键的是,每个 这些东西的名字。 1043 00:48:46,350 --> 00:48:49,720 在这种形式的底部,有 一个提交按钮的标签, 1044 00:48:49,720 --> 00:48:51,510 或价值,是寄存器。 1045 00:48:51,510 --> 00:48:52,670 >> 所以,让我们去到这个网页。 1046 00:48:52,670 --> 00:48:55,050 让我回去 目录列表。 1047 00:48:55,050 --> 00:48:59,410 让我进入froshims, 去froshim0.php。 1048 00:48:59,410 --> 00:49:01,150 因此,它是可怕的,是公平的。 1049 00:49:01,150 --> 00:49:03,950 所以,我可以肯定样式 一些CSS,我可以做一些 1050 00:49:03,950 --> 00:49:06,890 图形,也许添加一些颜色, 使这个漂亮。 1051 00:49:06,890 --> 00:49:10,530 但是,在功能,我认为这 实际上是相当完整。 1052 00:49:10,530 --> 00:49:15,190 >> 不幸的是,当我填写了这一点, 船长大卫,男,我们会选择, 1053 00:49:15,190 --> 00:49:20,510 让我们说马修斯,注册, 所发生的一切是这样的。 1054 00:49:20,510 --> 00:49:21,910 但是请注意,一对夫妇的外卖店。 1055 00:49:21,910 --> 00:49:27,130 一,什么文件返回那些 结果,显然? 1056 00:49:27,130 --> 00:49:29,470 因此,它的确是register0.php。 1057 00:49:29,470 --> 00:49:34,570 因此,事实上,我们看到的行动 刚才值寄存器,这 1058 00:49:34,570 --> 00:49:37,500 证实我们确实结束 在该特定文件的最多。 1059 00:49:37,500 --> 00:49:39,040 >> 目前这还只是丑陋的文字。 1060 00:49:39,040 --> 00:49:42,810 但是请注意,这个文本是 来自本地主机, 1061 00:49:42,810 --> 00:49:44,170 这是从该设备。 1062 00:49:44,170 --> 00:49:46,350 现在想想器具 可能在一个Web服务器 1063 00:49:46,350 --> 00:49:46,910 科学中心。 1064 00:49:46,910 --> 00:49:48,060 这可能是对实际的网络。 1065 00:49:48,060 --> 00:49:49,850 因此,它的公开访问。 1066 00:49:49,850 --> 00:49:55,480 >> 所以很明显,有一些方式传递 表单字段输入到服务器 1067 00:49:55,480 --> 00:49:56,840 因此,它可以做与他们的东西。 1068 00:49:56,840 --> 00:49:59,020 不幸的是,寄存器 是非常愚蠢的。 1069 00:49:59,020 --> 00:50:01,870 它是打印出一个数组 看起来像这样。 1070 00:50:01,870 --> 00:50:04,790 它不是一个数组 我们知道它的意义。 1071 00:50:04,790 --> 00:50:08,760 原来,PHP,和大量的 语言,不仅数值 1072 00:50:08,760 --> 00:50:12,350 索引数组的第一个索引 零,那么一个,两个,然后点 1073 00:50:12,350 --> 00:50:13,780 点,点,N减1。 1074 00:50:13,780 --> 00:50:16,400 >> 这就是所谓的一个 关联数组。 1075 00:50:16,400 --> 00:50:21,150 关联数组是其中之一 你可以存储键值对 1076 00:50:21,150 --> 00:50:23,160 关键是不一定的数字。 1077 00:50:23,160 --> 00:50:25,580 事实上,它可以是一个字符串,一个字。 1078 00:50:25,580 --> 00:50:28,230 所以这可以实现, 引擎盖下,事实证明, 1079 00:50:28,230 --> 00:50:31,896 使用一个数据结构被称为? 1080 00:50:31,896 --> 00:50:33,600 思想戏剧性的东西 即将发生 - 1081 00:50:33,600 --> 00:50:34,840 哈希表。 1082 00:50:34,840 --> 00:50:38,955 >> 所以一个哈希表,回忆,那些你 是谁做的P组6,甚至召回 1083 00:50:38,955 --> 00:50:44,110 它,至少,即使你做了一个尝试, 哈希表中,在我们的使用情况,使用 1084 00:50:44,110 --> 00:50:45,090 只是存储的话。 1085 00:50:45,090 --> 00:50:47,980 不过说真的,你是存储 键和值。 1086 00:50:47,980 --> 00:50:51,940 如果您实现了一个哈希表为P 设置6词典,钥匙 1087 00:50:51,940 --> 00:50:56,890 词本身,其值 有效真或假。 1088 00:50:56,890 --> 00:51:00,190 是的,在这里,或含蓄, 不,不是在这里。 1089 00:51:00,190 --> 00:51:02,140 >> 好吧,我们可以概括地说,想法。 1090 00:51:02,140 --> 00:51:06,230 我们可以使用一个非常类似的数据 结构来存储而不是字符串 1091 00:51:06,230 --> 00:51:10,180 独自一人在你的哈希表,但 假设在每一个你的哈希 1092 00:51:10,180 --> 00:51:11,130 表的节点。 1093 00:51:11,130 --> 00:51:14,210 你甚至可以做到这一点在一个try 而不是仅仅有一个bool。 1094 00:51:14,210 --> 00:51:15,350 你可以有别的东西。 1095 00:51:15,350 --> 00:51:19,590 关键是如果没有麦克斯韦, 实例,但报价引文结束“的名字,”或 1096 00:51:19,590 --> 00:51:22,900 引用引文结束“的队长。”里面 C数据结构,你把一个 1097 00:51:22,900 --> 00:51:26,170 价值,而不仅仅是一个布尔值,但值 如报价引文结束“大卫”,或 1098 00:51:26,170 --> 00:51:28,690 “M”或“马修斯”和等等。 1099 00:51:28,690 --> 00:51:33,170 >> 因此,我们使用那些相同的数据结构 在其他语言中显然存在。 1100 00:51:33,170 --> 00:51:37,650 我认为它们实际上是多少, 简单得多,在这里访问。 1101 00:51:37,650 --> 00:51:40,300 让我们看一看其实 现在在一些这样的语法。 1102 00:51:40,300 --> 00:51:43,120 >> 我要进入​​一个PHP目录。 1103 00:51:43,120 --> 00:51:48,390 我要去开拓一个更好的 从之前版本的Hello-0。 1104 00:51:48,390 --> 00:51:50,270 请注意,我所做的就是 补充一些意见。 1105 00:51:50,270 --> 00:51:52,530 因此,我们可以摆脱那分心。 1106 00:51:52,530 --> 00:51:57,610 >> 这个程序的确会打印 你好,因为我之间指定 1107 00:51:57,610 --> 00:52:01,420 标签,我想执行该代码。 1108 00:52:01,420 --> 00:52:03,380 现在,我们将看到在某一时刻 为什么,这是非常有用的。 1109 00:52:03,380 --> 00:52:05,630 但是让我们在这里打开一个其他的例子。 1110 00:52:05,630 --> 00:52:10,430 让我去进取,不断开拓说, gedit的条件之一。 1111 00:52:10,430 --> 00:52:12,970 >> 这是现在回来的路上时间。 1112 00:52:12,970 --> 00:52:16,320 但半个月前,我想,在每周一, 本周二,我们有一个例子叫做 1113 00:52:16,320 --> 00:52:18,470 conditions1.c。 1114 00:52:18,470 --> 00:52:22,050 我决定重新实现在PHP中, 只是一种强调 1115 00:52:22,050 --> 00:52:26,500 PHP语法,几乎是相​​同的 C.这是不是一个巨大的飞跃 1116 00:52:26,500 --> 00:52:27,840 从上周到这一点。 1117 00:52:27,840 --> 00:52:31,230 >> 请注意,在上面这个程序, 开始时,和以前一样,具有一定的 1118 00:52:31,230 --> 00:52:34,260 意见,我将摆脱 作为分心。 1119 00:52:34,260 --> 00:52:37,410 请注意,我在PHP 在这个文件中的模式。 1120 00:52:37,410 --> 00:52:40,160 所以这段代码中,我们将看到的, 将得到执行。 1121 00:52:40,160 --> 00:52:42,670 请注意,有readline的, 这大概是 1122 00:52:42,670 --> 00:52:46,230 PHP的getString模拟。 1123 00:52:46,230 --> 00:52:47,390 请注意,这是一个有点不同。 1124 00:52:47,390 --> 00:52:51,410 实际上,你指定提示 函数调用读线,而这 1125 00:52:51,410 --> 00:52:52,180 用户看到。 1126 00:52:52,180 --> 00:52:53,520 所以,你不必手动printf的。 1127 00:52:53,520 --> 00:52:54,860 但是,这并不是什么大不了的。 1128 00:52:54,860 --> 00:52:59,150 我要储存,里面的$ n, 这个返回值,所以无论 1129 00:52:59,150 --> 00:53:00,490 用户类型是自己的诠释。 1130 00:53:00,490 --> 00:53:01,660 这里是另一种好奇心。 1131 00:53:01,660 --> 00:53:05,810 事实证明,在PHP中,任何变量 只是前缀 1132 00:53:05,810 --> 00:53:06,970 一个美元符号。 1133 00:53:06,970 --> 00:53:08,110 这是一个有点恼人。 1134 00:53:08,110 --> 00:53:10,870 但是请注意,我没有做什么在PHP。 1135 00:53:10,870 --> 00:53:13,980 从左边缺少了什么 一边的等号? 1136 00:53:13,980 --> 00:53:15,430 >> 没有提到的类型。 1137 00:53:15,430 --> 00:53:19,400 因此,这是为了更好地从C不同 或者更糟的是,PHP是一种松散 1138 00:53:19,400 --> 00:53:20,550 类型语言。 1139 00:53:20,550 --> 00:53:22,010 它确实有数字。 1140 00:53:22,010 --> 00:53:23,240 它有字符串。 1141 00:53:23,240 --> 00:53:24,015 它有布尔值。 1142 00:53:24,015 --> 00:53:26,220 它有几个 其他数据类型。 1143 00:53:26,220 --> 00:53:30,570 但是,你的程序员,通常 不必关心他们。 1144 00:53:30,570 --> 00:53:34,010 这样做的好处,是它使得 这一点更容易编程。 1145 00:53:34,010 --> 00:53:35,380 你可以少想一点。 1146 00:53:35,380 --> 00:53:39,840 不足之处是它也打开你到 潜在的错误,如果你不小心 1147 00:53:39,840 --> 00:53:43,080 对待一个数字作为一个字符串,一个字符串 数,有可能,但即使 1148 00:53:43,080 --> 00:53:46,150 然后,PHP和很多语言, 是相当宽容的。 1149 00:53:46,150 --> 00:53:49,050 他们将使用什么叫做 隐式转换。 1150 00:53:49,050 --> 00:53:55,220 如果您尝试在上下文中使用n 的一个数字的情况下,它会 1151 00:53:55,220 --> 00:53:58,040 这里将是一个转换 字符串,因为如果用户键入 1152 00:53:58,040 --> 00:54:01,570 的东西,你得到的结果, readline的,或者得到的字符串, 1153 00:54:01,570 --> 00:54:02,910 要返回一个字符串。 1154 00:54:02,910 --> 00:54:07,360 >> 但是请注意,几行后,我 检查,如果n是大于零的。 1155 00:54:07,360 --> 00:54:13,370 所以,PHP会隐式转换 “串”123,或无论用户 1156 00:54:13,370 --> 00:54:14,860 ,进入一个int类型。 1157 00:54:14,860 --> 00:54:18,730 因此,在短期,东西只是工作 很多更直观。 1158 00:54:18,730 --> 00:54:23,410 所以我们现在开始放松的几个 在过去的事情,我们已经做了。 1159 00:54:23,410 --> 00:54:24,780 >> 这个东西有很多是 同样的,虽然。 1160 00:54:24,780 --> 00:54:26,340 还有等于等于。 1161 00:54:26,340 --> 00:54:30,350 作为一个备用PHP也等于等于 等于,但更多的,或许,在 1162 00:54:30,350 --> 00:54:30,850 未来。 1163 00:54:30,850 --> 00:54:31,150 这是一个。 1164 00:54:31,150 --> 00:54:35,660 错字,但两个等号意味着同样的 之前,进行比较的东西。 1165 00:54:35,660 --> 00:54:37,060 printf的意味着同样的事情之前。 1166 00:54:37,060 --> 00:54:39,160 反斜杠n表示相同 和以前一样的东西。 1167 00:54:39,160 --> 00:54:40,390 >> 所以我怎么运行这个程序吗? 1168 00:54:40,390 --> 00:54:44,400 好了,和以前一样,如果我做PHP, conditions1.php,然后键入 1169 00:54:44,400 --> 00:54:46,560 这样的数字123。 1170 00:54:46,560 --> 00:54:47,720 这是一个正数。 1171 00:54:47,720 --> 00:54:49,510 如果我键入0,我去接0。 1172 00:54:49,510 --> 00:54:53,700 如果我输入负123,我得到 备份一个负数,这是唯一 1173 00:54:53,700 --> 00:54:59,050 也就是说,语法,PHP 是超级,超级相似。 1174 00:54:59,050 --> 00:55:03,250 >> 那么,为什么是现在这个有用 在web环境? 1175 00:55:03,250 --> 00:55:06,710 好吧,让我们回到本froshims 例如,看起来, 1176 00:55:06,710 --> 00:55:08,600 再次,像这里。 1177 00:55:08,600 --> 00:55:11,580 让拉起网页 再次,这个样子。 1178 00:55:11,580 --> 00:55:14,930 我们可以做什么用 数据提交? 1179 00:55:14,930 --> 00:55:18,770 >> 好吧,让我打开了一个新的 版本的此。 1180 00:55:18,770 --> 00:55:20,920 你会看到这个问题 套规范引导您 1181 00:55:20,920 --> 00:55:22,850 通过几个。 1182 00:55:22,850 --> 00:55:29,610 而不是从零开始, 让我们看看froshims3, 1183 00:55:29,610 --> 00:55:31,410 这确实有点多。 1184 00:55:31,410 --> 00:55:34,780 >> 首先要注意,其实,让我们打开 了0,所以你看 1185 00:55:34,780 --> 00:55:37,170 寄存器0是什么。 1186 00:55:37,170 --> 00:55:40,040 注意寄存器0做什么。 1187 00:55:40,040 --> 00:55:41,730 一,我在上面发表意见。 1188 00:55:41,730 --> 00:55:43,900 删除那些只集中在此。 1189 00:55:43,900 --> 00:55:48,730 大多数的内容register0.php ,很明显,什么样的语言? 1190 00:55:48,730 --> 00:55:49,980 只是原料PHP。 1191 00:55:49,980 --> 00:55:53,430 >> 所以通知,这个文件不启动 ,此刻,打开支架, 1192 00:55:53,430 --> 00:55:54,970 问号,PHP。 1193 00:55:54,970 --> 00:55:59,800 PHP让你交融 PHP与HTML标记代码。 1194 00:55:59,800 --> 00:56:04,130 但我已经做了,在这里里面 的页面在这里。 1195 00:56:04,130 --> 00:56:08,180 >> 再次,现在,你只知道这 看着手册。的print_r 1196 00:56:08,180 --> 00:56:13,410 事实证明,是print_recursive。 _recursive而这仅仅是一个方便的 1197 00:56:13,410 --> 00:56:16,780 效用函数,只是打印出来, 递归的,无论你把它。 1198 00:56:16,780 --> 00:56:18,760 如果你的手是一个数组, 它会打印一个数组。 1199 00:56:18,760 --> 00:56:20,180 如果你把它的数字, 它会打印一个数字。 1200 00:56:20,180 --> 00:56:21,570 把钱交出来一个字符串,它会 打印一个字符串。 1201 00:56:21,570 --> 00:56:24,500 如果你把它一个哈希表, 会打印出一个哈希表。 1202 00:56:24,500 --> 00:56:26,730 您不必编写所有 的自己该代码。 1203 00:56:26,730 --> 00:56:29,490 >> 现在可以看到我进入 PHP模式在这里。 1204 00:56:29,490 --> 00:56:32,070 在这里,我退出PHP模式。 1205 00:56:32,070 --> 00:56:35,950 所以当Web服务器读取这个文件 从上到下,从左到右,因为 1206 00:56:35,950 --> 00:56:40,750 它结束在一个名为。php的文件名, 里面没有任何PHP标签 1207 00:56:40,750 --> 00:56:42,820 只是要吐 出来,像原始的HTML。 1208 00:56:42,820 --> 00:56:43,630 没有什么大不了的。 1209 00:56:43,630 --> 00:56:49,280 但是,一旦Web服务器注意事项 这一点,它会说,我不应该 1210 00:56:49,280 --> 00:56:51,850 吐了出来,从字面上看,后的print_r。 1211 00:56:51,850 --> 00:56:54,910 我应该执行以下 一行代码。 1212 00:56:54,910 --> 00:56:59,850 >> 那么最后一个问题,那么,这个文件 ,好了,你到底是这样吗? 1213 00:56:59,850 --> 00:57:00,530 采取一种猜测。 1214 00:57:00,530 --> 00:57:04,230 $ _POST是什么,可能吗? 1215 00:57:04,230 --> 00:57:07,070 >> 观众:[听不清] 1216 00:57:07,070 --> 00:57:08,830 >> 扬声器1:是啊,发布的数据。 1217 00:57:08,830 --> 00:57:11,350 回想一下,我们的向后滚动 时间只是一瞬间。 1218 00:57:11,350 --> 00:57:13,165 froshim0再次,这个样子。 1219 00:57:13,165 --> 00:57:15,640 这是一个超级多数只是HTML。 1220 00:57:15,640 --> 00:57:18,410 同样,一些你没有标签 见过的,或与 1221 00:57:18,410 --> 00:57:19,360 你已经很熟悉。 1222 00:57:19,360 --> 00:57:21,990 但有趣的事情是这样的。 1223 00:57:21,990 --> 00:57:27,270 这一行是真正的链接 它来我们的register0.php文件。 1224 00:57:27,270 --> 00:57:29,200 我通过POST方法提交。 1225 00:57:29,200 --> 00:57:33,130 这意味着,参数 用户类型 1226 00:57:33,130 --> 00:57:35,150 将要结束的地方。 1227 00:57:35,150 --> 00:57:36,175 >> 他们不会 显示在URL中。 1228 00:57:36,175 --> 00:57:39,020 他们仍然要发送的 客户端,从浏览器中,向 1229 00:57:39,020 --> 00:57:42,080 服务器,但只是通过其他 机制,我们将放弃我们手中 1230 00:57:42,080 --> 00:57:44,330 在今天,但它不是在URL中。 1231 00:57:44,330 --> 00:57:47,630 但是请注意,现在的关系 后,按照惯例, 1232 00:57:47,630 --> 00:57:49,160 小写这里。 1233 00:57:49,160 --> 00:57:54,090 >> 但如果我打开register0.php 我显然印刷本。 1234 00:57:54,090 --> 00:57:56,450 因此,这是一种怪异 命名约定。 1235 00:57:56,450 --> 00:58:01,430 但是在PHP不错的是,当 使用PHP在Web环境中,而不是在一个 1236 00:58:01,430 --> 00:58:04,480 刚才像我一样的命令行, 当你真正使用它在Web 1237 00:58:04,480 --> 00:58:10,580 页面,因为我们是在一个虚拟主机的目录, PHP会自动填补这一 1238 00:58:10,580 --> 00:58:15,560 的事情,这是一个关联数组, 可以这么说,一个哈希表, 1239 00:58:15,560 --> 00:58:17,290 所有用户输入。 1240 00:58:17,290 --> 00:58:22,000 >> 总之,$ _POST全部大写是一个 全局变量,PHP只是 1241 00:58:22,000 --> 00:58:25,050 奇迹般地创造你的时候 使用PHP在Web上下文。 1242 00:58:25,050 --> 00:58:29,160 它把它里面的所有的 的表单中的参数名称 1243 00:58:29,160 --> 00:58:33,200 提交本文件及其所有 用户输入的值 1244 00:58:33,200 --> 00:58:37,790 因此,它的手给你什么用户 这种形式输入。 1245 00:58:37,790 --> 00:58:42,210 >> 之前,我们得到了非常愚蠢的输出 只看到这一点,因为我所做的 1246 00:58:42,210 --> 00:58:44,400 递归打印这个数组。 1247 00:58:44,400 --> 00:58:46,060 最关键的是名称,值是大卫。 1248 00:58:46,060 --> 00:58:46,980 最关键的是船长。 1249 00:58:46,980 --> 00:58:47,970 该值上。 1250 00:58:47,970 --> 00:58:52,300 和双箭头和角度 有支架,这仅仅是任意的。 1251 00:58:52,300 --> 00:58:53,270 这是不是代码。 1252 00:58:53,270 --> 00:58:57,690 这仅仅是PHP的方式向您展示 一些关键的价值是什么。 1253 00:58:57,690 --> 00:59:03,000 >> 但现在让我建议,在 froshIMs3,它几乎相同 1254 00:59:03,000 --> 00:59:04,950 除了提交该文件。 1255 00:59:04,950 --> 00:59:08,570 再次,我们要种只是 看了一眼,正好看到一些 1256 00:59:08,570 --> 00:59:12,040 语法,但注意什么 这个文件。 1257 00:59:12,040 --> 00:59:14,930 以此来猜测只是基于线 代码,这可能看起来象 1258 00:59:14,930 --> 00:59:17,410 希腊,在一定程度上 显然这样做。 1259 00:59:17,410 --> 00:59:20,580 1260 00:59:20,580 --> 00:59:23,110 >> 此主题相关文件 邮件,电子邮件。 1261 00:59:23,110 --> 00:59:24,770 那么,什么是这个程序在做什么? 1262 00:59:24,770 --> 00:59:28,740 在这个版本中,如果我是真正 填写此表 - 让我去 1263 00:59:28,740 --> 00:59:30,760 froshIMs3,不是froshIMs0 - 1264 00:59:30,760 --> 00:59:33,280 1265 00:59:33,280 --> 00:59:34,540 形式看起来是一样的。 1266 00:59:34,540 --> 00:59:37,980 队长大卫,男,宿舍,马修斯。 1267 00:59:37,980 --> 00:59:42,980 但是,如果我提出这个,这个文件是 要去register3.php。 1268 00:59:42,980 --> 00:59:46,330 >> 我要求看在它的 源代码,这将 1269 00:59:46,330 --> 00:59:47,650 以某种方式涉及到电子邮件。 1270 00:59:47,650 --> 00:59:49,620 让我继续前进,打开此 在一个更大的窗口,因此我们 1271 00:59:49,620 --> 00:59:51,030 可以看到它更干净。 1272 00:59:51,030 --> 00:59:57,220 我们在虚拟主机,本地主机, 公众froshims。 1273 00:59:57,220 --> 00:59:58,680 我要开辟一个不同 程序,所以我们 1274 00:59:58,680 --> 01:00:00,160 一次可以看到更多的。 1275 01:00:00,160 --> 01:00:03,100 >> 所以,现在在这里,发现了一些事情。 1276 01:00:03,100 --> 01:00:06,530 在该文件的顶部是开放的 括号,问号,PHP。 1277 01:00:06,530 --> 01:00:08,920 然后有一堆意见, 我们可以忽略, 1278 01:00:08,920 --> 01:00:10,450 现在无趣的。 1279 01:00:10,450 --> 01:00:11,300 >> 现在有这个。 1280 01:00:11,300 --> 01:00:14,200 PHP有很多 代码调用需要。 1281 01:00:14,200 --> 01:00:19,110 它非常类似于在精神上C的 包括哈希包括 1282 01:00:19,110 --> 01:00:21,980 基本上抓住了一些内容 其他文件,只是他们在这里,扑通一声 1283 01:00:21,980 --> 01:00:22,930 这样你就可以使用它们。 1284 01:00:22,930 --> 01:00:27,060 在这种情况下,该装置安装有 预装,一个图书馆,自由和 1285 01:00:27,060 --> 01:00:29,900 称为PHP的开源库 邮件程序,任何人都可以 1286 01:00:29,900 --> 01:00:30,770 从互联网上下载。 1287 01:00:30,770 --> 01:00:32,000 我们只是做给你。 1288 01:00:32,000 --> 01:00:36,130 这意味着我现在有电子邮件 在我手上的功能。 1289 01:00:36,130 --> 01:00:38,170 >> 现在,请注意几件事。 1290 01:00:38,170 --> 01:00:41,120 我要验证 表单的提交。 1291 01:00:41,120 --> 01:00:45,980 打开了PHP,一个惊叹号 不是运营商,就像点 1292 01:00:45,980 --> 01:00:49,810 但是PHP也有一个功能 被称为空。 1293 01:00:49,810 --> 01:00:53,920 >> 空,则返回true值 你的东西拿去 1294 01:00:53,920 --> 01:00:57,190 括号内是空的,像 用户没有输入任何内容英寸 1295 01:00:57,190 --> 01:01:02,680 因此,这是说,并注意 语法,非常类似于C,如果 1296 01:01:02,680 --> 01:01:07,730 名称键,这样的name字段的形式, 这是提交通过后, 1297 01:01:07,730 --> 01:01:13,010 用户来说是不空的,并且它们的 性别是不是空的形式 1298 01:01:13,010 --> 01:01:15,980 很好,他们的宿舍是不是空的 - 1299 01:01:15,980 --> 01:01:19,980 但是请注意,我不关心队长, 那么我们该怎么办? 1300 01:01:19,980 --> 01:01:21,990 >> 我要执行 这行代码。 1301 01:01:21,990 --> 01:01:24,100 你能想到这种 像malloc的,但它是一个小 1302 01:01:24,100 --> 01:01:24,800 票友比。 1303 01:01:24,800 --> 01:01:29,200 但现在,这给了我一个特别的 结构类型的PHP邮件。 1304 01:01:29,200 --> 01:01:31,410 但是,忽视今天的新的关键字。 1305 01:01:31,410 --> 01:01:35,670 >> 现在,我要调用一个函数叫做 IsSMTP,它说,使用SMTP。 1306 01:01:35,670 --> 01:01:39,380 这是25端口,就像视频 上周,被扔的东西 1307 01:01:39,380 --> 01:01:40,710 到防火墙的电子邮件。 1308 01:01:40,710 --> 01:01:42,440 是SMTP端口25。 1309 01:01:42,440 --> 01:01:44,410 SMTP是指使用的邮件服务器。 1310 01:01:44,410 --> 01:01:46,215 哪一个,我们可以使用哈佛 SMTP.fas.harvard.edu。 1311 01:01:46,215 --> 01:01:48,850 1312 01:01:48,850 --> 01:01:51,590 >> 我们可以设置从地址 是哈佛大学约翰的。 1313 01:01:51,590 --> 01:01:55,090 如果我继续向下滚动,我可以设置 收件人地址,只是 1314 01:01:55,090 --> 01:01:56,840 任意约翰 哈佛。 1315 01:01:56,840 --> 01:01:59,210 于是,他将要寄给自己。 1316 01:01:59,210 --> 01:02:01,600 >> 现在,我可以设置主题 要注册。 1317 01:02:01,600 --> 01:02:03,700 我可以定身 电子邮件如下。 1318 01:02:03,700 --> 01:02:06,500 这条线看上去多了几分神秘, 但是这只是因为有很多 1319 01:02:06,500 --> 01:02:07,450 在它的信息。 1320 01:02:07,450 --> 01:02:10,670 其中,有一个点运算符。 1321 01:02:10,670 --> 01:02:14,510 必须有人已经知道了什么 点运算。 1322 01:02:14,510 --> 01:02:15,436 它的串联。 1323 01:02:15,436 --> 01:02:19,240 所以,如果你想利用PHP中的字符串, 追加或它前面加, 1324 01:02:19,240 --> 01:02:23,500 另一个字符串在PHP中,感谢上帝,你 不必,使用strcopy和malloc, 1325 01:02:23,500 --> 01:02:25,490 所有这一切了。 1326 01:02:25,490 --> 01:02:28,765 >> 如果你想连接两个字符串, 谁在乎内存。 1327 01:02:28,765 --> 01:02:30,850 让PHP的身影,为你。 1328 01:02:30,850 --> 01:02:35,200 PHP会做什么用点操作符 这里只是做一个大句子出来 1329 01:02:35,200 --> 01:02:37,900 这条线,这条线, 这条线,这条线。 1330 01:02:37,900 --> 01:02:40,460 现在通知,它会 插入值。 1331 01:02:40,460 --> 01:02:43,680 所以电子邮件,约翰·哈佛是怎么回事 接收从字面上去说 1332 01:02:43,680 --> 01:02:49,450 名称,结肠癌的东西,而不是,那么我们 关闭字符串串联 1333 01:02:49,450 --> 01:02:52,220 无论用户输入 ,然后在新的一行。 1334 01:02:52,220 --> 01:02:54,570 >> 然后,在约翰·哈佛的下一行 电子邮件,它会说 1335 01:02:54,570 --> 01:02:55,910 船长,开或没有。 1336 01:02:55,910 --> 01:02:57,810 这是怎么回事说性别, 男性或女性。 1337 01:02:57,810 --> 01:02:59,680 宿舍将是马修斯 在我的情况下。 1338 01:02:59,680 --> 01:03:03,400 然后注意到熟悉的分号 结束。 1339 01:03:03,400 --> 01:03:07,830 然后,这里通知,有点 神秘,但同样,继 1340 01:03:07,830 --> 01:03:12,730 图案将变得更加熟悉 P后设置7,如果发送邮件 1341 01:03:12,730 --> 01:03:16,610 返回false,然后继续前进,死了。 1342 01:03:16,610 --> 01:03:19,610 >> 因此,PHP有一个功能称为模, 其中,从字面上看,只是杀死 1343 01:03:19,610 --> 01:03:22,830 网站仅仅打印出任何 你告诉它 - 它正在死去 1344 01:03:22,830 --> 01:03:24,280 也就是说,可以这么说。 1345 01:03:24,280 --> 01:03:28,310 而这,的情况下,它会打印 出什么错误信息 1346 01:03:28,310 --> 01:03:29,860 不管发生什么事要出问题。 1347 01:03:29,860 --> 01:03:34,490 所以长话短说,在这里,我们有什么 是一个例子,其中,当用户 1348 01:03:34,490 --> 01:03:39,150 提交形式,froshim0, froshims3.php,它去 1349 01:03:39,150 --> 01:03:40,760 register3.php。 1350 01:03:40,760 --> 01:03:45,290 但register3.php然后继续 执行所有这些线路。 1351 01:03:45,290 --> 01:03:46,620 >> 所以这是一个很少人采取跳投。 1352 01:03:46,620 --> 01:03:50,380 一,它显然是相当容易的, 编程,发送电子邮件, 1353 01:03:50,380 --> 01:03:50,830 这是很好的。 1354 01:03:50,830 --> 01:03:53,500 当用户注册,在为您的网站 这种情况下,在注册时为您的 1355 01:03:53,500 --> 01:03:56,220 运动,你可以通过电子邮件大一 普罗克特或约翰 1356 01:03:56,220 --> 01:03:57,650 哈佛,在这种情况下。 1357 01:03:57,650 --> 01:04:01,630 >> 但是,这也意味着你可以做什么? 1358 01:04:01,630 --> 01:04:03,970 任何人到任何发送电子邮件。 1359 01:04:03,970 --> 01:04:05,430 这是非常真实的。 1360 01:04:05,430 --> 01:04:08,580 这是不容易做,如果 你已经习惯了使用Gmail。 1361 01:04:08,580 --> 01:04:11,310 但是,如果你曾经使用Eudora或 Outlook中,你几乎可以告诉 1362 01:04:11,310 --> 01:04:13,720 你的邮件服务器 任何你想要的。 1363 01:04:13,720 --> 01:04:16,450 而这正是我需要把 那顶帽子,并说,不这样做。 1364 01:04:16,450 --> 01:04:21,140 但是,这是多么容易证明 它是执行网络钓鱼攻击, 1365 01:04:21,140 --> 01:04:24,310 发送匿名电子邮件, 垃圾邮件,更普遍。 1366 01:04:24,310 --> 01:04:27,330 它真的可以归结为 事实上,所有你需要的是一些 1367 01:04:27,330 --> 01:04:28,500 编程方式访问。 1368 01:04:28,500 --> 01:04:31,940 >> 顺便说一句,我最亲密的邂逅 广告板,我自己的大一, 1369 01:04:31,940 --> 01:04:34,320 当我发现这个很酷 欺骗,哇,你可以 1370 01:04:34,320 --> 01:04:36,850 任何人发送电子邮件。 1371 01:04:36,850 --> 01:04:39,770 因此,我们有一些愚蠢的 的说法,从字面上看,马修斯, 1372 01:04:39,770 --> 01:04:40,790 之间我的普罗克特组。 1373 01:04:40,790 --> 01:04:42,470 我什至不记得 问题是什么。 1374 01:04:42,470 --> 01:04:44,970 但我想尝试把一个 这个愚蠢的辩论结束。 1375 01:04:44,970 --> 01:04:48,580 >> 所以,我决定,我将只发送一封电子邮件 我的宝洁组,故作 1376 01:04:48,580 --> 01:04:52,000 其他的家伙,我的意见 不同意,他默许 1377 01:04:52,000 --> 01:04:54,680 无论在我看来 这个特殊的辩论。 1378 01:04:54,680 --> 01:04:59,320 所以我使用伪造电子邮件 类似的技术精神。 1379 01:04:59,320 --> 01:05:01,256 但它实际上是更容易 的时间。 1380 01:05:01,256 --> 01:05:02,435 命中。 1381 01:05:02,435 --> 01:05:06,660 他很不高兴,也不会 广告板。 1382 01:05:06,660 --> 01:05:10,280 >> 我感到非常内迅速引起 因为,你知道,我签署秒 1383 01:05:10,280 --> 01:05:11,420 我的电子邮件以某种方式。 1384 01:05:11,420 --> 01:05:14,200 虽然我做手工,在大 部分,15年后,因为我是 1385 01:05:14,200 --> 01:05:15,080 由创伤。 1386 01:05:15,080 --> 01:05:16,960 我没有签名 现在我的电子邮件。 1387 01:05:16,960 --> 01:05:20,440 但在1995年,我刚做了一个信号, 在我的电子邮件签名。 1388 01:05:20,440 --> 01:05:24,630 因此就出现了这样一个字条说,亲爱的 普罗克特组,我默许我看来, 1389 01:05:24,630 --> 01:05:31,240 并同意大卫签署 如此,新生产线,新生产线,DJM。 1390 01:05:31,240 --> 01:05:36,220 >> 所以,不要做,或在一般情况下,采取 这种技术的优点。 1391 01:05:36,220 --> 01:05:39,950 但是,当一个网站,喜欢 您的最后一个项目,当进行 1392 01:05:39,950 --> 01:05:43,460 网站创业的东西, 这是怎么回事,务实的态度,你可以 1393 01:05:43,460 --> 01:05:47,000 利用在互联网上的其他服务 如邮件,然后实际 1394 01:05:47,000 --> 01:05:49,440 送东西使用代码。 1395 01:05:49,440 --> 01:05:51,240 >> 那么我们如何才能改善? 1396 01:05:51,240 --> 01:05:54,370 嗯,首先让我们来快速浏览 一些事情,你会看到, 1397 01:05:54,370 --> 01:05:56,170 然后看一看 一对夫妇的例子。 1398 01:05:56,170 --> 01:05:59,500 所以,放心,因为 我们正在通过PHP飞行。 1399 01:05:59,500 --> 01:06:02,470 我知道,在某些时候,你就会有 如果你真正开始写这 1400 01:06:02,470 --> 01:06:03,460 已经没有。 1401 01:06:03,460 --> 01:06:06,220 ,一个实现,主要是一种 ,用PHP窗外。 1402 01:06:06,220 --> 01:06:09,420 如果你想编写代码获取 执行时,你刚开始写 1403 01:06:09,420 --> 01:06:13,970 一个名为。PHP只要 你有开放的支架 1404 01:06:13,970 --> 01:06:15,620 问号PHP标签。 1405 01:06:15,620 --> 01:06:19,730 >> 但是请注意,这些都是 PHP中的条件。 1406 01:06:19,730 --> 01:06:22,610 请注意,这是确切的同一张幻灯片 我们在第一个星期,当我们有 1407 01:06:22,610 --> 01:06:25,670 C.条件的条件 PHP是结构和 1408 01:06:25,670 --> 01:06:27,140 语法相同。 1409 01:06:27,140 --> 01:06:30,290 唯一的区别是,如果你已经有了 涉及的变量,你有那些 1410 01:06:30,290 --> 01:06:31,600 美元的迹象。 1411 01:06:31,600 --> 01:06:33,970 >> 同时,布尔表达式 看起来就像这为 1412 01:06:33,970 --> 01:06:35,725 或或和的在一起。 1413 01:06:35,725 --> 01:06:37,780 开关长得一模一样。 1414 01:06:37,780 --> 01:06:42,180 在PHP中什么是好的,而在C语言中, 开关必须是个案 1415 01:06:42,180 --> 01:06:46,380 整数或字符等,在PHP中的原语 你的case语句实际上可以 1416 01:06:46,380 --> 01:06:48,430 一个整体的字符串上,这是 其实挺有意思。 1417 01:06:48,430 --> 01:06:49,480 为您节省一些时间。 1418 01:06:49,480 --> 01:06:50,820 不能这样做,在C 1419 01:06:50,820 --> 01:06:52,880 >> 下面是一个PHP for循环。 1420 01:06:52,880 --> 01:06:53,740 这是相同的。 1421 01:06:53,740 --> 01:06:55,400 可能有一些美元的迹象 为变量。 1422 01:06:55,400 --> 01:06:57,530 您不必提 东西是一个int。 1423 01:06:57,530 --> 01:07:00,580 你刚刚宣布它与一个美元符号 和的变量的名称。 1424 01:07:00,580 --> 01:07:01,430 但是,一个for循环是相同的。 1425 01:07:01,430 --> 01:07:02,760 while循环是一样的。 1426 01:07:02,760 --> 01:07:04,870 一个do while循环是一样的。 1427 01:07:04,870 --> 01:07:06,170 >> 这是一个有点不同。 1428 01:07:06,170 --> 01:07:12,410 因此,PHP中,一个数组,你可以 静态声明一个数组,在C, 1429 01:07:12,410 --> 01:07:14,420 但是你用方括号内。 1430 01:07:14,420 --> 01:07:17,060 在C语言中,你可以使用大括号, 如果你知道这一点。 1431 01:07:17,060 --> 01:07:20,910 但其实这是很常见的PHP 声明一个数组,在这种情况下, 1432 01:07:20,910 --> 01:07:23,640 数字,并调用 变量的数字。 1433 01:07:23,640 --> 01:07:25,300 >> 变量本身这个样子。 1434 01:07:25,300 --> 01:07:28,710 这里是一个字符串,报价引文结束“你好 世界,“你可以有一个反斜杠Ń。 1435 01:07:28,710 --> 01:07:30,950 在这种情况下,我根本就没有。 1436 01:07:30,950 --> 01:07:32,640 >> 现在,这是一个有趣的结构。 1437 01:07:32,640 --> 01:07:33,700 C没有。 1438 01:07:33,700 --> 01:07:34,700 但是,这是超级有用。 1439 01:07:34,700 --> 01:07:38,160 你会看到在P组7 规范 - 每个构造。 1440 01:07:38,160 --> 01:07:41,800 如果你想重申所有 元素的数组,你不必 1441 01:07:41,800 --> 01:07:45,500 对付我,而且$ n $, + +,和所有。 1442 01:07:45,500 --> 01:07:47,640 你可以从字面上说,在PHP中,这 - 1443 01:07:47,640 --> 01:07:51,890 号,所以每个号码 我假定数字 1444 01:07:51,890 --> 01:07:53,380 是一个数字数组。 1445 01:07:53,380 --> 01:07:56,460 而当我说每个号码 作为数量,这将 1446 01:07:56,460 --> 01:08:00,505 自动执行我的循环, 更新,在每次迭代时,该值 1447 01:08:00,505 --> 01:08:03,260 里面的美元符号的数 - 1448 01:08:03,260 --> 01:08:07,730 一遍,又一遍,并再次行走 对我来说,数组。 1449 01:08:07,730 --> 01:08:08,735 因此,它只是为我们节省了代码。 1450 01:08:08,735 --> 01:08:12,250 没有分号,没有+ +的,没有我的, 没有n的,这是刚刚好。 1451 01:08:12,250 --> 01:08:13,700 >> 但是PHP也有这个。 1452 01:08:13,700 --> 01:08:14,830 这是超级强大。 1453 01:08:14,830 --> 01:08:17,410 你会使用这个,手 在P 7。 1454 01:08:17,410 --> 01:08:21,990 关联数组也宣布 方括号。 1455 01:08:21,990 --> 01:08:23,569 但是请注意,现在的语法。 1456 01:08:23,569 --> 01:08:26,880 这让人想起我们看到了什么 刚才的print_r。 1457 01:08:26,880 --> 01:08:31,810 多少个键,作为一个小的完整性检查, 似乎有这个数组。 1458 01:08:31,810 --> 01:08:32,689 >> 因此,它有两个。 1459 01:08:32,689 --> 01:08:33,830 我称这是一个阵列。 1460 01:08:33,830 --> 01:08:36,760 但是,如果它的帮助,你可以认为 此如哈希表中,或者作为 1461 01:08:36,760 --> 01:08:37,930 关联数组。 1462 01:08:37,930 --> 01:08:39,580 但它仅仅是一个不同的 类型的数组。 1463 01:08:39,580 --> 01:08:41,080 再次,不同的语言 有这些。 1464 01:08:41,080 --> 01:08:43,810 我们会看到类似的东西 在JavaScript中也是如此。 1465 01:08:43,810 --> 01:08:44,609 有两个键。 1466 01:08:44,609 --> 01:08:48,390 其一是报价引文结束,“符号”,一个是 引用引文结束“的价格。”和那些键 1467 01:08:48,390 --> 01:08:49,250 每个人都有一个值。 1468 01:08:49,250 --> 01:08:54,420 在这种情况下,符号的值是FB, Facebook和价格的值是49,26, 1469 01:08:54,420 --> 01:08:56,899 这是Facebook的股票 今天上午的价格。 1470 01:08:56,899 --> 01:09:00,170 >> 那么,什么是有用之 关联数组。 1471 01:09:00,170 --> 01:09:02,620 我能有一个数字 只是索引数组 1472 01:09:02,620 --> 01:09:04,120 简单的方括号。 1473 01:09:04,120 --> 01:09:09,380 我能有美元符号 报价等于这一点。 1474 01:09:09,380 --> 01:09:10,529 让我真正做到这一点。 1475 01:09:10,529 --> 01:09:14,796 假设我不是刚刚宣布 像这个数组。 1476 01:09:14,796 --> 01:09:17,590 这是完全有效的, 语法。 1477 01:09:17,590 --> 01:09:20,569 它不丢失任何信息, 本身。 1478 01:09:20,569 --> 01:09:24,760 我仍然看到这个符号是FB, 而价格是49,26。 1479 01:09:24,760 --> 01:09:28,939 那么,为什么联想 阵列引人注目吗? 1480 01:09:28,939 --> 01:09:30,189 >> 观众:你不必记得 你把东西。 1481 01:09:30,189 --> 01:09:32,050 1482 01:09:32,050 --> 01:09:34,130 >> 扬声器1:没错,你没有 要记住,你放东西的地方。 1483 01:09:34,130 --> 01:09:37,670 您不必任意记得 ,股票代码支架为零, 1484 01:09:37,670 --> 01:09:41,479 股票价格在支架一, 这是特别危险的,如果你 1485 01:09:41,479 --> 01:09:43,220 改变的事情,最终。 1486 01:09:43,220 --> 01:09:46,399 它要好得多关联的 我们就这么叫元数据 1487 01:09:46,399 --> 01:09:48,340 实际的数据。 1488 01:09:48,340 --> 01:09:52,399 我认为,我们真正关心 这里是FB,49,26。 1489 01:09:52,399 --> 01:09:57,020 是元数据的符号和价格 它描述的数据,我们 1490 01:09:57,020 --> 01:09:58,180 真正关心。 1491 01:09:58,180 --> 01:10:01,910 但是,这仅仅是这么多 更容易访问。 1492 01:10:01,910 --> 01:10:04,090 >> 现在,一边是什么 我们付出的代价吗? 1493 01:10:04,090 --> 01:10:06,600 我们一直在做这 在CS50周。 1494 01:10:06,600 --> 01:10:10,740 此功能必须拿出一些成本。 1495 01:10:10,740 --> 01:10:11,350 内存。 1496 01:10:11,350 --> 01:10:13,830 所以你不只是存储一个32位 整数,例如。 1497 01:10:13,830 --> 01:10:17,980 你存储符号/ 0,大概。 1498 01:10:17,980 --> 01:10:19,160 所以你使用更多的内存。 1499 01:10:19,160 --> 01:10:22,540 >> ,什么是性能 在寻找的东西 1500 01:10:22,540 --> 01:10:24,822 关联数组,可能吗? 1501 01:10:24,822 --> 01:10:26,590 这也可能是更慢。 1502 01:10:26,590 --> 01:10:29,670 随机访问是不错的,特别是 当你可以做二进制搜索。 1503 01:10:29,670 --> 01:10:33,380 但是,如果你现在实际上是在寻找不 数字,但对于字符串,这 1504 01:10:33,380 --> 01:10:37,630 真正下面实现 油烟机,可能作为一个哈希表, 1505 01:10:37,630 --> 01:10:42,950 你使用一个哈希表 单独的链接。 1506 01:10:42,950 --> 01:10:46,040 或者你尝试实际使用 存储的值。 1507 01:10:46,040 --> 01:10:50,550 因此,也许你能做到恒定的时间,但 你还是得看S-Y-M-B-ó-L, 1508 01:10:50,550 --> 01:10:54,510 潜在的,而不是仅仅32 看起来位。 1509 01:10:54,510 --> 01:10:58,430 如此反复,这些同样的想法 在此背景下备份复发。 1510 01:10:58,430 --> 01:11:02,120 >> 但同样,PHP现在有一些超级 全局,事实证明, 1511 01:11:02,120 --> 01:11:02,900 关联数组。 1512 01:11:02,900 --> 01:11:05,590 我们看到刚才,$ _POST。 1513 01:11:05,590 --> 01:11:08,400 ,超级全局 有钥匙和值。 1514 01:11:08,400 --> 01:11:10,550 具体而言,键 排队什么? 1515 01:11:10,550 --> 01:11:14,520 钥匙在哪里在$ _POST从何而来? 1516 01:11:14,520 --> 01:11:15,380 只要回顾一下? 1517 01:11:15,380 --> 01:11:16,480 >> 观众:姓名。 1518 01:11:16,480 --> 01:11:17,900 >> 扬声器1:姓名,在哪里? 1519 01:11:17,900 --> 01:11:19,860 >> 观众:[听不清] 1520 01:11:19,860 --> 01:11:20,750 >> 扬声器1:名称的属性。 1521 01:11:20,750 --> 01:11:23,480 那么哪里,哪里他们 最初是从哪里来的? 1522 01:11:23,480 --> 01:11:24,120 该表格​​。 1523 01:11:24,120 --> 01:11:30,140 因此,如果一个HTML页面有一个表单标签, 里面是一些投入,如 1524 01:11:30,140 --> 01:11:34,760 检查框,文本框,下拉 菜单,其中每一个都有一个名称,那些 1525 01:11:34,760 --> 01:11:40,260 名称最终在$ _POST键, 坦率地说,对于这个问题,$ _GET。 1526 01:11:40,260 --> 01:11:42,130 如果该方法是GET,同样的想法。 1527 01:11:42,130 --> 01:11:43,830 它只是在不同的超级全局。 1528 01:11:43,830 --> 01:11:47,620 和的值,当然,来自 无论用户在他或输入 1529 01:11:47,620 --> 01:11:48,890 她的浏览器。 1530 01:11:48,890 --> 01:11:49,830 >> 但是,还有一些其他的。 1531 01:11:49,830 --> 01:11:52,140 有饼干,我们将 最终回来。 1532 01:11:52,140 --> 01:11:56,050 但那些知道的事情,你 网页使用一些善或恶。 1533 01:11:56,050 --> 01:11:57,420 但是,我们会回来的。 1534 01:11:57,420 --> 01:12:01,720 服务器和会话,这两个 有一些特殊的实用程序。 1535 01:12:01,720 --> 01:12:03,940 >> 但是,让我们来看看这个。 1536 01:12:03,940 --> 01:12:13,330 让我去进取,不断开拓的例子 所以MVC称为mvc0.php 1537 01:12:13,330 --> 01:12:14,900 代表以下。 1538 01:12:14,900 --> 01:12:19,390 我们介绍这个比前面 典型的,真的,让你设计 1539 01:12:19,390 --> 01:12:22,180 习题集7,也最终项目 行业排序 1540 01:12:22,180 --> 01:12:23,670 标准的方式,干净的方式。 1541 01:12:23,670 --> 01:12:24,820 这是很好的设计。 1542 01:12:24,820 --> 01:12:29,090 >> 所以你看到了,你会 经验,在P组7,范式,排序 1543 01:12:29,090 --> 01:12:32,260 编程的心态,看起来 有点这样的事情。 1544 01:12:32,260 --> 01:12:35,570 M为控制器的型号,C, V查看。 1545 01:12:35,570 --> 01:12:39,690 长话短说,MVC是正中下怀 一种方法,一种使 1546 01:12:39,690 --> 01:12:43,360 网站,特别是,由此 把所有你的,愚蠢的短语 - 1547 01:12:43,360 --> 01:12:44,970 业务逻辑 - 1548 01:12:44,970 --> 01:12:49,710 所有您的知识产权 什么叫做一个控制器,一个文件 1549 01:12:49,710 --> 01:12:54,840 喜欢的index.php,否则我们将看到的, quote.php或buy.php的。 1550 01:12:54,840 --> 01:12:59,570 >> 的背景下,习题集7, 模型通常包含您的数据, 1551 01:12:59,570 --> 01:13:03,860 任何涉及到数据库,我们会 最终看到的,和你的意见 1552 01:13:03,860 --> 01:13:07,510 包含你的美学 网站的HTML,CSS。 1553 01:13:07,510 --> 01:13:10,420 因此,我们已经看到了这一点在C 位使用。h文件。 1554 01:13:10,420 --> 01:13:15,010 我们真的看到了刚才用CSS, 通过分解的CSS风格化 1555 01:13:15,010 --> 01:13:16,520 出来的东西我们的HTML。 1556 01:13:16,520 --> 01:13:20,730 >> 因此,MVC是真的只是绘制 线在沙说, 1557 01:13:20,730 --> 01:13:25,400 有趣的编程代码为您 网站属于什么我们称之为 1558 01:13:25,400 --> 01:13:26,400 控制器。 1559 01:13:26,400 --> 01:13:29,280 东西通常涉及到数据库 结束了在一个模型。 1560 01:13:29,280 --> 01:13:33,070 但是你会看到,在习题集7,我们 C和M合并,以保持它的简单。 1561 01:13:33,070 --> 01:13:37,630 但是,鉴于你的HTML 和美学通常会去。 1562 01:13:37,630 --> 01:13:39,160 >> 所以,这是什么意思,实质呢? 1563 01:13:39,160 --> 01:13:45,980 好吧,让我进入我们的MVC 目录,如下所示。 1564 01:13:45,980 --> 01:13:48,880 你会看到更多的这些 通过参观在规范。 1565 01:13:48,880 --> 01:13:53,200 所以,在编码对象,我声称,这是一样, 版本CS50网站。 1566 01:13:53,200 --> 01:13:56,670 >> 我们有一些HTML,像 一个大h1标签,显然。 1567 01:13:56,670 --> 01:13:57,800 然后,项目符号列表。 1568 01:13:57,800 --> 01:13:59,860 我从来没有见过一个项目符号列表 过,但没什么大不了的。 1569 01:13:59,860 --> 01:14:01,590 让我们快速看的源代码。 1570 01:14:01,590 --> 01:14:06,610 原来无序列表子弹 是开括号微升与一个或 1571 01:14:06,610 --> 01:14:09,065 多个列表项,李。 1572 01:14:09,065 --> 01:14:10,650 因此,这里是通知一个锚标记。 1573 01:14:10,650 --> 01:14:12,130 我们看到前那一刻。 1574 01:14:12,130 --> 01:14:13,810 >> 所以这是我是如何实现 这一页。 1575 01:14:13,810 --> 01:14:18,460 我有两个环节,两个列表项, 无序列表,UL和结束 1576 01:14:18,460 --> 01:14:22,700 结果,美观,这是非常 漂亮的网站,这里的版本0。 1577 01:14:22,700 --> 01:14:26,840 但现在有什么有趣的是如何 是引擎盖下实现的。 1578 01:14:26,840 --> 01:14:33,590 >> 让我进入gedit和打开这个 第一个例子来画一幅画。 1579 01:14:33,590 --> 01:14:37,070 我们来看看什么是有缺陷的, 可能在这里。 1580 01:14:37,070 --> 01:14:43,260 现在,如果我去到本地主机,公共, MVC中,发现了一些文件。 1581 01:14:43,260 --> 01:14:45,780 我要调用这些, 此刻,所有的控制器。 1582 01:14:45,780 --> 01:14:48,640 但是,这是一个有点滥用,因为 你会看到一切都混合 1583 01:14:48,640 --> 01:14:49,620 它们内部。 1584 01:14:49,620 --> 01:14:52,330 >> 让我走里面的index.php。 1585 01:14:52,330 --> 01:14:54,700 我们看到,从字面上看,相同的HTML。 1586 01:14:54,700 --> 01:14:57,970 因此,即使这个文件结束 PHP,并不意味着它有 1587 01:14:57,970 --> 01:14:59,500 有任何PHP代码。 1588 01:14:59,500 --> 01:15:02,290 它可以是原始的HTML,虽然 这是一种愚蠢。 1589 01:15:02,290 --> 01:15:07,650 但是请注意有没有打开支架PHP 标记,除了这一点,其中,坦率地说, 1590 01:15:07,650 --> 01:15:09,160 只是作为评论。 1591 01:15:09,160 --> 01:15:12,080 但是,这是功能上并没有 甚至是有趣的。 1592 01:15:12,080 --> 01:15:12,960 >> 但是,注意到这一点。 1593 01:15:12,960 --> 01:15:15,400 现在有趣的是什么 此页面上的变化。 1594 01:15:15,400 --> 01:15:16,650 让我单击讲课。 1595 01:15:16,650 --> 01:15:18,560 注意到的网址即将改变。 1596 01:15:18,560 --> 01:15:20,930 现在我在lectures.php。 1597 01:15:20,930 --> 01:15:22,630 让我单击为零。 1598 01:15:22,630 --> 01:15:27,200 现在我在week0.php现在让 在gedit,我打开这些文件。 1599 01:15:27,200 --> 01:15:30,120 不只是指数,但让 我开了讲座。 1600 01:15:30,120 --> 01:15:33,900 让我摆脱的意见 只专注于这部分。 1601 01:15:33,900 --> 01:15:37,680 >> 现在我只是一个更开放, week0.php,扔掉的意见, 1602 01:15:37,680 --> 01:15:39,910 只是清理它。 1603 01:15:39,910 --> 01:15:41,720 现通知如下。 1604 01:15:41,720 --> 01:15:47,340 还真有几分思考,仔细思考 设计,让我们使它线 1605 01:15:47,340 --> 01:15:52,013 起来一样,有什么可以做 更好地在这里,你觉得呢? 1606 01:15:52,013 --> 01:15:56,450 1607 01:15:56,450 --> 01:15:57,780 >> 我怎么做第一个星期吗? 1608 01:15:57,780 --> 01:15:58,480 这个怎么样。 1609 01:15:58,480 --> 01:16:00,450 所以这是我做了第一个星期。 1610 01:16:00,450 --> 01:16:08,290 我去的文件,新建,粘贴,保存, 的week1.php,然后我就在这里。 1611 01:16:08,290 --> 01:16:09,875 我改变 - 1612 01:16:09,875 --> 01:16:11,646 事情经过是这样,一到周五。 1613 01:16:11,646 --> 01:16:14,430 1614 01:16:14,430 --> 01:16:15,810 我改变了零一。 1615 01:16:15,810 --> 01:16:17,150 我改变之一。 1616 01:16:17,150 --> 01:16:20,350 >> 好了,现在看我的文件。 1617 01:16:20,350 --> 01:16:22,100 可以做什么不同? 1618 01:16:22,100 --> 01:16:25,310 的机会在哪里,也许? 1619 01:16:25,310 --> 01:16:28,330 所以有机会开始 保理这个东西。 1620 01:16:28,330 --> 01:16:32,950 让我打开了,作为一个搅局者, 你会看到在P组7。 1621 01:16:32,950 --> 01:16:38,750 如果我打开了,现在版本的index.php 五本,它看起来方式 1622 01:16:38,750 --> 01:16:40,730 更神秘的,无可否认。 1623 01:16:40,730 --> 01:16:43,710 >> 但是,现在,是什么,我会叫 控制器的控制 1624 01:16:43,710 --> 01:16:44,770 我的页面逻辑。 1625 01:16:44,770 --> 01:16:48,510 而且,您可以样的重构, 直观的,也许,发生了什么事情。 1626 01:16:48,510 --> 01:16:50,630 在第一行上,它的 有点神秘。 1627 01:16:50,630 --> 01:16:54,040 但是请注意,我需要的,喜欢与 尖锐包括一个名为 1628 01:16:54,040 --> 01:16:55,930 helpers.php。 1629 01:16:55,930 --> 01:16:59,980 然后我打电话,显然, 功能,被称为渲染,通过 1630 01:16:59,980 --> 01:17:00,850 两个参数。 1631 01:17:00,850 --> 01:17:02,440 >> 其一是报价引文结束,头。 1632 01:17:02,440 --> 01:17:04,800 另一种是,什么样的 数据类型是这样的,基于 1633 01:17:04,800 --> 01:17:07,180 我们的语法同期? 1634 01:17:07,180 --> 01:17:08,160 这是一个关联数组。 1635 01:17:08,160 --> 01:17:11,730 具体来说,它通过在标题中 一些元数据提醒 1636 01:17:11,730 --> 01:17:13,430 我它是什么和它的价值。 1637 01:17:13,430 --> 01:17:16,340 然后,我看到一个硬编码 UL,所以一些原始的HTML。 1638 01:17:16,340 --> 01:17:20,020 但后来我回到了PHP模式 调用一个函数渲染。 1639 01:17:20,020 --> 01:17:24,390 所以,即使你从来没有使用HTML或PHP 之前,尽管这看起来 1640 01:17:24,390 --> 01:17:27,480 可怕的,这是为什么可能 更好的设计吗? 1641 01:17:27,480 --> 01:17:31,310 什么是更好地了解它, 根据推断? 1642 01:17:31,310 --> 01:17:32,130 >> 观众:[听不清] 1643 01:17:32,130 --> 01:17:35,750 >> 扬声器1:减多余的 有没有更多的HTML标签,没有更多的 1644 01:17:35,750 --> 01:17:38,410 头标签,没有更多的身体标记 在每一个该死的文件。 1645 01:17:38,410 --> 01:17:41,860 相反,我已经考虑了 共性和大概把它们 1646 01:17:41,860 --> 01:17:45,150 主题相关到一个文件中 一个头。 1647 01:17:45,150 --> 01:17:48,500 同样的事情近身 标签,密切HTML标签。 1648 01:17:48,500 --> 01:17:52,165 这可能是在这里里面 的页脚某处。 1649 01:17:52,165 --> 01:17:57,050 你会看到,在习题集7, 通过一个小的旅游。 1650 01:17:57,050 --> 01:17:58,070 >> 那么,是什么样的吧? 1651 01:17:58,070 --> 01:18:03,390 有一件事,我们还没有能力 但对于实际存储数据。 1652 01:18:03,390 --> 01:18:06,110 还等什么,我们就可以看到 星期三,例如,​​是 1653 01:18:06,110 --> 01:18:08,450 老朋友Excel或数字, 允许你存储大量的 1654 01:18:08,450 --> 01:18:10,060 以行和列的数据。 1655 01:18:10,060 --> 01:18:12,570 原来你可以做什么 称为数据库编程。 1656 01:18:12,570 --> 01:18:16,620 狂躁而事实证明,在这之后, 我们将能够存储诸如 1657 01:18:16,620 --> 01:18:20,550 这一点,你会再次看到在P组 7,一大堆的用户名和 1658 01:18:20,550 --> 01:18:23,690 密码,其中后者是 实际上是加密的,就像他们 1659 01:18:23,690 --> 01:18:25,550 p设定为2的黑客版。 1660 01:18:25,550 --> 01:18:29,600 最终,你会实现这一点, ETRADE自己的网站 1661 01:18:29,600 --> 01:18:32,220 实现统称CS50金融。 1662 01:18:32,220 --> 01:18:36,000 >> 最后,因为你在这里住这么晚 今天,如果你回来的这部分 1663 01:18:36,000 --> 01:18:41,120 校园,今天下午4:00,我们将 不仅给你的意见,在SCES 1664 01:18:41,120 --> 01:18:44,200 咨询洽谈会,在下午4:00 麦克斯韦 - 德沃金,我们会给你一些 1665 01:18:44,200 --> 01:18:47,470 Americone梦,樱桃加西亚, 巧克力布朗尼巧克力 1666 01:18:47,470 --> 01:18:50,840 片饼干面团,而且,当你谷歌 矮胖猴,你得到这个。 1667 01:18:50,840 --> 01:18:53,620 因此,所有等待4:00 PM在麦克斯韦 - 德沃金。 1668 01:18:53,620 --> 01:18:56,736 周三见。 1669 01:18:56,736 --> 01:18:59,960 >> 扬声器2:在接下来的 CS50,RJ的睡眠。 1670 01:18:59,960 --> 01:19:03,656 1671 01:19:03,656 --> 01:19:04,906 >> RJ:我的部分! 1672 01:19:04,906 --> 01:19:07,727 1673 01:19:07,727 --> 01:19:08,977 哈! 1674 01:19:08,977 --> 01:19:12,056 1675 01:19:12,056 --> 01:19:13,306 哦, 1676 01:19:13,306 --> 01:19:16,374