2012-05-21 2 views
2

나는 각 페이지에 동적으로 전용 메타 태그를 지정하려면 노력하고있어 기반으로 동적 메타 태그를 생성 헤더 - 가입 제목는 URL

키워드 - 가입 메타 키워드

설명 - 가입 설명

헤더

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']; ?>" > 

어떻게 각 페이지에 해당 값을 할당하는 ???

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

스크립트의 이름은 당신이 $ _SERVER 슈퍼 전역 배열/변수에서 그것을 얻을 수 있습니다

답변

6

당신은 다음과 같은 방법으로 작업을 수행

:-) 올바른 궤도에 있습니다.

또한 config.php 파일의 마지막 세 줄을 제거하면 필요하지 않습니다.

행운을 빈다. 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 배열을 넣을 수 있습니까? SIGNUP - index.php? action = signup/ABOUT - index.php? action = about ... etc – Darkeden

+0

위의 편집을 참조하십시오. – Dharmavir

+0

switch 메서드를 사용하여 값을 할당했습니다. 하지만 이제 MySQL 선택에서 변수를 할당하는 데 문제가 있습니다 ... 어떻게 할 수 있습니까? 예 : url.com/news/$id/$title - 그런 경우 메타 태그를 할당하는 방법은 무엇입니까? – Darkeden