PHP는

2011-03-29 9 views
3

그래서 내가 지정한 폴더에서 이미지를 끌어와 img 태그와 함께 그들을으로 출력한다 코드 블록을 가로 질러왔다 문제는 이미지의 순서입니다.PHP는

그래서, 내 "이미지"폴더에 말을하자, 나는 이러한 이미지가 있습니다

2.JPG b.jpg a.jpg 1.JPG

이 어떻게 있도록 할 수 있습니다 을 숫자와 알파벳 순으로 이미지를 나열합니까? 나는 다음 알파벳을 먼저 와서 번호가 매겨진 이미지를 원하는, 그래서 같은 이미지를 나열합니다 :이 일을

1.JPG 2.JPG a.jpg b.jpg

어떤 생각을 내가 가지고있는 코드는?

도움 주셔서 감사합니다.

답변

4

자연 언어 정렬이 필요합니다. 여기 PHP 함수 natsort()를 사용 ..

..

<?php 
$url = "./images/"; 
$temp_files = scandir($url); 
natsort($temp_files); 
foreach($temp_files as $file) 
{ 
    if($file != "." && $file != ".." && $file != basename(__FILE__)) 
    { 
     echo '<a href="'.$url.$file.'" class="lightbox" title="'.$file.'"><img src="'.$url.$file.'" alt="" /></a><br />'; 
    } 
} 
?> 
+1

감사합니다. 이 기능이 존재하지 않았다는 것을 알고 심지어 –

+0

위대한 솔루션! –

+0

만약 내가 다른 방향으로 가고 싶다면? 첫 번째 알파벳순과 숫자 순? –

0

즉시 에코하는 대신 배열에 링크를 추가 할 수 있습니다. 그런 다음 sort($array)을 사용하여 올바른 순서로 배치하고 foreach 루프에있는 각각의 코드를 foreach($array as $image) { echo ... }처럼 반복하여 에코합니다.

대한 추가 정보를 원하시면 다음을 참조하십시오 http://php.net/manual/en/function.sort.php

+0

큰 마음이 alike..was는 생각 이것을 타이프하는 것 : – zamN

+0

하하. :) – tvkanters

+2

또한 원래 게시물에 추가하려면 정렬과 같은 작업을 할 때 php.net을 확인해보십시오.여기에 가기 전에 그렇게했다면 아마 그 질문을 할 필요가 없을 것입니다. – zamN

0

내가 배열을 주문 sort()를 사용하여 다음 배열의 파일 이름을 저장하고있다. reddir이 다음과 같이 파일 이름 만 반환하기 때문에 더 쉬운 방법은 없습니다.

파일 이름은 파일 시스템에 저장된 순서대로 반환됩니다.

0

scandir()glob() 기능은 정렬 된 디렉토리 내용을 모두 반환 배열, 또는 수동 배열을 구성 할 opendir/readdir()를 계속 사용할 수 있습니다.

정렬 순서 (또는 그 부족)가 원하는 것이 아닌 경우 array sorting functions 중 하나를 사용하여 원하는대로 순서를 조작 할 수 있습니다. 나는 natcasesort()을 좋아하는 경향이 있습니다.

1

<?php 
    $url = "./test/"; 
    $exclude = array('.', '..'); 
    $files = array_diff(scandir($url), $exclude); 
    natsort($files); 
    print_r(array_values($files)); 
?> 

는 출력 :

Array 
(
    [0] => 1.jpg 
    [1] => 2.jpg 
    [2] => a.jpg 
    [3] => b.jpg 
)