👾 php

php URI 주소에 따라 서브페이지 타이틀 및 설명 출력 (게시판에도)

(。θᗨθ。) 2024. 12. 11. 10:52
<?php
$sruri = $_SERVER["REQUEST_URI"];
$queryParams = [];
parse_str(parse_url($sruri, PHP_URL_QUERY), $queryParams);

$title = null;
$desc = null;

$titles = [
    '/company/' => [
        'greeting.php' => ['title' => '인사말', 'desc' => '도전하는 오늘, 가치 있는 내일!'],
        'overview.php' => ['title' => '회사개요', 'desc' => '고객과 함께 성장하는 글로벌 파트너'],
        'history.php' => ['title' => '연혁', 'desc' => '--- 만나다'],
        'partner.php' => ['title' => '파트너', 'desc' => '--- 함께 미래를 열어가다'],
    ],
    '/product/' => [
        'hoseAssemblies.php' => ['title' => '--- 어셈블리', 'desc' => ''],
        'tubeAssembly.php' => ['title' => '--- 어셈블리', 'desc' => ''],
        'adaptersFittings.php' => ['title' => '--- 및 ---', 'desc' => ''],
    ],
    '/rnd/' => [
        'rnd.php' => ['title' => '연구개발', 'desc' => '세계 일류 기업으로 도약하겠습니다'],
        'equipmentStatus.php' => ['title' => '설비현황', 'desc' => ''],
        'certification.php' => ['title' => '인증서', 'desc' => ''],
    ],
];

$bo_table_titles = [
    'news' => ['title' => '---', 'desc' => '새롭고 다양한 정보를 제공합니다.'],
    'archives' => ['title' => '자료실', 'desc' => '필요하신 정보를 제공해드립니다'],
    'notice' => ['title' => '공지사항', 'desc' => '새로운 소식을 알려드립니다'],
];

// 경로 기반 매칭
foreach ($titles as $key => $value) {
    if (strpos($sruri, $key) !== false) {
        if (is_array($value)) {
            foreach ($value as $subKey => $subValue) {
                if (basename($sruri) === $subKey) {
                    $title = $subValue['title'];
                    $desc = $subValue['desc'];
                    break 2;
                }
            }
        }
    }
}

// 쿼리 파라미터 매칭 (bo_table)
if (!$title && isset($queryParams['bo_table'])) {
    // bo_table 값에서 언어 접미사 제거
    $bo_table_base = preg_replace('/_(ko|en)$/', '', $queryParams['bo_table']);

    // bo_table_titles에서 매칭
    if (isset($bo_table_titles[$bo_table_base])) {
        $title = $bo_table_titles[$bo_table_base]['title'];
        $desc = $bo_table_titles[$bo_table_base]['desc'];
    }
}

// 결과 출력
if ($title) {
    echo "<h2 class='subTitle'>" . htmlspecialchars($title) . "</h2>";
    if ($desc) {
        echo "<h3 class='subDesc'>" . htmlspecialchars($desc) . "</h3>";
    }
} else {
    echo "No matching title found.<br>";
}
?>
728x90