채택완료

is_file 문의

2020-04-03 (금) 15:41:47 1,786

아래와 같이 하면 1개만 있을땐 <img src="">가 되는데요.


$aaa에 여러개중
즉) 있는것도 있고 없는것도 있는데요.
무조건 <img src=""> 되어버리네요.

$mk = explode("|", $aaa);
if(is_file('/file/'.$mk)) {
$aaa = '<img src="'/file/'.$mk.'">';
} else {
$aaa = '';
}

위 코드가 잘못 된건가요?

고수님들 도움 좀 부탁드립니다.

|

답변 3개 / 댓글 3개

채택된 답변
+20 포인트

$mk = explode("|", $aaa);

if(sizeof($mk) > 1) {
    for ($i=0; $i < sizeof($mk); $i++){
        if(is_file('/file/'.$mk[$i])) {
            $aaa = '<img src="'/file/'.$mk[$i].'">';
        } else{
            $aaa = '';
        }
    }
} else{
        if(is_file('/file/'.$mk)) {
            $aaa = '<img src="'/file/'.$mk.'">';
        } else{
            $aaa = '';
        }
}

답변에 대한 댓글 1개

@평정심 님 답글 감사합니다.
알려주신대로하면 1개와 여러개일때를 구분 하는것 같은데요.
제가 설명을 제대로 못한듯 하네요.ㅠㅠ
제가 원하는건 여러개일때 하나는 있는 파일이고 하나는 없는 파일입니다.
이럴때 없는 파일은 <img 태그가 안들어가야 하는거거든요. ㅠ

$mk = explode("|", $aaa);  여기서

explode 함수는 배열을 리턴합니다 $mk에 배열형이 입력된다는 것이죠.

배열 루프돌려서 처리해야 합니다.

평정심님의 답변 코드에 루푸돌며 처리하는 부분이 있네요.

평정심님 코드에서 if else 문을 지우시고 if 문 속에 루프처리 부분만 사용하시면 되겠네요.

Copy
for ($i=0; $i < sizeof($mk); $i++){
        if(is_file('/file/'.$mk[$i])) {
            $aaa = '<img src="'/file/'.$mk[$i].'">';
        } else{
            $aaa = '';
        }
    }

답변에 대한 댓글 1개

@호달 님 답글 감사합니다.
알려주신대로하면 $aaa에 여러개 있을경우 마지막것만 체크가됩니다.
2020-04-03 (금) 15:51:50

우선 explode로 자를 때 자른 위치를 지정해줘야 할 것 같습니다. 

if(is_file('/file/'.$mk[0])) {, 또는 if(is_file('/file/'.$mk[1])) { 이런식으로 ...

답변에 대한 댓글 1개

@콜라시러 님 답글 감사합니다.
[0]순번을 정하는건 이게 고정이아니라 여러개일때도있고 1개 일때도 있습니다.

답변을 작성하려면 로그인이 필요합니다.