정확하게 내 질문을 단순화하는 방법을 모르겠지만, 내 문제를 자세히 설명하려고했습니다. 하나의 배열을 2 차원 또는 다차원 배열 (예 : 하단)으로 변경하고 배열에 하나의 변수 (현재 범주 동일) 및 다른 변수 (현재 페이지 동일)를 확인하고 페이지가 범주의 일부인지 확인합니다 ?PHP : 동적 레이아웃에서 변수를 다차원 배열과 동일하게 만드는 방법은 무엇입니까?
근무 코드 :
나는 내가 아닌 I가하고 포함을 통해 (적절한 내용을 표시하려고 해요 페이지를 얻을 수 있습니다 아래의 작업 코드를 가지고 여기에 표시).
$path = '';
$category = $_GET['category'];
$page = $_GET['page'];
$content = array('home','about','work','contact','404','team','services');
if (!empty($page)) {
if(in_array($page,$content)) {
if (!empty($category)) {
$path = $category . '/' . $category . '_' . $page;
} else {
$path = 'content_' . $page;
}
}else {
$page = '404';
$url = '/' . $page;
header('Location: ' . $url, true, 404); exit();
}
}
else {
$page = 'home';
$path = 'content_' . $page;
}
내 문제 : $page
가 배열 $content
에서 발견되는지를 확인 여기서
내 문제이다.
나는 같은 것을 할 필요가 :
$main = array('home','about','work','contact','404');
$secondary = array('team','services');
... 다음이에서 : 그 일을하더라도
if (in_array($category,$main) && in_array($page,$secondary)) {
$path = $category . '/' . $category . '_' . $page;
}
여전히 결함이있을 것입니다. $category == $main
및 $page == $secondary
이지만 $secondary
이 현재 카테고리 아래에있는 페이지와 같지 않은 경우 페이지는 여전히 열리지 만 실제로 존재하지 않으므로 콘텐츠가 없습니다.
- 카테고리에 대해 두 페이지, 팀 및 서비스가 있고 연락처 카테고리에도 두 페이지, 견적 및 지원이 있다고 가정 해 보겠습니다.
$category
이/about
인 및$page
이/team
결과가 올 것 URL을/about/team
것 인과 $category == $main
및$page == $secondary
하는 경우.$category
이/about
이고$page
이/contact
이면 기술적으로는 코드에 따라 기술적으로도 정확하지만 URL은/about/contact
이며 빈 페이지가 표시됩니다.
내 아이디어 :
나는 두 차원 배열이 더 좋을 것이라고 생각 해요? 내가 붙어있는 곳이야! 이 같은
뭔가 :
$content = array(
array('Home'),
array('About','Team','Services'),
array('Work'),
array('Contact','Quote','Support'),
array('404')
);
또는이 :
$main = array('home','about','work','contact','404');
$secondary = array(
array('About','Team','Services'),
array('Contact','Quote','Support')
);
더 이상 날로부터 정보를 필요로하는 경우에, 그냥 부탁드립니다. 모든 도움을 주시면 감사하겠습니다. 가장 좋은 방법은 무엇입니까? 최소한 내가 올바른 길을 가기 시작하면 감사하겠습니다!
편집 : 여기까지 우리가 가지고있는 것이 있습니다.
<?php
$path = '';
$category = $_GET['category'];
$page = $_GET['page'];
function getUrl($category, $page) {
$pages = array(
'home',
'about' => array('team', 'services'),
'work',
'contact' => array('quote', 'support'),
'404'
);
if (!is_null($category)) {
if(array_key_exists($category, $pages) && in_array($page, $pages[$category])) {
return $category . '/' . $category . '_' . $page;
}
return '404';
} else if (in_array($page, $pages)) {
return 'content_' . $page;
}
return '404';
}
if($page == 'home'){
// stuff for home here
}else if($page == 'about'){
$page_title = 'About';
}else if($page == 'work'){
$page_title = 'Work';
}else if($page == 'contact'){
$page_title = 'Contact';
}else if($page == '404'){
$page_title = 'Oops! (404)';
$path = 'content_404';
}
$page_class = 'page-' . $page;
$web_url = "http://mrobertsdesign.ca";
// Page Start
include('includes/header.php');
include('content/' . $path . '.php');
include('includes/footer.php');
?>
* 방법 * 너무 많은 정보 및 게시물의 너무 오래. 그것을 숙고하고 명확하고 간결한 질문을하십시오. – Madbreaks
@Madbreaks가 지금 당장 감사 할 것입니다. – Matthew