Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在所有页面中包含导航栏的最佳方式是什么?_Php_Javascript_Navigation_Ssi - Fatal编程技术网

Php 在所有页面中包含导航栏的最佳方式是什么?

Php 在所有页面中包含导航栏的最佳方式是什么?,php,javascript,navigation,ssi,Php,Javascript,Navigation,Ssi,我正在考虑一种方法,将导航栏添加到我的所有网页中,当我更新文件时,所有网页也应该更新。 我在谷歌上研究了一段时间,我发现:  PHP   SSI (我甚至不知道这是什么)  JavaScript  但是哪一个是最好的呢?有人能解释一下什么是SSI吗?SSI(服务器端包括)已经过时了。我建议不要使用它们。JavaScript可以工作,但您的浏览器必须下载额外的文件才能构建页面。另外,禁用JavaScript的用户将无法浏览您的站点。使用JavaScript构建页面是毫无意义的,所以除非您需要特

我正在考虑一种方法,将导航栏添加到我的所有网页中,当我更新文件时,所有网页也应该更新。
我在谷歌上研究了一段时间,我发现:

  •  PHP 
  •  SSI (我甚至不知道这是什么)
  •  JavaScript 
但是哪一个是最好的呢?有人能解释一下什么是SSI吗?

SSI(服务器端包括)已经过时了。我建议不要使用它们。JavaScript可以工作,但您的浏览器必须下载额外的文件才能构建页面。另外,禁用JavaScript的用户将无法浏览您的站点。使用JavaScript构建页面是毫无意义的,所以除非您需要特殊效果,否则不要使用它

PHP是最好的选择。您只需在页面顶部包含导航脚本,如
include_once('nav.php')

SSI(包括服务器端)已过时。我建议不要使用它们。JavaScript可以工作,但您的浏览器必须下载额外的文件才能构建页面。另外,禁用JavaScript的用户将无法浏览您的站点。使用JavaScript构建页面是毫无意义的,所以除非您需要特殊效果,否则不要使用它


PHP是最好的选择。您只需在页面顶部包含导航脚本,如
include_once('nav.php')

SSI代表服务器端包含,这是一个概念,意味着您的文件都将包含相同的文件(例如导航栏),因此当您对该文件进行任何更改时,它将反映在您的所有页面中

PHP和javascript是两种不同的东西,PHP是服务器端语言,javascript是客户端语言


如果您只需要一个导航栏,PHP就足够了。但是,如果您想添加任何客户端功能,如在节下的弹出菜单等,您也必须使用javascript。

SSI代表服务器端包含,这是一个概念,意味着您的文件都将包含相同的文件(例如导航栏),因此,当您对该文件进行任何更改时,它将反映在您的所有页面中

PHP和javascript是两种不同的东西,PHP是服务器端语言,javascript是客户端语言


如果您只需要一个导航栏,PHP就足够了。但是,如果你想添加任何客户端功能,比如在节下的弹出菜单之类的东西,你也必须使用javascript。

但是哪一个是最好的
,这取决于你已经在网站上使用了什么

如果它是用php编写的,那么最好使用php进行包含。通过简单的
include('file_with_nav_bars_code')
在模板或代码的正确位置,您可以插入静态html代码或上述文件生成的代码

SSI(服务器端包含)适用于“静态”页面。这就像一个简单的脚本,可以由服务器在一些设置后完成。如果您检查Apache服务器错误页面的模板,您将在那里看到SSI指令,其中包括页脚、页眉、输出一些基本信息,如时间、请求的URL等。包含一些代码看起来像
,同样,您甚至可以包含一些CGI脚本
,在这里和这里阅读更多内容

javascript也适用于静态页面。您必须加载javascript代码,该代码将“生成”所需的html代码,并将其输出到页面上所需的位置。它有一个严重的负面影响-搜索引擎将无法跟踪js生成的链接,因为它们不会运行它(因为js的访问者关闭了,但我不知道这种情况。即使Opera mini也能够呈现简单js输出的结果)。简单的方法是在想要导航栏的位置包含js脚本:
并且在
nav_bar.js
中(作为一个非常简单的示例),您将看到这样的内容:
document.write('这里有一些带有转义新行和引号的工具栏html代码')


ps:在多年的经验中,我尝试了所有这些:)我在早期的静态页面中使用了js和SSI,现在我只使用php和其他服务器端脚本语言。您仍然可以在php生成的页面中使用javascript,但是对于SSI,您必须告诉Web服务器再次传递php的输出,以查找SSI指令,而不是将其返回到浏览器。

但哪一个是最好的
,这取决于您在网站上已经使用的内容

如果它是用php编写的,那么最好使用php进行包含。通过简单的
include('file_with_nav_bars_code')
在模板或代码的正确位置,您可以插入静态html代码或上述文件生成的代码

SSI(服务器端包含)适用于“静态”页面。这就像一个简单的脚本,可以由服务器在一些设置后完成。如果您检查Apache服务器错误页面的模板,您将在那里看到SSI指令,其中包括页脚、页眉、输出一些基本信息,如时间、请求的URL等。包含一些代码看起来像
,同样,您甚至可以包含一些CGI脚本
,在这里和这里阅读更多内容

javascript也适用于静态页面。您必须加载javascript代码,该代码将“生成”所需的html代码,并将其输出到页面上所需的位置。这有一个严重的负面影响-搜索引擎将无法跟踪js生成的链接,因为他们不会运行它(因为js的访问者关闭了,但我不知道这种情况。即使Opera mini也是如此)
<!--#include file="nav.html" -->
<!--#if expr='v("DOCUMENT_NAME")=~/about.html/'-->
<a class="active" href="#">
<!--#else -->
<a href="about.html">
<!--#endif -->
About</a>
<!--#if expr="%{DOCUMENT_URI} =~ /product/"-->
Product path
<!--#else-->
Some other path
<!--#endif-->
AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes