zen_href_link 函数位于 /includes/functions/html_output.php 文件中,主要用于输出超级链接。它的参数如下表所示:
$page | 这个变量通常由 /includes/filename.php 文件中的常量取得 | |
$parameters | ||
$connection | ||
$add_session_id | ||
$search_engine_safe | ||
$static | ||
$use_dir_ws_catalog |
第一行代码,定义了 global 变量:$request_type,$session_started,$http_domain 和 $https_domain。(global 的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括 include 或 require 的所有文件。在函数体内定义的 global 变量,函数体外可以使用,在函数体外定义的 global 变量不能在函数体内使用。)
接下来的代码,
判断传递过来的 $page 变量是否为空。zen_not_null 函数,看名字猜,应该是判断它的参数不为空。前面加了一个逻辑非符号 !,这个条件语句的结果应该是,如果 $page 为空,则执行以下代码:
输出 die 后面括号的内容,然后中止程序执行。输出内容的后半部分容易理解,就是发出一条无法判断页面链接的警告。前半部分,只有关闭的 html 标签,table 的前面部分标签,还不知道是在哪里,有待研究。
然后,根据 $connection 参数,来决定是 http:// 链接,还是 https:// 链接。HTTP_SERVER 这个常量可以在 /includes/configure.php 文件中找到,实际就是网站的根目录。然后把 HTTP_SERVER 这个常量值赋值给 $link 这个变量。
如果 $connection 传递过来的,既不是 NONSSL,也不是 SSL,则会输出错误信息,然后中止执行程序。
判断参数 $use_dir_ws_catalog 是否为真,如果不是,则不执行任何代码,如果为真,执行以下代码:
由于 $use_dir_ws_catalog 默认为真,所以将执行以上代码。这个是一个条件语句,如果 $connection 的值为 SSL,并且 ENABLE_SSL 这个常量为真,则把 DIR_WS_HTTPS_CATALOG 这个常量赋值给 $link;否则将把 DIR_WS_CATALOG 这个常量赋值给 $link。ENABLE_SSL,DIR_WS_HTTPS_CATALOG 和 DIR_WS_CATALOG 这三个常量都可以 /includes/configure.php 文件中找到。
下面看一个实例:
以上代码,将产生以下的超级链接:
FILENAME_LOGIN 这个常量在 /includes/filenames.php 文件中被定义。
接下来将判断 $static 这个变量的真假,如果不为真,则执行以下代码: