【问题标题】:How does PHP interact with HTML and vice versa?PHP 如何与 HTML 交互,反之亦然?
【发布时间】:2012-08-26 00:09:39
【问题描述】:

我正在学习互联网和网站的运作方式。我想我了解 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 是所见即所得。
要在网页到达用户浏览器后对其进行控制和操作,可以使用 Javascript。随着移动设备和几种不同类型浏览器的出现,发明了 jQuery 以使开发 Javascript 程序更容易。

【问题讨论】:

  • PHP 不是 HTML 的替代品。如果要表示网页,则需要使用 HTML 标记。 PHP 只是一种编程语言(在此上下文中)用于动态生成 HTML 标记。因此,如果您请求一个 PHP 文件,并期望返回一个网页,则 ​​PHP 脚本必须生成 HTML 标记并在响应中发送它。您可以将 HTML 标记直接放入 PHP 文件中,也可以使用模板引擎(或手动技术)根据数据库中的数据生成 HTML 标记。
  • 简而言之,HTML 是一个输出,PHP 只是一个创建它的工具。

标签: php html


【解决方案1】:

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 解释器。它会寻找特殊的&lt;?php&lt;? 并尝试处理它找到的任何东西。在这种情况下,它会在我的页面上吐出正确的日期文本,并将其添加到页面中,然后再发送给用户。

我们可以用 PHP 做很多很酷的事情。它是“服务器端”技术,这意味着它在服务器上完成工作,然后将添加了所有动态内容的完成页面发送给我们。

有时我们可能希望在页面到达用户浏览器后对其进行控制和修改。为此,我们需要一些“客户端”技术,即在用户浏览器中运行的代码。最常见的客户端语言选择是 javascript。

同样,我们可以用 Javascript 做很多事情,但大多数情况下,我们在网页中使用它来允许我们在 HTML 页面到达用户后控制它的元素。

我们可能希望在页面上隐藏某些内容,然后仅在用户单击按钮后才显示它。我们可以用 javascript 做到这一点。

现在因为 Javascript 是“客户端”技术,即它在您的浏览器中运行,它实际上可能很难使用,因为您必须编写在各种不同浏览器中运行的代码,现在也可以在手机上运行!为了使这项工作更容易,非常聪明的开发人员通过创建库和框架来使用 JavaScript 来控制网页中的元素,从而减轻了很多痛苦。其中最受欢迎的之一是jQuery framework。我认为 jQuery 是学习中最有趣的东西,因为它允许你在网页中做所有“很酷的事情”——让内容淡入、淡出、播放声音、移动元素等等


我希望这可以帮助您了解不同的技术如何帮助您实现不同的目标。

TL;DR 版本是:

HTML 和 CSS - 设置页面的外观。

PHP - 帮助您动态生成 HTML。

JavaScript - 帮助您使您的页面更具交互性,并且可以响应用户的点击或其他操作。

【讨论】:

  • 于是发明了PHP,自动生成信息?
  • 自动生成html,是的
  • "PHP - 帮助您动态生成 HTML。"这让事情变得更清楚了。谢谢。
【解决方案2】:

最重要的是要了解 HTML 和 PHP 之间的区别。在 HTML 中,您编写代码、上传代码,然后用户将随后下载该页面以及所有代码。用户的浏览器会解释此代码并向用户显示您想要的页面(希望如此)。换句话说,HTML 是一种所见即所得,即所有代码都交给用户并由浏览器解释。

使用 PHP,它的工作方式略有不同,因为您实际上并没有下载作者编写的代码。发生的情况是,如果您要下载 php 页面,则该文件中的代码首先由服务器处理,然后您下载代码的输出,而不是整个代码。这又将像以前一样是 HTML,这就是为什么您永远不会在网页源代码中看到 PHP 代码的原因。

使用 PHP 的目标是使用服务器的处理能力来构建(通常)动态网页。一个非常基本的示例是在网页上显示一天中的正确问候语。

【讨论】:

    【解决方案3】:

    略有变化...

    PHP 处理器逐个字符地扫描页面。
    直到一个 PHP 发现此文本以一种复制模式直接发送到 Web 服务器。
    (此文本可能是 HTML、XML、JavaScript 或其他任何内容)。





    PHP 被发现输入被定向到 PHP,它会用它做任何事情。
    任何来自 PHP 的标准“打印”输出都会发送到传出的 http 流。
    一旦找到 ?>,流就会恢复到原始复制模式。

    PHP 能够发送 HTML、CSS、JavaScript 或其他任何内容。您可能需要强制内容类型,但可以做到。

    【讨论】:

    • 我试图尽可能接近原始海报的话。新手的话。
    【解决方案4】:

    PHP 并没有什么特别之处。静态文件和用编程语言编写的动态文件之间的基本区别。

    静态文件只是由服务器直接发送到浏览器。这些不仅仅是 HTML,图像文件也是如此。当您下载应用程序或 PDF 时,使用相同的机制 - 它可能是 ZIP 文件、EXE、磁盘映像(通常用于 Mac 下载)。

    在动态文件的情况下,文件以某种方式执行,并且它产生的输出被发送到浏览器。动态文件可以是任何语言——它甚至可以是二进制编译的可执行文件。然而,脚本语言通常是最受欢迎的,仅仅是因为它们往往更容易编写 Web 应用程序。因此,已经编写了很多库来支持 Web 应用程序——这是一种积极的反馈情况。在网络的早期,Perl 可能是最常用的语言。我们没有现在使用的大量脚本语言。

    PHP 的特别之处在于它是专门为编写网页脚本而设计的。在所有其他语言中,您必须编写显式命令来生成任何输出。 PHP 处理器只是逐字输出文件内容,直到遇到&lt;?php 标记(它还可以识别一些其他标记)。然后它开始执行程序,直到看到?&gt;,此时它恢复为逐字输出。

    另一种思考方式是,外部的任何内容都被视为一个大的echo 声明。事实上,这个模型是有必要理解的,你实际上可以在语句中间切换模式。你可以这样做:

    <?php
    if(something){
        ?>
        some text
        <?php
    } else {
        ?>
        some other text
        <?php
    }
    

    这显然是只输出一行的愚蠢方式,但想象一下如果它是一大块文本。基本上,PHP 的设计允许您编写一个普通的 HTML 网页,然后在您需要的地方嵌入编程代码以生成动态内容。

    虽然 PHP 脚本输出 HTML 是最常见的,但并非总是如此。有一个输出图像的 PHP 脚本并不少见。它可以通过使用数据库来存储图像或图像文件的位置来实现。它还具有内置和库函数,可以动态生成图像数据。例如,如果您访问一个生成图表的网站,这些图表可能是由 PHP 脚本生成的。

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 2013-03-25
      • 2012-02-05
      • 2013-08-16
      • 2012-06-27
      • 1970-01-01
      • 2012-10-23
      • 2013-02-16
      • 1970-01-01
      相关资源
      最近更新 更多