본문 바로가기

php

[php]숫자만 다른 파일 prev, next btn 함수로 만들기

같은 폴더 내

work1.php

work2.php

work3.php

work4.php ...

 

순으로 나열이 되어있을때 사용하면 좋음

<?php
    $file_name = basename($_SERVER['PHP_SELF']);
    // 파일명 읽기 - work1.php 추출
    $file_num = substr($file_name,5,2);
    // 문자열 자르기 - 1 추출
    $prev_num = $file_num - 1;
    $next_num = $file_num + 1;
    $prev_link =  "work".$prev_num.".php";
    $next_link =  "work".$next_num.".php";
    
    $dir = $_SERVER['DOCUMENT_ROOT']."/work";
    $scandir = scandir($dir);
    $count = count($scandir);
    $result = strval($count) - 2;
    

?>
<div class="btn">
        <div class="btn_prev"><a href="<?php if($prev_num<10){
            echo "work0".$prev_num.".php";
        }else{echo $prev_link;}
            ?>" style="<?php if($prev_num == "0"){
            echo "display:none";} ?>">이전</a></div><!-- .btn_prev -->
        <div class="btn_next"><a href="<?php if($next_num<10){
            echo "work0".$next_num.".php";
        }else{echo $next_link;}?>" style="<?php if($next_num == $result){
            echo "display:none";} ?>">다음</a></div><!-- .btn_next -->
</div><!-- .btn -->

↑ 지정폴더 $dir의 파일 갯수를 구하여 $next_num과 파일 갯수를 비교하여 마지막 파일의 .next_btn을 display:none

    단점 : $dir내 폴더 및 파일이 많아 질수록 $result에서의 마이너스 값을 계산해줘야함

 

 

 

↓ 지정폴더 $dir의 배열 마지막 파일명과 현재 파일명을 비교하여 같을 경우 display:none

    단점 : $dir의 파일 갯수와는 상관 없지만 배열로 노출시킬 마지막 파일 뒤에 다른 파일이 있을 경우 사용불가

<?php
    $file_name = basename($_SERVER['PHP_SELF']);
    // 파일명 읽기 - work1.php 추출
    $file_num = substr($file_name,5,2);
    // 문자열 자르기 - 1 추출
    $prev_num = $file_num - 1;
    $next_num = $file_num + 1;
    $prev_link =  "work".$prev_num.".php";
    $next_link =  "work".$next_num.".php";
    
    $dir = $_SERVER['DOCUMENT_ROOT']."/work";
    $scandir = scandir($dir);
    $result = end($scandir);
?>

<div class="btn">
        <div class="btn_prev"><a href="<?php if($prev_num<10){
            echo "work0".$prev_num.".php";
        }else{echo $prev_link;}
            ?>" style="<?php if($prev_num == "0"){
            echo "display:none";} ?>">이전</a></div><!-- .btn_prev -->
        <div class="btn_next"><a href="<?php if($next_num<10){
            echo "work0".$next_num.".php";
        }else{echo $next_link;}?>" style="<?php if($file_name == $result){
            echo "display:none";} ?>">다음</a></div><!-- .btn_next -->
</div><!-- .btn -->

 


top