我正在学习互联网和网站的运作方式。我想我理解PHP处理器如何处理.php文件:
浏览器请求以.php结尾的网页,并向该网页的服务器发送请求 服务器问'我可以找到那个页面吗?' 如果服务器找不到它,服务器会发回错误 如果服务器找到页面,服务器要求'文件扩展名以.html或.php'结尾吗? 如果它以.html结尾,则服务器将页面发送回浏览器 如果它以.php结尾,则手动页面到PHP处理器 PHP处理器逐行扫描页面。它构建一个处理过的HTML页面 如果它找到HTML,它会将其作为正在构建的已处理HTML页面的一部分传递 如果它找到PHP脚本,PHP处理器可能输出也可能不输出HTML 当PHP处理器完成后,处理后的页面将被传递给Web服务器以便发送到浏览器。
HTML是否仍然为.php文件提供结构,就像HTML为也使用CSS的网页提供结构一样?当我说结构时,我指的是分裂,头部和身体部分。结构与网页的骨骼骨架一样。似乎在某些网页上,PHP比HTML更多。有时候只有最低限度的HTML,其余的是PHP和Javascript,这是网页制作的方式吗?
总之,包含PHP代码的网页需要具有.php扩展名。一旦PHP处理器遇到<? PHP
或<?
,服务器就会将代码发送到PHP处理器(这个措辞可能是多余的)。 PHP处理器的输出可以是任何东西。
任何东西包括:
答案 0 :(得分:14)
HTML是网络的语言。它是一种标记语言,这意味着我们唯一可以使用它的是“标记”文档,即设计内容对最终用户的看法。
想象一下,我们有一个向用户显示日期的页面。
我们可以使用一些HTML来做到这一点:
<p>Sunday 26 August 2012</p>
但是说我们想让这个页面保持最新状态。我们必须每天手动更改日期。由于HTML是静态的,因此无法动态更改。
根据页面加载的时间,可能会生成自动向页面添加正确的日期。
这就是PHP的用武之地.PHP是一种脚本语言,虽然它可以用于很多事情,但它的一个主要用途是动态生成HTML。因此,不要在今天的日期写作 - 我们可以做的是使用一些PHP并说。
<p><? echo date("l j F Y");?></p>
这将于今天打印出“2012年8月26日星期日”,“明天2012年8月27日星期一”,依此类推。
我需要将这个新版本的页面保存为page.php而不是page.html,因为我需要我的服务器(设置使用PHP)将页面发送到PHP解释器。它会查找特殊的<?php
或<?
并尝试处理它找到的内容。在这种情况下,它会在我的页面上显示日期的正确文本,并在将其发送给用户之前将其添加到页面中。
我们可以用PHP做很多很酷的事情。它是“服务器端”技术,意味着它在服务器上运行,然后向我们发送添加了所有动态内容的完成页面。
有时我们可能希望在页面到达用户浏览器后控制和修改页面。为此,我们需要一些“客户端”技术,即在用户浏览器中运行的代码。最常见的客户端语言是javascript。
我们再次使用Javascript可以做很多事情,但我们通常会在网页中使用它来允许我们在到达用户后控制HTML页面的元素。
我们可能希望在页面上隐藏某些内容,然后仅在用户单击按钮后显示该内容。我们可以用javascript做到这一点。
现在因为Javascript是“客户端”技术,即它在你的浏览器中运行它实际上很难使用,因为你必须编写适用于各种不同浏览器的代码,现在也可以在手机上编写!为了使这项工作更容易,非常聪明的开发人员通过创建要使用的库和框架,使用javascript来控制网页中的元素,从而消除了很多痛苦。其中最受欢迎的是jQuery framework。我认为jQuery是最有趣的东西,因为它允许你在网页中做所有“酷的东西” - 让东西淡入淡出,让东西淡出,播放声音,移动元素等等
我希望这有助于您了解不同技术如何帮助您实现不同的目标。
TL; DR 版本将是:
HTML&amp; CSS - 设置页面的外观。
PHP - 帮助您动态生成HTML。
JavaScript - 帮助您使网页更具互动性,并可响应用户的点击或其他操作。
答案 1 :(得分:4)
最重要的是要理解HTML和PHP之间的区别。在HTML中,您编写代码,上传代码,然后用户将随后下载该页面以及所有代码。用户的浏览器会解释此代码,并按照您的意愿向用户显示该页面(希望如此)。换句话说,HTML就是你所看到的就是你得到的东西,从某种意义上说,所有代码都发送给用户,并由浏览器解释。
使用PHP它的工作方式有点不同,因为你实际上没有下载作者写的代码。会发生的是,如果你想下载一个php页面,那么该文件中的代码首先由服务器处理,你下载代码的输出,而不是整个代码。这反过来将像以前一样是HTML,这就是为什么你永远不会在网页的源代码中看到PHP代码。
使用PHP,目标是使用服务器的处理能力来构建(通常)动态网页。一个非常基本的例子是在网页上显示正确的问候时间。
答案 2 :(得分:2)
轻微改变......
PHP处理器逐字符地扫描页面。
直到&lt;?发现PHP文本以一种复制模式直接发送到Web服务器。
(此文本可能是HTML,XML,JavaScript或其他任何内容)。
一旦进入&lt;?发现PHP的输入是针对PHP的,它可以用它做任何事情。
来自PHP的任何标准“打印”输出都被发送到传出的http流。
一旦?>发现流恢复到原始复制模式。
PHP能够发送HTML,CSS,JavaScript或其他任何内容。您可能需要强制内容类型,但可以这样做。
答案 3 :(得分:1)
PHP没有什么特别之处。基本区别在于静态文件和用编程语言编写的动态文件。
静态文件只是由服务器直接发送到浏览器。这些不仅仅是HTML,这也适用于图像文件。当您下载应用程序或PDF时,使用相同的机制 - 它可能是ZIP文件,EXE,磁盘映像(Mac下载常见)。
对于动态文件,文件以某种方式执行,并且它产生的输出被发送到浏览器。动态文件可以是任何语言 - 它甚至可以是二进制编译的可执行文件。但是,脚本语言通常最受欢迎,因为它们往往更容易编写Web应用程序。因此,有许多库已经编写以支持Web应用程序 - 这是一个积极的反馈情况。在网络的早期,Perl可能是最常用的语言;我们现在没有过多的脚本语言。
PHP的特殊之处在于它专门用于编写脚本网页。在所有其他语言中,您必须编写显式命令以生成任何输出。 PHP处理器只是逐字输出文件内容,直到遇到<?php
标记(它还识别出一些其他标记)。然后它开始执行程序,直到它看到?>
,此时它将恢复为逐字输出。
另一种思考方式是将外部的任何东西视为一个很大的echo
语句。事实上,这个模型对于理解你可以在语句中间实际切换模式是必要的。你可以这样做:
<?php
if(something){
?>
some text
<?php
} else {
?>
some other text
<?php
}
这显然是输出一行的愚蠢方式,但想象一下它是否是一个巨大的文本块。基本上,PHP的设计允许您编写普通的HTML网页,然后在需要的地方嵌入编程代码以生成动态内容。
尽管PHP脚本最常见的是输出HTML,但它们并不总是如此。拥有一个输出图像的PHP脚本并不罕见。它可以通过使用数据库来存储图像或图像文件的位置来实现。它还具有内置和库函数,可以动态生成图像数据。例如,如果您访问生成图表的网站,那么这些图表可能是由PHP脚本生成的。