,但我对它的解读是你希望的方式来检查$page
任何价值针对数据库表中的链接值(pages
?),无havi ng将所有可能的值写入您的switch
声明中,
如果我的理解是正确的,那么下面是一个快速和肮脏的函数,应该让你这样做。在一个实时的,流量很大的环境中,你显然需要构建缓存,因此每个页面加载都不会触及数据库,以及强大的输入验证,这两者都不在下面的演示中,但这应该至少为您提供一个下一步去哪里的想法。
常见的库文件:
/**
* Given a page name, see if we have an associated
* link in the db.
* If so, return the link value, else false
*/
function getTemplate($page)
{
// Check db to see if we have a link for this page
// On heavy-traffic sites, this should be cached out
$query = sprintf("SELECT link FROM pages WHERE name = '%s'",
mysql_real_escape_string($page));
$result = mysql_query($query, $db_cnx);
// Have we any results?
if (mysql_num_rows($result) > 0)
{
// Assumption: 'name' is unique in the db
$row = mysql_fetch_assoc($result);
return $row['link'];
}
else
{
return false;
}
}
的header.php:
include('common.lib.php');
if(isset($HTTP_GET_VARS['mod']))
{
$page = $HTTP_GET_VARS['mod'];
}
else
{
$page = 'home';
}
// Check whether our page has a link in the db
$template = get_template($page);
if($template)
{
require($template);
}
else
{
// Got false back from get_template, no link found
echo('Error: There is no file on this server with that name');
}
我读不懂你的问题不是我能理解句子不缺少标点也 – 2010-08-14 18:53:43
,你有什么问题吗? – 2010-08-14 18:55:49