파일 첨부한 동영상을 리스트에서 불러오고 싶습니다.
본문
안녕하세요.
파일로 첨부한 동영상을 본문에서는
<?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
에러 그대로 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);
아니면 혹시 게시판 설정에서 '목록에서 파일사용' 체크해보세요~
질문의 코드가 안되는이유는
loop변수가 for($i=0; $i<~~~~)처럼 $i인데
for문내에서 다시 for ($i=0; $i<=count~~~)로 loop변수를 $i로 지정 해버렸기 때문입니다
$j 처럼 버꾸면 됩니다