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

사이트맵 생성하려고하는데요 채택완료

완전초보에여 1년 전 조회 1,910

PHP Warning:  Invalid argument supplied for foreach() in /opt/lampp/htdocs/m3googlesitemap.php on line 23

이렇게 오류가 뜨네요 ㅠㅠ 소스에 문제가있을까요

 

</p>

<p><?php

// m3 google sitemap ver 1.23 by mahler83 2009-11-16

// please give feedbacks to bomool.net

include_once("./_common.php");</p>

<p>$charset = $g5['charset'];

$url = "<a href="http://abc.com";" target="_blank" rel="noopener noreferrer">http://abc.com";</a> // G5 루트 경로</p>

<p>header("Content-type: text/xml;charset=\"UTF-8\"");

header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");</p>

<p>echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";

?>

<urlset xmlns="<a href="https://www.sitemaps.org/schemas/sitemap/0.9/">" target="_blank" rel="noopener noreferrer">https://www.sitemaps.org/schemas/sitemap/0.9/"></a>

<?php

$query = sql_query("select bo_table from `{$g5['board_table']}` where bo_read_level='1'");

while($temp = sql_fetch_array($query)) {

$bo_arr[] = $temp['bo_table'];

}</p>

<p>$i = 1;

foreach($bo_arr as $bo) {

// list of bo_table

echo "<url>\n";

echo "<loc>$url/bbs/board.php?bo_table=$bo</loc>\n";

$temp = sql_fetch("select wr_datetime from `{$g5['write_prefix']}{$bo}` order by wr_datetime DESC");

$lastmod = str_replace(" ", "T", substr($temp['wr_datetime'], 0, 30))."+00:00";</p>

<p>// if

if(!$lastmod || strlen($lastmod) < 25 || strcmp($lastmod, "+00:00")) $lastmod = "2014-10-10T00:00:00+00:00";</p>

<p>echo "<lastmod>$lastmod</lastmod>\n";

echo "<changefreq>daily</changefreq>\n";

echo "<priority>0.9</priority>\n";

echo "</url>\n";</p>

<p>$query = sql_query("select wr_id, wr_datetime from `{$g5['write_prefix']}{$bo}` where wr_is_comment='0' AND wr_option NOT LIKE '%secret%'");

while($row = sql_fetch_array($query)) {

// list of each article

echo "<url>";

echo "<loc>$url/bbs/board.php?bo_table=$bo&amp;wr_id={$row['wr_id']}</loc>";

$temp = sql_fetch("select wr_datetime from `{$g5['write_prefix']}{$bo}` where wr_parent='{$row['wr_id']}' order by wr_id DESC");

$lastmod = str_replace(" ", "T", substr($temp["wr_datetime"], 0, 30));

$lastmod = date('c', strtotime($lastmod));

if(!$lastmod) {

$temp = sql_fetch("select wr_datetime from `{$g5['write_prefix']}$bo` where wr_id='{$row['wr_id']}'");

$lastmod = str_replace(" ", "T", substr($temp["wr_datetime"], 0, 30));

$lastmod = date('c', strtotime($lastmod));

}

if(!$lastmod) $lastmod = $g5['time_ymd'];

echo "<lastmod>$lastmod</lastmod>";

echo "<changefreq>weekly</changefreq>";

echo "<priority>0.5</priority>";

echo "</url>\n";

}

$i++;

}

?>

</urlset>

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

답변 4개

채택된 답변
+20 포인트
세크티
1년 전

</p>

<pre>
<code><urlset xmlns="<a href="https://www.sitemaps.org/schemas/sitemap/0.9/">" target="_blank" rel="noopener noreferrer">https://www.sitemaps.org/schemas/sitemap/0.9/"></a>
<?php
$bo_arr = array(); // <-추가
$query = sql_query("select bo_table from `{$g5['board_table']}` where bo_read_level='1'");
while($temp = sql_fetch_array($query)) {
$bo_arr[] = $temp['bo_table'];
}
$i = 1;
foreach($bo_arr as $bo) {</code></pre>

<p>

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

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

for문 위에 

var_dump( $bo_arr );

exit;

 

이렇게 찍어서 배열에 무슨값이 들어있는지 확인해보세요~~

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

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

oneit
1년 전

https://www.xml-sitemaps.com/

온라인으로 무료로 만드는 방법도 있습니다.

생성된 후 코드 수정 하실 수도 있습니다.

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

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

플라이
1년 전

 

배열안에 공백이 든 변수가 존재 하지 않는지 확인해 보세요

 

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

답변에 대한 댓글 2개

완전초보에여
1년 전
너무초보라서 뭔질모르겠어요 ㅠㅠ;
플라이
1년 전
foreach($bo_arr as $bo)

여기에 $bo_arr 배열 변수를 확인해 보세요

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

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

로그인