2011-11-04 3 views
2

jquery 슬라이드 쇼에 이미지를 표시하는 간단한 스크립트를 사용하고 있습니다.이 이미지 파일 이름은 .txt 파일로 나열되며 현재 사용중인 페이지에 따라 변경됩니다 (다른 페이지에서는 페이지 매김을 사용함). 스크립트). .txt 파일에 나열된 파일 이름이 존재하지 않는 경우, 내가 대신 표시 할 이미지 'unavailable.jpg'을 싶습니다파일이 작동하지 않는 경우 PHP

...

원래 스크립트 :

<?php 
echo" 
<div id='slider-wrapper'><div id='slider' class='nivoSlider'>"; 
$photos=file("photos.txt"); 
foreach($photos as $image){ 
$item=explode("|",$image); 
if($item[0]==$fields[0]){ 
$photo=trim($item[1]); 
echo"<img src='images/work/$photo' alt='' />\n"; 
} 
} 
echo" 
</div> 
</div> 
"?> 

그리고 여기 내 시도입니다 ...하지만 제대로 작동하지 않습니다 - 'unavailable.jpg'이미지가 표시되는 대신 디렉토리의 모든 이미지를 보여줍니다 ... : S 누구나 내가 뭘 잘못하고 있니? : S

<?php 
echo" 
<div id='slider-wrapper'><div id='slider' class='nivoSlider'>"; 
$photos=file("photos.txt"); 
foreach($photos as $image){ 
$item=explode("|",$image); 
$photo=trim($item[1]); 
if (file_exists("images/work/".$photo)) { 
echo"<img src='images/work/$photo' alt='' />\n"; 
} 
else{ 
echo"<img src='images/work/unavailable.jpg' alt='' />\n"; 
} 
} 
echo" 
</div> 
</div> 
"?> 

모든 이미지가 표시되는 대신 해당 페이지의 이미지 만 표시하면됩니다. 다음은 텍스트 파일의 예입니다.

1|image1.jpg 
1|image2.jpg 
1|image3.jpg 
2|image1.jpg 
2|image2.jpg 

1과 2는 페이지 1과 2에 대한 것이며 나열된 이미지를 표시합니다. 이 모든 위의 원본 스크립트에서 잘 작동하지만 게시 할 때 if file_exists 추가 할 휴식 것 같습니다.

+2

디렉토리에있는 모든 이미지를 표시한다는 것은 무엇을 의미합니까? 존재하지 않는 파일 이름을 만들면 무엇이 이미지로 표시됩니까? – Ord

+1

파일이있는 경우 표시하지 않을까요? – xdazz

+0

또한'$ image'의 형식은 무엇입니까? 폭발해야하고, 하나의 아이템 만 선택하고, 왜곡해야하는 이유는 무엇입니까? – Ord

답변

1

이미지의 경로는 상대 경로를 사용합니다. 현재 작업중인 디렉토리가 생각하는 디렉토리입니까? 확인하려면

echo 'Current Working Directory: '.getcwd()."<br />\n" 말고 당신이 어떤 디렉토리를 확인합니다.

그것을 아마 최고의 스크립트가 서버에 삽입 될 수 있도록 이미지의 디렉토리에 전체 파일 경로를 사용 할 수 있습니다.

이제 올바른 경우 스크립트에 이미지 디렉토리에 대한 권한이 있는지 확인해야합니다. 일반적으로 php는 구성에 따라 nobody:nobody 또는 apache:apache으로 실행됩니다.

위의 디렉토리와 파일은 644 (-rw-r - r--) 또는 최소 444 (-r - r - r--)이어야합니다.

이 두 가지를 시도해보고 문제가 해결되었는지 여부를 알려주십시오. 나는 그랬 으면 좋겠다.

+0

고마워요! unavailable.jpg를 포함하여 모든 이미지가 올바르게 표시되지만 모든 이미지는 한 번에 나열됩니다. 따라서 페이지 1이 2 개의 이미지 만 표시하는 대신 디렉토리의 모든 이미지가 unavailable.jpg 파일을 포함하여 슬라이드 쇼에 표시됩니다. 희망을 나는 이해하고있다. – Jess

0

당신은 $ 항목에 대한 테스트를 다시 추가해야 [0] == $ 필드 [0] :

<?php 
    echo "<div id='slider-wrapper'><div id='slider' class='nivoSlider'>"; 
    $photos = file("photos.txt"); 
    foreach ($photos as $image) { 
     $item = explode("|",$image); 
     $photo = trim($item[1]); 
     if (file_exists("images/work/".$photo) 
      && $item[0] == $fields[0] 
     ) { 
      echo "<img src='images/work/$photo' alt='' />\n"; 
     } else { 
      echo "<img src='images/work/unavailable.jpg' alt='' />\n"; 
     } 
    } 

    echo "</div></div>"; 
?> 

편집 : 난 그냥 오트는 코멘트에 이미 지적 것으로 나타났습니다. 아직 unavailable.jpg에 문제가 있습니까?

관련 문제