2014-03-05 3 views
0

폴더의 모든 이미지를 표시하는 간단한 스크립트가 있습니다.PHP를 사용하는 폴더의 파일 수를 표시합니다.

<?php 

foreach(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE) as $images) 
{ 
$filecount = count(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE)); 
if ($filecount >1) 
    { 
echo "<img width='75' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">"; 
    } 
else 
    { 
echo "<img width='200' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">"; 
    } 

} 

?> 

나는 내가 아래 folder.Giving에있는 파일의 수를 표시하는 tried..My 문제는이 각각의 이미지 전에 파일의 수를 보여주고 있다는 점이다 싶다.

if ($filecount >1) 
{ 
echo '' . $user . ' ' .'added ' . ' ' . $filecount . ' ' . 'new photos'; 
echo "<img width='75' height='auto' style='margin-right: 3px; alt='".$row["caption"] ."' src=\"".$images."\">"; 
} 

이미지 그룹을 표시하기 전에 어떻게 파일 수를 표시합니까?

+1

어떤 언어인가요? 태그 – BenVlodgi

+1

을 추가해야합니다.이 사진은 php입니다. 태그가 추가되었습니다. – user3370495

+0

아마도 foreach 루프를 사용하여 파일 수를 얻은 다음 기본 foreach 루프 앞에 인쇄하십시오. – BenVlodgi

답변

0

수집 한 파일 수만 표시해야합니다.
루프 전에 filecount 변수를 선언 한 다음 루프가 다음 결과로 갈 때마다 값을 센다가 합계하여 결국 총 파일 수를 표시해야합니다. 여기
는 코드를 작성해야하는 방법입니다

<?php 
$filecount = 0; 

foreach(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE) as $images) 
{ 
    $tempFileCount = count(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE)) 
    $filecount += $tempFileCount; 
    if ($tempFileCount > 1) 
    { 
     echo "<img width='75' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">"; 
    } 
    else 
    { 
     echo "<img width='200' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">"; 
    } 
} 

if($filecount > 1) 
{ 
    echo '' . $user . ' ' .'added ' . ' ' . $filecount . ' ' . 'new photos'; 
} 

?> 
+0

당신은 매우 환영합니다 :-) – MrByte

+0

이 줄에 오류를 발견하고 그것을 고쳤습니다. $ filecount + = $ tempFileCount; 이 줄을 $ filecount = $ tempFileCount로 변경했습니다. 그리고 그것은 잘 작동했습니다. – user3370495

+0

의견을 보내 주셔서 감사 드리며 죄송합니다.이 코드를 테스트 할 기회를 얻지 못했습니다. – MrByte

0

먼저 배열로 모든 이미지를 반환하는 함수를 만들 수 있습니다. glob php 함수에 오류가있는 경우 예외가 발생합니다 (거의 발생하지 않지만 발생했을 때 알 가치가 있습니다). 이 함수는 코드가 조금 깔끔하다는 느낌을줍니다.

<?php 
function getAllImagesOnDirectory($directory) { 
    $imagesArray = glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE); 
    if(!is_array($imagesArray)) { 
     throw new RuntimeException("There is a problem getting images on directory " . $directory); 
    } 

    return $imagesArray; 
} 


//Then we call this function to get all the images. 
$allImagesOnFilePath = getAllImagesOnDirectory($filePath); 
$numberOfImages = count($allImagesOnFilePath); 


if($numberOfImages > 0) { 
    echo '<p>' . $user . ' added ' . $numberOfImages . ' new photos</p>'; 
    //If the number of images is more than 0 then traverse all the images and echo them 
    foreach($allImagesOnFilePath as $oneImage) { 
     echo "<img style='max-width:100%;height:auto;margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$oneImage."\">"; 
    } 
} 
else { 
    //The user has no uploaded images 
    echo '<p>' . $user . ' has not added new photos yet :(</p>'; 
} 

이 방법으로 우리는 foreach를 사용하여 사용자가 요청한 일을하기 전에 $numberOfImages를 사용할 수 있습니다.
또한 여기 스타일 속성을 사용하여 이미지에 너비와 높이를 적용합니다. 자동 고침 이미지를 만드는 방법을 보려면이 기사를 참조하십시오. http://unstoppablerobotninja.com/entry/fluid-images

관련 문제