📁
File Manager
/home/nepsrganj/public_html/upload/Notice
7.4.33 · Linux
/
/
home
/
nepsrganj
/
public_html
/
upload
/
Notice
/home/nepsrganj/public_html/upload/Notice/index.php
← Back to folder
<?php /* ================================================================ * 디버그 / DEBUG * HTTP 500 오류의 정확한 원인을 보려면 아래 두 줄의 주석을 잠시 해제하고 * 페이지를 새로고침 하세요. 확인 후 반드시 다시 주석 처리하세요. * ================================================================ */ // error_reporting(E_ALL); // ini_set('display_errors', '1'); /* ================================================================ * 도메인 자동 감지 / AUTO-DETECT DOMAIN * 어떤 도메인·서브도메인에 올려도 현재 접속한 주소를 자동으로 사용합니다. * canonical, Open Graph, JSON-LD, sitemap 에 모두 자동 반영됩니다. * ================================================================ */ define('SITE_NAME', '주소핫'); $__host = 'localhost'; if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] !== '') { $__host = $_SERVER['HTTP_HOST']; } $__host = strtolower(trim($__host)); $__host = preg_replace('/[^a-z0-9.\-:]/', '', $__host); // 헤더 인젝션 방지 if ($__host === '') { $__host = 'localhost'; } define('SITE_URL', 'https://' . $__host); // canonical URL 은 항상 https 사용 header('Content-Type: text/html; charset=UTF-8'); header('Cache-Control: public, max-age=3600'); /* 공통 카테고리 — 'href' => '#' 부분을 실제 링크로 교체하세요 */ $categories = array( array('href' => '#', 'name' => '뉴스·미디어', 'desc' => '국내외 주요 언론·매거진 바로가기'), array('href' => '#', 'name' => '쇼핑·커머스', 'desc' => '인기 쇼핑몰과 특가 정보 모음'), array('href' => '#', 'name' => '금융·투자', 'desc' => '은행·증권·보험 공식 서비스'), array('href' => '#', 'name' => '교육·학습', 'desc' => '온라인 강의·자격증·어학 정보'), array('href' => '#', 'name' => '여행·레저', 'desc' => '항공·숙박·여행 계획 도구'), array('href' => '#', 'name' => '생활·편의', 'desc' => '배달·지도·날씨 등 생활 밀착 도구'), array('href' => '#', 'name' => '커뮤니티', 'desc' => '관심사별 커뮤니티와 포럼'), array('href' => '#', 'name' => '정부·공공', 'desc' => '민원·공공기관 공식 사이트'), ); /* ================================================================ * 페이지별 SEO 설정 — index.php?t=1 / 2 / 3 / 4 (0 = 메인 허브) * ================================================================ */ $pages = array( /* ---------- 메인 (/) ---------- */ 0 => array( 'nav' => '홈', 'keyword' => '주소모음 · 링크모음 허브', 'title' => '주소핫 | 2026 최신 주소모음 · 링크모음 바로가기 허브', 'description' => '주소핫은 주소모음, 링크모음, 주소온길까지 2026년 최신 인기 사이트 주소를 한곳에 정리한 무료 바로가기 허브입니다. 매일 업데이트되는 검증된 링크를 만나 보세요.', 'keywords' => '주소핫, 주소온길, 주소모음, 링크모음', 'h1' => '2026 최신 주소모음 · 링크모음 허브', 'lead' => '북마크할 필요 없이, 검색할 필요 없이. 주소핫 하나면 자주 가는 사이트의 최신 주소를 한 화면에서 확인할 수 있습니다.', 'sections' => array( array('왜 주소모음 허브가 필요할까요?', array( '인터넷에서 자주 찾는 사이트는 늘어나는데, 주소는 자꾸 바뀌고 북마크는 금방 지저분해집니다. 주소핫은 이런 불편을 해결하기 위해 인기 사이트의 최신 주소를 카테고리별로 정리한 허브 페이지입니다.', '검색 결과를 뒤질 필요 없이 한 번의 클릭으로 원하는 사이트에 도착할 수 있도록, 주소모음과 링크모음의 장점만 모았습니다.', )), array('매일 업데이트되는 검증 시스템', array( '수록된 모든 링크는 매일 자동 점검을 거칩니다. 접속이 되지 않거나 주소가 변경된 링크는 당일 내에 최신 주소로 교체되므로 언제 방문해도 최신 상태를 유지합니다.', '또한 HTTPS 보안 적용 여부와 콘텐츠 신뢰도를 함께 확인해, 안심하고 클릭할 수 있는 주소만 안내합니다.', )), array('카테고리별 인기 사이트 바로가기', array( '아래 8개 카테고리에서 필요한 사이트를 바로 찾아보세요. 각 카테고리는 이용자가 가장 많이 찾는 순서로 정렬됩니다.', )), ), 'faq' => array( array('주소핫은 무료로 이용할 수 있나요?', '네, 주소핫의 모든 주소모음과 링크모음 서비스는 회원가입 없이 무료로 이용할 수 있습니다.'), array('링크는 얼마나 자주 업데이트되나요?', '모든 카테고리의 링크는 매일 점검·업데이트되며, 접속이 원활하지 않은 주소는 신속하게 교체됩니다.'), array('모바일에서도 이용할 수 있나요?', '네, 주소핫은 반응형으로 제작되어 스마트폰, 태블릿, PC 등 모든 기기에서 최적화된 화면을 제공합니다.'), ), 'accent' => '#e63946', ), /* ---------- t=1 : 주소핫 ---------- */ 1 => array( 'nav' => '주소핫', 'keyword' => '주소핫', 'title' => '주소핫 | 2026 최신 주소모음 - 매일 업데이트되는 무료 링크모음 TOP 100', 'description' => '주소핫에서 2026년 최신 인기 사이트 주소 100선을 확인하세요. 매일 업데이트되는 검증된 링크모음, 카테고리별 주소모음, 무료 바로가기를 지금 만나 보세요.', 'keywords' => '주소핫, 주소모음, 링크모음, 최신주소, 바로가기', 'h1' => '주소핫 – 지금 가장 핫한 주소만 모았습니다', 'lead' => '이용자가 실제로 가장 많이 찾는 인기 사이트 주소를 ‘핫’한 순서로 정리했습니다. 주소핫에서 2026년 최신 주소모음을 가장 먼저 만나 보세요.', 'sections' => array( array('주소핫이란?', array( '주소핫은 이름 그대로 지금 가장 ‘핫’한 사이트 주소만을 엄선해 모아 놓은 주소모음 서비스입니다. 이용자의 클릭 데이터와 최신 트렌드를 반영해, 사람들이 실제로 많이 찾는 주소를 상단에 배치합니다.', '2026년 최신 기준으로 정리된 100여 개의 인기 사이트 주소를 뉴스, 쇼핑, 교육, 생활 등 8개 카테고리로 나누어 제공합니다.', )), array('주소핫만의 4가지 강점', array( '첫째, 매일 업데이트. 모든 링크를 매일 점검해 끊긴 주소를 즉시 교체합니다. 둘째, 인기순 정렬. 실제 이용량이 높은 주소부터 보여 주므로 선택이 빠릅니다.', '셋째, 완전 무료. 회원가입과 로그인 없이 모든 기능을 사용할 수 있습니다. 넷째, 모바일 최적화. 어떤 기기에서도 보기 편한 반응형 화면을 제공합니다.', )), array('카테고리별 핫 주소', array( '가장 인기 있는 카테고리부터 차례로 만나 보세요. 각 카테고리 카드에는 대표 사이트의 최신 주소가 정리되어 있습니다.', )), array('주소핫 200% 활용 팁', array( '주소핫을 브라우저 시작 페이지로 지정해 두면 매일 아침 가장 먼저 최신 주소를 확인할 수 있습니다. 자주 쓰는 카테고리는 즐겨찾기에 개별 등록해 두면 더욱 빠르게 접근할 수 있습니다.', )), ), 'faq' => array( array('주소핫과 일반 링크모음의 차이점은 무엇인가요?', '주소핫은 단순히 주소를 나열하지 않고, 이용자가 가장 많이 찾는 인기 주소를 선별해 ‘핫’한 순서로 정리한다는 점이 다릅니다.'), array('주소핫에 사이트 등록을 신청할 수 있나요?', '네, 사이트 하단 문의를 통해 등록을 신청할 수 있으며, 내부 검증 절차를 통과한 사이트만 수록됩니다.'), array('링크가 접속되지 않으면 어떻게 하나요?', '대부분 매일 점검으로 자동 교체됩니다. 문제가 계속되면 신고해 주세요. 24시간 이내에 확인 후 처리해 드립니다.'), ), 'accent' => '#e63946', ), /* ---------- t=2 : 주소온길 ---------- */ 2 => array( 'nav' => '주소온길', 'keyword' => '주소온길', 'title' => '주소온길 | 검증된 사이트만 엄선한 안전한 주소모음 (2026 최신)', 'description' => '주소온길은 바른길 안내처럼 안전하고 신뢰할 수 있는 링크만 엄선한 2026 최신 주소모음입니다. 검증된 링크모음 바로가기를 무료로 이용해 보세요.', 'keywords' => '주소온길, 주소모음, 링크모음, 안전한링크, 검증된사이트', 'h1' => '주소온길 – 바른길 안내처럼, 검증된 주소만 안내합니다', 'lead' => '출처가 불분명한 링크는 수록하지 않습니다. 주소온길은 안전하고 신뢰할 수 있는 사이트 주소만을 골라 안내하는 주소모음 가이드입니다.', 'sections' => array( array('주소온길이란?', array( '‘온길’은 ‘올바른 길, 바른길’이라는 뜻입니다. 주소온길은 이름처럼 검증된 안전한 주소만을 골라 안내하는 주소모음 서비스로, 출처가 불분명한 링크는 수록하지 않습니다.', '빠른 것보다 정확한 것을 우선합니다. 2026년 최신 기준으로 정리된 신뢰할 수 있는 사이트 주소를 카테고리별로 만나 보세요.', )), array('주소온길의 3단계 검증 기준', array( '1단계 연결 확인: 링크가 정상적으로 열리는지 매일 점검합니다. 2단계 보안 확인: HTTPS 적용 여부와 안전한 접속 환경을 확인합니다.', '3단계 신뢰 확인: 사이트의 운영 주체와 콘텐츠 품질을 검토해 기준을 통과한 곳만 수록합니다. 세 단계를 모두 통과하지 못한 주소는 즉시 제외됩니다.', )), array('이런 분께 추천합니다', array( '모르는 링크를 클릭하기 망설여지는 분, 가족과 함께 쓰는 기기에서 안전한 바로가기가 필요한 분, 회사에서 업무용 사이트 주소를 빠르게 찾고 싶은 분께 주소온길이 잘 맞습니다.', )), array('안전한 인터넷 이용 수칙', array( '아무리 검증된 링크라도 개인정보를 입력하기 전에는 주소창의 도메인을 한 번 더 확인하세요. 주소온길은 앞으로도 바른길 안내자로서 안전한 주소모음을 유지하겠습니다.', )), ), 'faq' => array( array('주소온길의 ‘검증’은 어떤 기준으로 이루어지나요?', '도메인 연결 상태, HTTPS 보안 적용 여부, 콘텐츠 신뢰도의 3단계 기준을 통과한 사이트만 수록됩니다.'), array('주소온길은 어떤 사용자에게 적합한가요?', '낯선 링크 클릭이 걱정되는 분, 안전한 주소만 빠르게 찾고 싶은 분에게 적합합니다.'), array('수록 사이트 이용은 유료인가요?', '주소온길은 링크 안내 서비스이며 안내 자체는 모두 무료입니다. 각 사이트의 이용 조건은 해당 사이트의 정책을 따릅니다.'), ), 'accent' => '#0f9d8f', ), /* ---------- t=3 : 주소모음 ---------- */ 3 => array( 'nav' => '주소모음', 'keyword' => '주소모음', 'title' => '주소모음 | 2026년 최신 인기 사이트 주소 총정리 TOP 100', 'description' => '흩어진 사이트 주소를 한곳에! 2026 최신 주소모음에서 뉴스, 쇼핑, 교육, 생활 등 카테고리별 인기 사이트 링크를 무료로 빠르게 찾아보세요.', 'keywords' => '주소모음, 링크모음, 사이트주소, 최신주소, 주소총정리', 'h1' => '주소모음 – 흩어진 사이트 주소를 한곳에', 'lead' => '같은 사이트인데 주소가 바뀌어 접속이 안 됐던 경험, 이제 그만. 2026년 최신 기준으로 정리된 인기 사이트 주소 100여 곳을 카테고리별로 모았습니다.', 'sections' => array( array('주소모음이 필요한 이유', array( '같은 사이트인데 주소가 바뀌어 접속이 안 됐던 경험, 한 번쯤 있으시죠? 주소모음은 변경된 주소까지 추적해 한곳에 정리해 두는 서비스입니다.', '검색 엔진에서 광고와 무관한 글을 걸러 낼 필요 없이, 카테고리만 선택하면 원하는 사이트의 최신 주소에 바로 도착합니다.', )), array('어떤 사이트가 수록되나요?', array( '뉴스·미디어, 쇼핑·커머스, 금융·투자, 교육·학습, 여행·레저, 생활·편의, 커뮤니티, 정부·공공까지 8개 카테고리에서 이용자 선호도가 높은 100여 개 사이트를 엄선했습니다.', '수록 기준은 이용자가 실제로 많이 찾는지, 주소가 안정적으로 유지되는지, 콘텐츠가 신뢰할 만한지의 세 가지입니다.', )), array('2026년 최신 주소 총정리', array( '아래 카테고리별 모음은 2026년 최신 기준으로 정리되었으며, 주소 변경이 확인되는 즉시 반영됩니다. 필요한 카테고리를 선택해 바로 이동해 보세요.', )), array('북마크보다 주소모음이 편한 이유', array( '브라우저 북마크는 기기마다 따로 관리해야 하고 주소가 바뀌면 무용지물이 됩니다. 주소모음은 주소 변경이 자동으로 반영되고, 어떤 기기에서든 같은 화면으로 접속할 수 있어 훨씬 관리가 쉽습니다.', )), ), 'faq' => array( array('주소모음에는 몇 개의 사이트가 수록되어 있나요?', '8개 카테고리에 걸쳐 인기 사이트 100여 곳의 최신 주소가 수록되어 있으며 지속적으로 확대되고 있습니다.'), array('찾는 사이트가 없으면 어떻게 하나요?', '카테고리 요청이나 사이트 제보를 보내 주시면 검토 후 반영해 드립니다.'), array('주소모음을 시작 페이지로 설정할 수 있나요?', '네, 브라우저 설정에서 시작 페이지를 주소모음 URL로 지정하면 매일 업데이트된 주소를 바로 확인할 수 있습니다.'), ), 'accent' => '#4b6bfb', ), /* ---------- t=4 : 링크모음 ---------- */ 4 => array( 'nav' => '링크모음', 'keyword' => '링크모음', 'title' => '링크모음 | 매일 업데이트되는 2026 최신 무료 링크 바로가기', 'description' => '자주 가는 사이트를 한 번에! 매일 업데이트되는 2026 최신 링크모음에서 검증된 바로가기 링크를 카테고리별로 무료로 확인하고 검색 시간을 절약하세요.', 'keywords' => '링크모음, 주소모음, 바로가기, 링크사이트, 무료링크', 'h1' => '링크모음 – 매일 새로워지는 링크 바로가기', 'lead' => '자주 방문하는 사이트의 바로가기 링크를 한 페이지에 모았습니다. 매일 점검되는 최신 링크로 검색 없이 바로 출발하세요.', 'sections' => array( array('링크모음이란?', array( '링크모음은 자주 방문하는 사이트의 바로가기 링크를 한 페이지에 모아 놓은 서비스입니다. 여러 사이트를 오가는 번거로움을 줄이고, 한 화면에서 모든 출발을 해결할 수 있습니다.', '2026년 최신 기준으로 정리된 검증 링크를 카테고리별로 무료 제공하며, 로그인 없이 누구나 이용할 수 있습니다.', )), array('매일 업데이트는 어떻게 이루어지나요?', array( '매일 정해진 시간에 전체 링크의 접속 상태를 자동 점검합니다. 응답이 없거나 주소가 변경된 링크는 당일 내 최신 주소로 교체됩니다.', '새로 떠오르는 인기 사이트도 주기적으로 발굴해 추가하기 때문에, 방문할 때마다 새로운 유용한 링크를 발견하는 재미가 있습니다.', )), array('카테고리별 링크 한눈에 보기', array( '8개 카테고리로 정리된 바로가기 링크를 확인해 보세요. 각 링크는 검증을 거친 최신 주소로 연결됩니다.', )), array('나만의 시작 페이지로 설정하기', array( '브라우저 설정에서 시작 페이지를 링크모음 주소로 지정하면, 브라우저를 켤 때마다 매일 업데이트된 최신 링크가 기다리고 있습니다. 모바일에서는 홈 화면에 바로가기를 추가하면 앱처럼 사용할 수 있습니다.', )), ), 'faq' => array( array('링크모음의 업데이트 주기는 어떻게 되나요?', '전체 링크를 매일 자동 점검하고, 변경된 주소는 당일 내 반영합니다.'), array('링크모음과 브라우저 북마크의 차이점은 무엇인가요?', '북마크는 내가 저장한 주소만 보관하지만, 링크모음은 검증된 인기 사이트를 카테고리별로 계속 추천받을 수 있습니다.'), array('로그인 없이 사용할 수 있나요?', '네, 별도의 회원가입이나 로그인 없이 모든 링크모음을 무료로 이용할 수 있습니다.'), ), 'accent' => '#f08c00', ), ); /* ---------- 공용 함수 ---------- */ function e($s) { return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); } function page_url($id) { $id = (int)$id; if ($id === 0) { return SITE_URL . '/'; } return SITE_URL . '/index.php?t=' . $id; } /* ---------- 라우팅 ---------- */ $t = 0; if (isset($_GET['t'])) { $t = (int)$_GET['t']; } if (!isset($pages[$t])) { $t = 0; } $page = $pages[$t]; $canonical = page_url($t); /* ---------- 구조화 데이터 (JSON-LD) ---------- */ $faqEntities = array(); foreach ($page['faq'] as $f) { $faqEntities[] = array( '@type' => 'Question', 'name' => $f[0], 'acceptedAnswer' => array('@type' => 'Answer', 'text' => $f[1]), ); } $ld = array( '@context' => 'https://schema.org', '@graph' => array( array( '@type' => 'WebSite', '@id' => SITE_URL . '/#website', 'url' => SITE_URL . '/', 'name' => SITE_NAME, 'inLanguage' => 'ko', ), array( '@type' => 'WebPage', '@id' => $canonical, 'url' => $canonical, 'name' => $page['title'], 'description' => $page['description'], 'inLanguage' => 'ko', 'isPartOf' => array('@id' => SITE_URL . '/#website'), ), array( '@type' => 'FAQPage', 'mainEntity' => $faqEntities, ), ), ); $jsonFlags = 0; if (defined('JSON_UNESCAPED_SLASHES')) { $jsonFlags = $jsonFlags | JSON_UNESCAPED_SLASHES; } if (defined('JSON_UNESCAPED_UNICODE')) { $jsonFlags = $jsonFlags | JSON_UNESCAPED_UNICODE; } if ($jsonFlags !== 0) { $ldJson = json_encode($ld, $jsonFlags); } else { $ldJson = json_encode($ld); // PHP 5.2 호환 } ?> <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Primary SEO --> <title><?php echo e($page['title']); ?></title> <meta name="description" content="<?php echo e($page['description']); ?>"> <meta name="keywords" content="<?php echo e($page['keywords']); ?>"> <meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large"> <link rel="canonical" href="<?php echo e($canonical); ?>"> <!-- Open Graph --> <meta property="og:type" content="website"> <meta property="og:site_name" content="<?php echo e(SITE_NAME); ?>"> <meta property="og:locale" content="ko_KR"> <meta property="og:url" content="<?php echo e($canonical); ?>"> <meta property="og:title" content="<?php echo e($page['title']); ?>"> <meta property="og:description" content="<?php echo e($page['description']); ?>"> <!-- og:image 를 사용하려면 대표 이미지(1200x630)를 올리고 아래 주석을 해제하세요 <meta property="og:image" content="https://yourdomain.com/og-cover.png"> --> <!-- Twitter Card --> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content="<?php echo e($page['title']); ?>"> <meta name="twitter:description" content="<?php echo e($page['description']); ?>"> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ctext y='.9em' font-size='90'%3E%F0%9F%94%A5%3C/text%3E%3C/svg%3E"> <script type="application/ld+json"> <?php echo $ldJson; ?> </script> <style> :root{--accent:<?php echo e($page['accent']); ?>;--ink:#1a1d29;--mut:#5b6172;--bg:#f6f7fb;--card:#fff;--line:#e6e8f0} *{margin:0;padding:0;box-sizing:border-box} body{font-family:'Pretendard','Noto Sans KR',-apple-system,BlinkMacSystemFont,'Malgun Gothic',sans-serif;background:var(--bg);color:var(--ink);line-height:1.75} a{color:var(--accent);text-decoration:none} .wrap{max-width:960px;margin:0 auto;padding:0 20px} header.site{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10} header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap} .brand{font-size:22px;font-weight:800;color:var(--ink)} .brand span{color:var(--accent)} nav.top a{margin-left:14px;font-size:14px;color:var(--mut);font-weight:600} nav.top a:hover{color:var(--accent)} .hero{padding:52px 0 4px} .badge{display:inline-block;background:var(--accent);color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:4px 12px;margin-bottom:14px} h1{font-size:clamp(25px,4.6vw,38px);line-height:1.35;font-weight:800} .lead{margin:14px 0 0;font-size:17px;color:var(--mut);max-width:740px} main section{margin-top:46px} h2{font-size:22px;font-weight:800;margin-bottom:12px;padding-left:12px;border-left:4px solid var(--accent)} section p{color:#3a3f4f;margin-bottom:10px} .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:16px} .card{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;transition:border-color .15s,transform .15s} .card:hover{border-color:var(--accent);transform:translateY(-2px)} .card b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px} .card small{color:var(--mut);font-size:13px} details{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:0 18px} summary{cursor:pointer;font-weight:700;padding:15px 0;list-style:none} summary::before{content:'Q.';color:var(--accent);margin-right:8px} details p{padding:0 0 16px} .pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px} .pills a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-weight:700;color:var(--ink);font-size:14px} .pills a:hover{border-color:var(--accent);color:var(--accent)} footer.site{margin-top:64px;background:#16182a;color:#9aa0b4;font-size:13px} footer.site .wrap{padding-top:28px;padding-bottom:28px} footer.site nav a{color:#c9cede;margin-right:14px} footer.site p{margin-top:10px} </style> </head> <body> <header class="site"> <div class="wrap"> <a class="brand" href="<?php echo e(page_url(0)); ?>">주소<span>핫</span></a> <nav class="top" aria-label="주요 메뉴"> <?php foreach ($pages as $id => $p): ?> <?php if ($id === 0) { continue; } ?> <a href="<?php echo e(page_url($id)); ?>"><?php echo e($p['nav']); ?></a> <?php endforeach; ?> </nav> </div> </header> <main class="wrap"> <div class="hero"> <span class="badge">매일 업데이트 · 2026 최신</span> <h1><?php echo e($page['h1']); ?></h1> <p class="lead"><?php echo e($page['lead']); ?></p> </div> <?php foreach ($page['sections'] as $sec): ?> <section> <h2><?php echo e($sec[0]); ?></h2> <?php foreach ($sec[1] as $para): ?> <p><?php echo e($para); ?></p> <?php endforeach; ?> </section> <?php endforeach; ?> <section> <h2>카테고리별 바로가기</h2> <div class="grid"> <?php foreach ($categories as $c): ?> <a class="card" href="<?php echo e($c['href']); ?>"> <b><?php echo e($c['name']); ?></b> <small><?php echo e($c['desc']); ?></small> </a> <?php endforeach; ?> </div> </section> <section> <h2>자주 묻는 질문</h2> <?php foreach ($page['faq'] as $f): ?> <details> <summary><?php echo e($f[0]); ?></summary> <p><?php echo e($f[1]); ?></p> </details> <?php endforeach; ?> </section> <section> <h2>함께 보는 페이지</h2> <div class="pills"> <?php foreach ($pages as $id => $p): ?> <?php if ($id === $t) { continue; } ?> <a href="<?php echo e(page_url($id)); ?>"><?php echo e($p['keyword']); ?></a> <?php endforeach; ?> </div> </section> </main> <footer class="site"> <div class="wrap"> <nav aria-label="푸터 메뉴"> <?php foreach ($pages as $id => $p): ?> <a href="<?php echo e(page_url($id)); ?>"><?php echo e($p['nav']); ?></a> <?php endforeach; ?> </nav> <p>© 2026 <?php echo e(SITE_NAME); ?>. 최신 주소모음 · 링크모음은 매일 업데이트됩니다.</p> </div> <!-- ============================================================ ★ YOUR CUSTOM FOOTER JS GOES HERE ★ 전달 주신다던 JS 코드가 메시지에 첨부되지 않았습니다. 아래 두 줄 사이에 붙여 넣으면 모든 페이지의 푸터에 삽입됩니다. 예시: <script> ...your code... </script> ============================================================ --> <!-- ==================== END CUSTOM FOOTER JS ================== --> </footer> </body> </html>
Cancel
✓ Save