while문으로 읽어들인 폴더의 정렬 방법 질문입니다. 정보
while문으로 읽어들인 폴더의 정렬 방법 질문입니다.본문
폴더 목록을 가져와서 뿌려주는 코드 일부입니다.
while문에서 읽어들인 폴더의 정렬이 뒤죽박죽 입니다.
$skin_dir = $g4['path'] . "/skin/board";
$d = dir($skin_dir);
if (isset($board['bo_table']) && is_dir($skin_dir)) {
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
$style = "";
if ($bs == $entry)//해당 스킨 표시
$style = " style='font-weight:bold; color:#AA2727;' ";
$skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
$skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
}
}
}
$d->close();
echo $skin_link;//스킨목록 <-- 이 목록이 뒤죽박죽이네요.
아마 업로드 시간대별로 소트되는듯 한데 이걸 폴더이름으로 정렬하고자 합니다.
조언 부탁드립니다.
while문에서 읽어들인 폴더의 정렬이 뒤죽박죽 입니다.
$skin_dir = $g4['path'] . "/skin/board";
$d = dir($skin_dir);
if (isset($board['bo_table']) && is_dir($skin_dir)) {
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
$style = "";
if ($bs == $entry)//해당 스킨 표시
$style = " style='font-weight:bold; color:#AA2727;' ";
$skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
$skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
}
}
}
$d->close();
echo $skin_link;//스킨목록 <-- 이 목록이 뒤죽박죽이네요.
아마 업로드 시간대별로 소트되는듯 한데 이걸 폴더이름으로 정렬하고자 합니다.
조언 부탁드립니다.
댓글 전체
위 함수를 이용하여 select option 으로 표현할때입니다.
<select name="wp">
<?
$skin_row = "";
$arr = skin_dir("");
for ($k=0; $k<count($arr); $k++)
{
$option = $arr[$k];
if (strlen($option) > 10)
$option = substr($arr[$k], 0, 18) . "…";
echo '<option value="';
echo $arr[$k];
echo '"';
if ($arr[$k] == $data[$m_ta_skin])
echo 'selected';
echo '>';
echo $option;
echo "\n";
}
?>
</select>
상기 skin_dir($skin,$len='') 함수를 이용하면.. 각각의 게시판 스킨경로를 각각의 서로다른 폴더로 적용할수 있으며 한 테이블에서 파생되는 각각의 서로다른 스킨적용도 가능하더라고요.
또한.. 해당 select 를 선택한경우.
if ($arr[$k] == $data[$m_ta_skin])
echo 'selected';
적용이 됩니다.
<select name="wp">
<?
$skin_row = "";
$arr = skin_dir("");
for ($k=0; $k<count($arr); $k++)
{
$option = $arr[$k];
if (strlen($option) > 10)
$option = substr($arr[$k], 0, 18) . "…";
echo '<option value="';
echo $arr[$k];
echo '"';
if ($arr[$k] == $data[$m_ta_skin])
echo 'selected';
echo '>';
echo $option;
echo "\n";
}
?>
</select>
상기 skin_dir($skin,$len='') 함수를 이용하면.. 각각의 게시판 스킨경로를 각각의 서로다른 폴더로 적용할수 있으며 한 테이블에서 파생되는 각각의 서로다른 스킨적용도 가능하더라고요.
또한.. 해당 select 를 선택한경우.
if ($arr[$k] == $data[$m_ta_skin])
echo 'selected';
적용이 됩니다.
답변 감사합니다.^^
잘 스크랩해두었다가 유용하게 쓰겠습니다.
잘 스크랩해두었다가 유용하게 쓰겠습니다.
^^. 네... 즐거운 하루 되세요~
디렉터리 리스트를 배열에 일단 넣고 소팅한 다음에 위
$skin_link를 만드는 while를 돌려야겠네요.
$skin_link를 만드는 while를 돌려야겠네요.
while (false !== ($entry = $d->read())) {
$f_list[]= $entry;
}
sort( $f_list);
foreach( $f_list as $entry) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
$style = "";
if ($bs == $entry)//해당 스킨 표시
$style = " style='font-weight:bold; color:#AA2727;' ";
$skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
$skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
}
}
$f_list[]= $entry;
}
sort( $f_list);
foreach( $f_list as $entry) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
$style = "";
if ($bs == $entry)//해당 스킨 표시
$style = " style='font-weight:bold; color:#AA2727;' ";
$skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
$skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
}
}
감사합니다.^^
예전에 rolo님께서 손봐주신 코드입니다.
테스트 페이지에 붙여서 스킨작업시 활용하고 있습니다.
<?
//링크로 스킨을 바꾸어 본다
//http://www.sir.co.kr/bbs/tb.php/g4_qa/19444 kail, rolo님
if ($is_admin == "super" || $is_auth) {
if ($board['bo_table']) {
if($_GET['bs']) { //bs 세션 기록
$bs = $_GET['bs'];
session_register($bo_table);
$_SESSION[ $bo_table]= $bs;
}
else if($_SESSION[ $bo_table]) { //세션설정 스킨
$bs = $_SESSION[ $bo_table];
}
else { //환경설정 스킨
$bs = $board['bo_skin'];
}
$board_skin_path = "$g4[path]/skin/board/$bs"; //common.php 에서 정의된 스킨 설정을 교체
//스킨 디렉토리 목록 추출
$skin_dir = $g4['path'] . "/skin/board";
$d = dir($skin_dir);
if (isset($board['bo_table']) && is_dir($skin_dir)) {
while (false !== ($entry = $d->read())) {
$f_list[]= $entry;
}
sort( $f_list);
foreach( $f_list as $entry) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
$style = "";
if ($bs == $entry)//해당 스킨 표시
$style = " style='font-weight:bold; color:#AA2727;' ";
$skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
$skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
}
}
}
$d->close();
?><div style='margin:0;width:150px;height:400px;overflow:auto;'><span style="color:red;"><a href="<?=preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI])?>&bs=<?=$board['bo_skin']?>" style="color:#AA2727;" title='관리자 설정으로 복원'>설정복원 - <?=$board['bo_skin']?></a></span><br><span style="color:blue;" title='현재 적용된 스킨'>현재스킨 - <?=$bs?></span><?
echo $skin_link;//스킨목록
?></div><?
}
}
?>
예전에 rolo님께서 손봐주신 코드입니다.
테스트 페이지에 붙여서 스킨작업시 활용하고 있습니다.
<?
//링크로 스킨을 바꾸어 본다
//http://www.sir.co.kr/bbs/tb.php/g4_qa/19444 kail, rolo님
if ($is_admin == "super" || $is_auth) {
if ($board['bo_table']) {
if($_GET['bs']) { //bs 세션 기록
$bs = $_GET['bs'];
session_register($bo_table);
$_SESSION[ $bo_table]= $bs;
}
else if($_SESSION[ $bo_table]) { //세션설정 스킨
$bs = $_SESSION[ $bo_table];
}
else { //환경설정 스킨
$bs = $board['bo_skin'];
}
$board_skin_path = "$g4[path]/skin/board/$bs"; //common.php 에서 정의된 스킨 설정을 교체
//스킨 디렉토리 목록 추출
$skin_dir = $g4['path'] . "/skin/board";
$d = dir($skin_dir);
if (isset($board['bo_table']) && is_dir($skin_dir)) {
while (false !== ($entry = $d->read())) {
$f_list[]= $entry;
}
sort( $f_list);
foreach( $f_list as $entry) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
$style = "";
if ($bs == $entry)//해당 스킨 표시
$style = " style='font-weight:bold; color:#AA2727;' ";
$skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
$skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
}
}
}
$d->close();
?><div style='margin:0;width:150px;height:400px;overflow:auto;'><span style="color:red;"><a href="<?=preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI])?>&bs=<?=$board['bo_skin']?>" style="color:#AA2727;" title='관리자 설정으로 복원'>설정복원 - <?=$board['bo_skin']?></a></span><br><span style="color:blue;" title='현재 적용된 스킨'>현재스킨 - <?=$bs?></span><?
echo $skin_link;//스킨목록
?></div><?
}
}
?>
죄송합니다. 기억이 없습니다. 증거까지.....
저 정치인 아닙니다. ^^
저 정치인 아닙니다. ^^