2012-06-14 1 views
3

Я хочу внедрить систему тегов на своем веб-сайте. Веб-сайт создан на PHP, но не использует базу данных (sql). Он читает файлы из текстовых файлов и включает их.PHP Система тегов без базы данных (текстовые файлы)

Страницы находятся в файле, если страница запрашивается, чтобы файл был прочитан, и если страница находится там, сайт возвращает его. Если страница отсутствует там, она дает ошибку (так что проблемы с обходом пути, я могу позволить странице «blablabla» перейти на «other-page.inc.php»).

Список страница представляет собой большое заявление так, как это:

case "faq": 
$s_inc_page= $s_contentdir . "static/faq.php"; 
$s_pagetitle="FAQ"; 
$s_pagetype="none"; 
break; 

($ s_pageype для темы CSS).

То, что я хочу что-то вроде этого:

case "article-about-cars": 
$s_inc_page= $s_contentdir . "article/vehicles/about-cars.php"; 
$s_pagetitle="Article about Cars"; 
$s_pagetype="article"; 
$s_tags=array("car","mercedes","volvo","gmc"); 
break; 

И страница тега, который принимает тег как получить переменные, проверяет, какие случаи имеют этот тег в массиве $ s_tag, а затем возвращает эти случаи.

Возможно ли это, или я думаю в неправильном направлении?

ответ

1

Возможно, но вам, возможно, придется подумать о вашей нынешней структуре.

Что-то, как это будет работать:

$pages = array(
    "article-about-cars" => array ("car", "mercedes", "volvo"), 
    "article-about-planes" => array ("757", "747", "737") 
); //an array containing page names and tags 

foreach ($pages as $key => $value) { 
    if (in_array($_GET['tag'], $value)) { 
     $found_pages[] = $key; 
    } 
} 

return $found_pages; //returns an array of pages that include the tag 
+0

Спасибо! Я объединил два ответа, и теперь он работает отлично. – Raymii

2

Я хотел бы сделать это, сохраняя ваши данные страницы в массиве, такие как:

$pages['faq']['s_inc_page'] = $s_contentdir . "static/faq.php"; 
$pages['faq']['s_pagetitle'] = "FAQ"; 
$pages['faq']['s_pagetype'] = "none"; 
$pages['faq']['s_tags'] = array("car","mercedes","volvo","gmc"); 

Вы можете затем использовать foreach цикл, чтобы пройти через это массив и вытащите элементы с соответствующими тегами:

$tag = "car"; 

foreach($pages as $page) { 
    if (in_array($tag, $page['s_tags'])) { 
     //do whatever you want to do with the matches 
     echo $page['s_pagetitle']; 
    } 
} 
+0

Спасибо! Я объединил два ответа, и теперь он работает отлично. – Raymii

 Смежные вопросы

  • Нет связанных вопросов^_^