2012-05-21 51 views
2

我尝试指派动态独家元标签为每个页面动态元标签:基于URL

即: url.com/index.php?action=signup

包头 - 注册名称

关键词 - 注册关键词元

描述 - 注册说明

url.com/index.php?action=about

页眉 - 关于标题

关键词 - 关于关键词元

描述 - 关于描述

你得到了点。

我正在使用数组...但还没有想通如何分配每个数组到每个页面。

CONF.PHP

<?php 
$metas = array( 
'index.php' => array( 
'header' => 'Home Title', 
'keywords' => 'Home Meta Keywords', 
'description' => 'Home Meta Description' 
), 
'signup' => array( 
'header' => 'Signup Title', 
'keywords' => 'Signup Meta Keywords', 
'description' => 'Signup Meta Description' 
), 
'about' => array( 
'header' => 'About Title', 
'keywords' => 'About Meta Keywords', 
'description' => 'About Meta Description' 
) 
); 
?> 

的index.php

<TITLE><?php echo $metas['title']; ?></TITLE> 
<meta name="description" content="<?php echo $metas['description']; ?>" > 
<meta name="keywords" content="<?php echo $metas['keywords']; ?>" > 

如何分配这些值到每一页???

回答

6

您是在正确的轨道:-)

上做它在以下方式:

<TITLE><?php echo $metas['index.php']['title']; ?></TITLE> 

脚本名称,你可以从$ _SERVER超级全局数组/变量得到它。

也从你的config.php文件中删除最后3行,你不需要它们。

祝你好运,与PHP确保你得到关于玩阵列的良好知识。这很关键。

编辑:

$page = 'index.php'; 
if (isset($_GET['action']) && $_GET['action'] != "") 
{ 
    $page = $_GET['action']; 
} 

<TITLE><?php echo $metas[$page]['title']; ?></TITLE> 

编辑:(2012年5月27日)

我认为这是相当多的一切:

你在config.php代码

<?php 

$meta['INDEX']['title'] = "Home page"; 
$meta['INDEX']['keywords'] = "kwd1, kwd2, kwd3"; 
$meta['INDEX']['description'] = "Home description"; 

$meta['SIGNUP']['title'] = "Sign up..!"; 
$meta['SIGNUP']['keywords'] = "kwd1, kwd2, kwd3"; 
$meta['SIGNUP']['description'] = "Sign up description"; 

$meta['ABOUT']['title'] = "About Company"; 
$meta['ABOUT']['keywords'] = "kwd1, kwd2, kwd3"; 
$meta['ABOUT']['description'] = "About company description"; 

您在任何应用程序页面/屏幕(.php文件)中的代码:

<?php 

include "config.php"; 

// Choice 1: if you want to specify page hardcoded at each page then you can say $page = 'ABOUT' for about-us page and $page = 'INDEX' for home page etc. 
$page = 'ABOUT'; 
if(strtoupper($_SERVER['REQUEST_URI'], $page) !== false) 
{ 
    $title = $meta[$page]['title']; 
    $keywords = $meta[$page]['keywords']; 
    $description = $meta[$page]['description']; 
} 
// Now you have your meta - use it the way you want 
echo $title; 

// Choice 2: If you want to make it little more dynamic 
// Here you don't need to define any hardcoded variable at page level as everything will be considered from the URL being requested 
$page_index = array_keys($meta); 

foreach($page_index as $page) 
{ 

    if (strpos(strtoupper($_SERVER['REQUEST_URI']), $page) !== false) 
    { 
     $title = $meta[$page]['title']; 
     $keywords = $meta[$page]['keywords']; 
     $description = $meta[$page]['description']; 
     break; 
    } 
} 
// Now you have your meta - use it the way you want 
echo $title; 

?> 
+0

但是,如何将index.php数组放在index.php中?注册 - index.php?action =注册/ ABOUT - index.php?action =关于...等 – Darkeden

+0

请参阅上面的修改。 – Dharmavir

+0

我使用开关方法来分配值。 但现在我有分配变量的问题从MySQL选择...我怎么能做到这一点? 例如: url.com/news/$id/$title - 如何在这种情况下分配元标签? – Darkeden