테스트 사이트 - 개발 중인 베타 버전입니다

파일 첨부한 동영상을 리스트에서 불러오고 싶습니다. 채택완료

masahide 2년 전 조회 2,404

안녕하세요.
파일로 첨부한 동영상을 본문에서는 

 

         <?php

        // 파일 출력, 비디오 파일

        $video_count = count($view['file']);

        if($video_count) {

            echo "<div>\n";

            for ($i=0; $i<=count($view['file']); $i++) {

                if ($view['file'][$i]['file'] && @preg_match("/.mp4/i", $view['file'][$i]['file'])) {

                    echo '<div><video controls autoplay="" loop="" muted>';

                    echo '<source src="'.G5_URL."/data/file/".$bo_table."/".$view['file'][$i]['file'].'" type="video/mp4">';

                    echo '</video></div>';

                }

            }

            echo "</div>\n";

        }

        ?>

로 불러오고 있습니다.

 

동영상을 리스트에서도 불러오려면 검색해보니 $view를 $list[$i]로 변경해야한다기에 아래 처럼 넣었습니다.

 

         <?php

        // 파일 출력, 비디오 파일

        $video_count = count($list[$i]['file']);

        if($video_count) {

            echo "<div>\n";

            for ($i=0; $i<=count($list[$i]['file']); $i++) {

                if ($list[$i]['file'][$i]['file'] && @preg_match("/.mp4/i", $list[$i]['file'][$i]['file'])) {

                    echo '<div><video controls autoplay="" loop="" muted>';

                    echo '<source src="'.G5_URL."/data/file/".$bo_table."/".$list[$i]['file'][$i]['file'].'" type="video/mp4">';

                    echo '</video></div>';

                }

            }

            echo "</div>\n";

        }

        ?>


이렇게 올렸더니, 리스트에 동영상이 불러와 지기는 하는데, 
동영상 아래 
count(): Parameter must be an array or an object that implements Countable
에러가 나며 동영상외 본문 내용은 하나도 안나오고 리스트에 다른 게시물이 하나도 안보입니다.

 

어떤 경우에는 리스트에 동영상이 나오긴 하는데, 
본문 내용은 다른 게시물의 내용이 나오며, 역시 리스트에 다른 게시물은 안보이는 등 무언가 뒤죽박죽 되면서 에러가 나고있습니다. 


질문게시판 검색해서
for ($i=0; $i<=count($list[$i]['file']); $i++) {

for ($i=0; $i<=count((array) $list[$i]['file']); $i++) { 

for ($i=0, $cnt=count($list[$i]['file']); $i<=$cnt; $i++) {

$cnt = 0;
if (is_array($list[$i]['file'])) 
$cnt = count($list[$i]['file']);
for ($i=0; $i<=$cnt; $i++) {
등으로 수정해봐도 동일한 현상입니다.

 

리스트에서 첨부한 동영상 제대로 보여줄 수 있는 방법 있을까요?
아시는 분 답변 주시면 정말 감사하겠습니다.

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

답변 3개

채택된 답변
+20 포인트
A
2년 전

에러 그대로 count 함수를 사용못하는 값을 count 시도하셔서 발생하시는 에러이다보니

 

function displayRandomVideos($videoArray, $boardTable) {
    if (is_array($videoArray)) {
        foreach ($videoArray as $videoItem) {
            if ($videoItem['file'] && preg_match("/.mp4/i", $videoItem['file'])) {
                echo '<div><video controls autoplay loop muted>';
                echo '<source src="'.G5_URL."/data/file/".$boardTable."/".$videoItem['file'].'" type="video/mp4">';
                echo '</video></div>';
            }
        }
    }
}

함수 콜 ($view['file'], $board_table);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

m
masahide
2년 전
친절하신 답변 감사합니다.
알려주신 소스를 어느 부분에 어떤식으로 넣어야 하는지 자세히 알려주실 수 있으신지요?
제가 이리저리 넣어봐도 잘 안되서요.
액트온
2년 전
저 그대로 사용하시면 안되고 저걸 참고하여 수정하시라고 적어드렸습니다!
함수콜 하면 동영상이 보이기에 저걸 리스트에 사용하시면 됩니다.
m
masahide
2년 전
답변 감사합니다.
제가 기본지식이 없다보니 검색으로 수정만 하는 정도라서,
적어주신 내용 참고해서 이리저리 수정해보려고해도 잘 안되네요.
m
masahide
2년 전
제가 실력이 없어서 알려주신 방법을 적용하지는 못했지만,
https://sir.kr/g5_skin/56803
를 참고해서 해결하였습니다.
감사합니다.

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

2년 전

질문의 코드가 안되는이유는

loop변수가 for($i=0; $i<~~~~)처럼 $i인데

for문내에서 다시 for ($i=0; $i<=count~~~)로 loop변수를 $i로 지정 해버렸기 때문입니다

$j 처럼 버꾸면 됩니다

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

m
masahide
2년 전
아... 이렇게 하면 해결이 되네요.
친절하신 답변 감사합니다.

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

2년 전

아니면 혹시 게시판 설정에서 '목록에서 파일사용' 체크해보세요~

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

m
masahide
2년 전
친절하신 답변 감사합니다.
목록에서 파일사용 체크는 이미 되어 있는 상태입니다.

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

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

로그인