syntax error 에 대한 조언 부탁드립니다. 채택완료
곤주
1년 전
조회 11,917
랜덤하게 게시판이나 php 페이지를 불러오는 코드를 적용해 보고 있습니다.
(팁자료실에 있는 미니미a님이 올려주신 자료를 참고했습니다)
아래 코드에서 5번째 줄인 $hardcoded_exclusions = ['']; 에서 syntax 에러가 발생합니다.
예전에 syntax error를 겪어본 경험을 떠올려 보면,
아마도 php 버전에서 문제가 있지 않을까 싶은데... (php 버전이 낮습니다)
이 부분을 어떻게 수정해야 버전과 관련된 에러를 잡을 수 있을지 조언 부탁드립니다.
</p>
<p><?php
include_once("_common.php"); // 개별 페이지 접근을 위해 추가
$exclude_clause = '';
// $hardcoded_exclusions = ['notice', 'free'];
$hardcoded_exclusions = [''];
if (!empty($exclude_boards)) {
$exclude_boards = array_merge($exclude_boards, $hardcoded_exclusions);
} else {
$exclude_boards = $hardcoded_exclusions;
}
$exclude_boards_string = "'" . implode("', '", $exclude_boards) . "'";
$exclude_clause = " WHERE `bo_table` NOT IN ({$exclude_boards_string})";
// 제외할 게시판을 제외한 모든 게시판 정보를 가져옵니다.
$sql = "SELECT * FROM `g5_board`" . $exclude_clause;
$result = sql_query($sql); // 쿼리 실행
$all_boards_info = []; // 모든 게시판 정보를 저장할 배열
while ($board = sql_fetch_array($result)) {
$bo_table = $board['bo_table']; // 게시판 테이블명을 가져옵니다.
$bo_subject = $board['bo_subject']; // 게시판 제목을 가져옵니다.
$all_boards_info[] = array(
'bo_subject' => $bo_subject,
'bo_table' => $bo_table,
'type' => 'board'
);
}</p>
<p> // 일반 페이지 추가 (path 에 주소 / title 에 페이지 이름(화면상에 보여질))</p>
<p> $additional_pages = [
['path' => 'test1/index.php', 'title' => 'Test Page 1'],
['path' => 'test3/test.php', 'title' => 'Test Page 3']
];</p>
<p> foreach ($additional_pages as $page) {
$all_boards_info[] = array(
'bo_subject' => $page['title'],
'bo_table' => $page['path'],
'type' => 'page'
);
}</p>
<p> if (!empty($all_boards_info)) {
$random_key = array_rand($all_boards_info);
$random_board = $all_boards_info[$random_key];
if ($random_board['type'] === 'board') {
$redirect_url = "/bbs/board.php?bo_table=" . $random_board['bo_table'];
} else {
$redirect_url = "/" . $random_board['bo_table'];
}
// 더 빠르게 이동하려면 3000을 1000으로 변경시 1초가 됩니다 1000 당 1초
echo "<script>setTimeout(function() { window.location.href = '{$redirect_url}'; }, 3000);</script>";
echo $random_board['bo_subject'] . " (" . $random_board['bo_table'] . ") 으로 3초 후 이동합니다.
";
}</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
답변에 대한 댓글 1개
�
곤주
1년 전
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 2개
�
곤주
1년 전
답변 감사드립니다.
그누5 Q&A에서 답변 중 [ ] 는 php5.4 이상에서만 사용 가능하다는 답변을 보고
()로 수정했었습니다.
수정하니까... 이 부분은 넘어가는데,
위와 같이 수정한 이후에는
17번째 줄 $all_boards_info = []; 에서 syntax 에러가 발생하여
이 부분도 ()로 수정하였으나, 여기서는 오류 해결이 되지 않았습니다.
그래서 ()로 수정하는 것은 해결 방안이 아니라고 판단했는데,
알려주신 링크로 들어가서 보니까 맞는 것 같네요.
php 버전이 낮으니까 힘드네요 ㅜㅠ
혹시 $all_boards_info = []; 부분에서는 ()로 수정해도 syntax 에러가 발생하는데
이 부분은 왜 그런지 여쭈어봐도 될까요.
그누5 Q&A에서 답변 중 [ ] 는 php5.4 이상에서만 사용 가능하다는 답변을 보고
()로 수정했었습니다.
수정하니까... 이 부분은 넘어가는데,
위와 같이 수정한 이후에는
17번째 줄 $all_boards_info = []; 에서 syntax 에러가 발생하여
이 부분도 ()로 수정하였으나, 여기서는 오류 해결이 되지 않았습니다.
그래서 ()로 수정하는 것은 해결 방안이 아니라고 판단했는데,
알려주신 링크로 들어가서 보니까 맞는 것 같네요.
php 버전이 낮으니까 힘드네요 ㅜㅠ
혹시 $all_boards_info = []; 부분에서는 ()로 수정해도 syntax 에러가 발생하는데
이 부분은 왜 그런지 여쭈어봐도 될까요.
�
곤주
1년 전
$all_boards_info = [];을 $all_boards_info = (); 이렇게 수정하면,
syntax error, unexpected ')' 이렇게 뜨네요.
syntax error, unexpected ')' 이렇게 뜨네요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
chat gpt로 모든 코드 복사해서 넣고
php 버전 낮아도 적용되도록 수정해 달라고 하니까,
말씀하신 것처럼 수정해 주네요.
그렇게 적용하니까 작동이 됩니다;;;