使用静态html标记和通过php回显它们之间有什么区别

使用静态html标记和通过php回显它们之间有什么区别,php,html,model-view-controller,echo,Php,Html,Model View Controller,Echo,我有一个大项目,我的结果页面是固定的。所以我需要一个固定的页面,内容可以改变。这就是为什么我必须使用动态标签echo'anything'而不是静态标记任何内容 这是我的结构: // resultpage.php <html> <head> <?php switch ($_GET['arg']) { case 'one': $contents = '<div&g

我有一个大项目,我的结果页面是固定的。所以我需要一个固定的页面,内容可以改变。这就是为什么我必须使用动态标签
echo'anything'而不是静态标记
任何内容

这是我的结构:

// resultpage.php

<html>

<head>
    <?php
           switch ($_GET['arg']) {
               case 'one':
                   $contents = '<div>content 1</div>';
                   break;
               case 'two':
                   $contents = '<div>content 2</div>';
                   break;
    ?>
</head>

<body>
   <?php echo $contents; ?>
</body>

</html>
不管怎样,哪种方法更优化?事实上,我想知道当一个用户向我的站点发出请求时,我的html和php标记的服务器会发生什么变化


应该注意的是,我的结果页面使用ajax,页面不会得到刷新。只返回纯文本数据更好,还是返回所有内容(包含html标记)?(当页面保持不变且不刷新时)

您的页面应基于HTML的模板/结构。如果HTML是一致的,那么除了内容之外,您应该使用相同的页面,只需使用PHP来确定内容是什么。理想情况下,该内容应从数据库中提取,该数据库具有单独的界面来操作/编辑内容(CMS)

如果页面的结构/布局完全不同,您当前的模板无法适应,那么您应该创建一个具有新结构的新模板

理想情况下,您应该将重复项目拆分为单独的文件(即页眉、页脚、侧边栏等)。然后,您可以轻松地将这些部分调用到模板中,并轻松地跨所有页面更新这些部分


希望这能有所帮助。

好的,确实可以使用静态html做同样的事情。它是动态的吗?为了回答这个问题,PHP将被投票否决html。因为如果你有可变数量的内容。假设您不知道您拥有的内容,那么您应该使用PHP,然后您可以使用一些编程条件和循环来显示所有内容。但确实,对于您正在讨论的特定系统,html的情况可以满足您的需求,因为这里有一些静态切换情况,可以只显示一些特定数量的内容。虽然如果您打算更改内容,您必须更改代码,但是如果您使用php,您可以只更改数据库的内容列,然后您的网站内容就会更改。

您询问了带宽使用情况:您很可能不会注意到这一差异,因为这是通过网络传输的数据量。在每种情况下,数据量都是相同的,但不同之处在于生成数据的方式

至于静态文件,不需要涉及PHP预处理器,这将使您的性能稍好一些,但要以可维护性为代价

对于PHP:优势

正如其他答案已经指出的那样,非常推荐您使用PHP方法处理页面的动态内容。这将避免您每次要在所有页面中执行更改时都需要维护多个副本(例如,添加样式类)

做得好,PHP可以为您节省大量精力,从而最大限度地减少重复的代码量

最后,有些事情是静态文件做不到的,你需要求助于任何类型的预处理器。PHP是最流行的一种,任何托管公司都可能支持它

反对PHP:缺点

不利的一面是服务器本身的配置。任何HTTP服务器都可以托管静态文件,但为了预处理PHP文件,您需要有可用的PHP

此外,每次提供页面时都必须进行一些预处理。如果您不需要进行太多计算,这可能不是问题,但这是CPU时间


最后,还有PHP服务器本身的支持。不正确地使用PHP可能会导致安全问题,服务器需要保持最新状态并进行修补,以确保安全。如果您完全避免使用PHP,这就不成问题(至少对PHP来说不是这样)。

创建一个html文件,并使用PHP在其中处理结果。为什么要把它复杂化呢?@AbhinavGauniyal你看,我的结果页面使用的是ajax,页面不会被刷新,在这种情况下(正如你所说的),我的内容每一次都应该
echo
。这不坏吗?不,这与服务器的带宽无关。PHP中的所有内容都在服务器端进行解释。客户机只接收生成的输出,即此页面中正确的
html
页面case@DarkBee啊,我明白了,那就没有什么区别了。只要告诉我,如果一个页面的内容每次都是
echo
,而它在页面中可以是恒定的,那么你也说它不重要吗?看,我使用的是ajax,我的静态标签在我的页面中可以保持不变,每次我
echo
所有标签都是不错的吗?如果你网站的主要部分保持不变,那么我建议只更新ajax用来更新/获取动态内容的容器,因为是的,我的内容完全不同,那么?“那么你应该用新的结构创建一个新的模板”是什么意思?你的意思是我
echo
他们吗?想象一下HTML是房子的框架,内容是房子的颜色。颜色对结构的实际布局毫无意义。因此,您应该查看该框架,并对它可以应用到的所有页面使用相同的框架(php页面)。如果页面的结构(减去内容)完全不同,不能用PHP操作,那么你应该使用一个新的模板(PHP页面)。最后,你知道我的问题是什么吗?!那就是使用ajax,看,当我发送请求时,它只给我纯文本内容还是给我所有内容(包含html标记)更好??(当页面保持不变且不刷新时)我会发送已经用HTML格式化的内容(p标签等),然后将其放入“内容目录”中
// content1.php

<html><head></head>
<body> <div>content 1</div> </body>
</html>

// content2.php

<html><head></head>
<body> <div>content 2</div> </body>
</html>

// And creating a php file contained switch() for selecting contents.