PHP如何与HTML交互,反之亦然?

时间:2012-08-26 00:09:39

标签: php html

我正在学习互联网和网站的运作方式。我想我理解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处理器的输出可以是任何东西。
任何东西包括:

  • 的CSS
  • HTML
  • 的Javascript?
  • XML?
  • XHTML?
  • 图片
  • 声音?
  • 视频?
  • flash等动画?

显然可能需要强制内容类型,但可以这样做 HTML是WYSIWYG。
要在网页到达用户浏览器后控制和操作网页,可以使用Javascript。随着移动设备和一些不同类型的浏览器的出现,jQuery被发明用于使开发的Javascript程序更容易。

4 个答案:

答案 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脚本生成的。