2009-12-30 7 views
1

생성 된 ID를 사용하여 이미지를 인쇄 중입니다. 그러나 내가 대신 더-가 image.jpg를 인쇄하지 나던 경우이 가능 한 줄에 유지 될 수 있다면 그것은 좋은 것if 한 줄에 if 문이있는 경우

<img src="phpThumb/phpThumb.php?src=../public/images/'.$row["id"].'/th.jpg&w=162" alt="" width="162" /> 

...이 이미지와 존재하는지 확인하고 싶었다. 어떤 도움을 주시면 감사하겠습니다.

답변

3
크리스토퍼 아이브스의 말씀

file_exists :

http://en.wikipedia.org/wiki/Ternary_operation

당신은 그것을 할 수

echo (file_exists("/path/file/name/here") ? "web/path/goes/here" : "no_image.jpg") 

btw, 귀하의 스 니펫이 작동하지 않을 것 같습니다. PHP를 넣지 않고 일반 HTML 출력과 PHP를 결합해야합니다. <? ?>

+0

그것은 PHP로 포장되어 있지만 메모 주셔서 감사합니다 ... – Andy

2

와우,이 질문은 질문과 많은 대답됩니다 :

<img src="<?php ($row['id'] != 0) ? "../public/{$row['id']}.jpeg" : 'no_image.jpg'; ?> > 
+0

나는 이미지를 사용할 수 있는지 확인하고 확인하는 방법에 대해 더 많이 질문했을 것입니다. –

+0

예,하지만 너무 유용했습니다 :) – Andy

+0

오, 참으로, 나는 자동 모드 hehe에 다소있었습니다 –

3

내 추천은 실제로 html 태그 자체에서 의사 결정을 추상화하는 것입니다. html을 출력하지 않는 별도의 PHP 논리 블록 ... 여기 템플릿 엔진 또는 MVC 프레임 워크를 사용하지 않는다고 가정 한 축약 된 예제입니다.

<?php 
$filename = 'th.jpg'; 
$filePath = '/public/images/' . $row['id'] '/'; 
$webPath = '/images/' . $row['id'] . '/'; 
//Logic to get the row id etc 
if (!file_exists($filePath . $filename)) { 
    $filename ='no-image.jpg'; 
    $webPath = '/images/'; 
} 
?> 
<img src="<?php echo $webpath . $filename;?>" /> 
+0

이유를 설명하는 걸 깜빡 했어 : P 이 경우에 그것은 당신의 프리젠 테이션 논리에서 비즈니스 로직을 분리하여 나중에 추상화 할 수있게 해줍니다. 프레임 워크 또는 귀하의 코드를 재구성하기로 결정하고 실제로 그것을 표시하는 논리에서 사용할 소스 경로를 결정하기위한 논리를 호출하고 html에 산재 된 PHP 코드를 최소한으로 유지합니다. –

+0

이것은 매우 상세한 감사합니다. 아픈 미래 버전에 대한이 일을하고 나는 확실히 이점을 볼 수 있습니다. 다시 한 번 감사드립니다! – Andy

+0

아주 좋은 지적입니다. –

관련 문제