我试图让页面标题(<title>bla..bla..bla..</title>
)在php中具有可更改的多文件布局,如下所示:
Functions.php包含在index.php中,然后从functions.php调用get_header()以包含页头header.php title标签位于头文件中。我希望能够从index.php设置标题我该怎么做?
为了检验这是我尝试过的:
的index.php:
<? require_once('includes/functions.php'); global $t; $t = '/home/s0urc3'; get_header();?>
<div id="main">
<h2><a href="NEEDED" rel="bookmark" title="Permanent Link to NEEDED">NEEDED</a></h2>
<p class="postmeta"><a href="<?php page_url(yes)?>" class="readmore">Permalink</a> | <span class="date">Revision Date</span></p>
<p>CONTENT AND CRAP</p>
<!-- main ends -->
</div>
<?php /*test*/echo($title);/*test*/ get_footer();?>
的header.php:
<?php //include('functions.php')?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<? title('$t')?>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
<?php get_theme_css()?>
</head>
<body>
<!-- wrap starts here -->
<div id="wrap">
<!--header -->
<div id="header">
<h1 id="logo-text"><a href="<?php echo (HOME)?>"><img src="<?php get_url('images/Logo.png')?>" alt="S0URC3"><!-- S0URC3 --></a></h1></div>
<p id="intro">
Just another poorly coded website!
</p>
</div>
<div id="nav">
<!-- <div id="navi"><div id="menu" class="fixed"> -->
<ul class="">
<li class=""><a href="http://s0urc3.ismywebsite.com">Home</a></li>
<li class=""><a href="http://blog.s0urc3.ismywebsite.com">Blog</a></li>
<li class=""><a href="http://forums.s0urc3.ismywebsite.com">Forums</a></li>
<li class=""> <a href="mailto:ellisgeek@gmail.com?subject=Comments">Comments</a></li>
<!--<li class="">Clans</li>-->
<li class=""><a href="http://astro.s0urc3.ismywebsite.com">-astro-</a></li>
<!--<li class=""><a href="#">Inspiration</a></li>
<li class=""><a href="#">Resources</a></li>
<li class=""><a href="#">Tutorials</a></li>
<li class=""><a href="#">WordPress</a></li>-->
</ul><!-- </div></div> -->
</div>
<!--header ends-->
</div>
<!-- content-wrap starts -->
<div id="content-wrap">
的functions.php:
<?php
require_once('constants.php');
//===============//
//Start Functions//
//===============//
//Gets a file from the domain http://files01.s0urc3.ismywebsite.com/
function get_url($file)
{
echo (FILE_ROOT . $file);
}
//gets the url of the theme
function get_theme_css() {echo('<link rel="stylesheet" href="' . FILE_ROOT . 'colourise/style.css" type="text/css" />');}
function get_header() {require_once('includes/header.php');}
function get_footer() {require_once('includes/footer.php');}
//Gets the URL of the current page
function page_url($p)
{
$s = empty($_SERVER["HTTPS"]) ? ''
: ($_SERVER["HTTPS"] == "on") ? "s"
: "";
$protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s;
$port = ($_SERVER["SERVER_PORT"] == "80") ? ""
: (":".$_SERVER["SERVER_PORT"]);
if ($p == 'yes')
echo ($protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']);
else
return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
}
function strleft($s1, $s2)
{
return substr($s1, 0, strpos($s1, $s2));
}
//gets the year
function cur_year() {echo (YEAR);}
function ads($code) {echo('<script type="text/javascript" src="http://links.ismywebsite.com?i='. $code .'"></script>');}
function title($title)
{echo('<title>Index Of: '.$title.'</title>');}
//=============//
//End Functions//
//=============//
?>
P.S。在index.php中调用functions.php时,只有在页眉和页脚中提供所有函数时才包含函数
答案 0 :(得分:8)
首先,文件header.php
正在函数中包含,因此它无权访问全局变量$t
。您需要执行以下操作之一:
functions.php
:function get_header() {
global $t;
require_once('includes/header.php');
}
header.php
:<?php //include('functions.php')
global $t;
?>
<!DOCTYPE html>
<!-- etc -->
这样,您声明的变量将可用于函数的局部变量范围。
其次,您需要使用双引号或根本没有引号来调用该函数。单引号不会解析变量。
title($t);
title("$t");
title("{$t}");
title('$t');
Here is the PHP Manual Page on the String datatype - 请务必查看单引号字符串与双引号字符串。
<?php
),而不是短开标记(<?
)title()
,应该总是返回一个值,你可以回应它,而不是直接从函数内部回显。strleft()
功能虽然很聪明,但已经存在。请参阅:strstr()
array_rand()
答案 1 :(得分:0)
尝试更改
<? title('$t')?>
到
<? title($t)?>
代码。