У меня есть следующий код, он работает с моим файлом htaccess для динамического отображения контента через PHP, который включает в себя страницу welcome.php. Это всего лишь часть всей страницы. Первый блок кода – это рабочий код с двумерными массивами. Этот код находит путь к включенным файлам и создает общую структуру веб-сайта.
$category = $_GET['category']; $page = $_GET['page']; function getUrl($category, $page) { $pages = array( 'home', 'design' => array('about', 'events', 'contact'), 'community' => array('about', 'events', 'contact'), 'philanthropy' => array('about', 'events', 'contact'), '404' ); if (!is_null($category)) { if(array_key_exists($category, $pages) && in_array($page, $pages[$category])) { return $category . '/' . $category . '_' . $page; } } elseif (in_array($page, $pages) || array_key_exists($page, $pages)) { return 'content_' . $page; } return 'content_404'; } $path = getUrl($category, $page);
В настоящее время я использую двухмерные массивы, я хочу иметь возможность использовать трехмерные массивы, но для создания другого слоя страниц, и у меня возникают проблемы с тем, чтобы это работало … вот что я пробовал до сих пор:
$category = $_GET['category']; $subcat = $_GET['subcat']; $page = $_GET['page']; function getUrl($category, $subcat, $page){ $pages = array( 'home', 'design' => array( 'about' => array('services', 'partners'), 'events', 'contact' ), 'community' => array( 'about' => array('services', 'partners'), 'events', 'contact' ), 'philanthropy' => array( 'about' => array('services', 'partners'), 'events', 'contact' ), '404' ); if (!is_null($category)) { if(array_key_exists($category, $pages) && in_array($page, $pages[$category])) { return $category . '/' . $category . '_' . $page; } } elseif (in_array($page, $pages) || array_key_exists($page, $pages)) { return 'content_' . $page; } return 'content_404'; } $path = getUrl($category, $subcat, $page);
Это будет файл .htaccess:
RewriteRule ^([a-zA-Z0-9]+)/?$ welcome.php?page=$1 [NC] RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ welcome.php?category=$1&page=$2 [NC] RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ welcome.php?category=$1&subcat=$2&page=$3 [L,NC]
Структура сайта, в которой я собираюсь, выглядит примерно так:
Home Design -- About ---- Services ---- Partners -- Events -- Contact Community -- About ---- Services ---- Partners -- Events -- Contact Philanthropy -- About ---- Services ---- Partners -- Events -- Contact -------------------------- Example: /design = $page /design/about = $category/$page /design/about/services = $category/$subcat/$page
Многомерные массивы – это то, к чему я до сих пор привык, не знаю точно, как заставить это работать с трехмерными массивами … В основном, я пытаюсь заставить код работать с массивом.