헐랭이님의 백과사전 소스 정보
헐랭이님의 백과사전 소스본문
<?
/*************************************************************************
* 키워드 관련 기능 시작
**************************************************************************/
$gboard_bo_1 = $board['bo_1'];
$date_board = explode(",",$gboard_bo_1);
$date_board_1 = $date_board[0];
$date_board_2 = $date_board[1];
$date_board_3 = $date_board[2];
$date_board_4 = $date_board[3];
$date_board_5 = $date_board[4];
$date_board_6 = $date_board[5];
$date_board_7 = $date_board[6];
$date_board_8 = $date_board[7];
$date_board_9 = $date_board[8];
$date_board_10 = $date_board[9];
if ($date_board_1 =="on"){
?>
<!-- 키워드기능 링크 스타일 -->
<style type="text/css">
a.dics_link:link, a.dics_link:active, a.dics_link:visited {
color:<?=$date_board_5?>;
text-decoration:none;
border-bottom:0px dashed;
}
a.dics_link:hover {
color:<?=$date_board_8?>;
text-decoration:none;
border-bottom:<?=$date_board_10?>px dashed;
}
</style>
<?
$dic_id =$date_board_2;
$bod_table_name =$g4['write_prefix'];
$gnudic_board ="".$bod_table_name."".$dic_id."";
$dic_result =mysql_query("select wr_subject, wr_id, wr_link1 from $gnudic_board");
if ($date_board_3 =="1"){
$i=0;
while($dic_data=mysql_fetch_array($dic_result)) {
$local_keyword[$i] = "/".trim($dic_data[0])."/i";
$local_link[$i] = "<a class='dics_link' href=\"javascript:win_comment('$board_skin_path/dic_view.php?bo_table=$dic_id&wr_id=".trim($dic_data[1])."');\" title='".trim($dic_data[0])." 사전보기'>".trim($dic_data[0])."</a>";
$i++;
}
$view[content] =preg_replace($local_keyword,$local_link,$view[content]);
}
else if ($date_board_3 =="2"){
$i=0;
while($dic_data=mysql_fetch_array($dic_result)) {
$local_keyword[$i] = "/".trim($dic_data[0])."/i";
$local_link[$i] = "<a class='dics_link' href='".trim($dic_data[2])."' title='".trim($dic_data[0])."(으)로 이동합니다' target='".$date_board_4."'>".trim($dic_data[0])."</a>";
$i++;
}
$view[content] =preg_replace($local_keyword,$local_link,$view[content]);
}
else if ($date_board_3 =="3"){
$i=0;
while($dic_data=mysql_fetch_array($dic_result)) {
$local_keyword[$i] = "/".trim($dic_data[0])."/i";
$local_link[$i] = "<a class='dics_link' href='".$g4[url]."/".$g4[bbs]."/board.php?bo_table=".$dic_id."&wr_id=".trim($dic_data[1])."' title='".trim($dic_data[0])."(으)로 이동합니다' target='".$date_board_4."'>".trim($dic_data[0])."</a>";
$i++;
}
$view[content] =preg_replace($local_keyword,$local_link,$view[content]);
}
else if($date_board_3 =="4"){
$i=0;
while($dic_data=mysql_fetch_array($dic_result)) {
$local_keyword[$i] = "/".trim($dic_data[0])."/i";
$local_link[$i] = "<a class='dicm_link' href='".$g4[url]."/".$g4[bbs]."/search.php?srows=&gr_id=&sfl=wr_subject%7C%7Cwr_content&stx=".trim($dic_data[0])."' title='".trim($dic_data[0])."(으)로 사이트내에서 검색을 합니다' target='".$date_board_4."'>".trim($dic_data[0])."</a>";
$i++;
}
$view[content] =preg_replace($local_keyword,$local_link,$view[content]);
}
else if($date_board_3 =="5"){
$view_wr_1 = get_text($view[wr_1]);
$view_wrm_1 = explode(",",$view_wr_1);
for ($i=0; $i<count($view_wrm_1); $i++) {
$view[content]= str_replace("$view_wrm_1[$i]", "<a class='dicm_link' href='".$g4[url]."/".$g4[bbs]."/search.php?srows=&gr_id=&sfl=wr_subject%7C%7Cwr_content&stx={$view_wrm_1[$i]}' title='".$view_wrm_1[$i]." (으)로 사이트내에서 검색을 합니다' target='".$date_board_4."'>$view_wrm_1[$i]</a>", $view[content]);
}
}
else if($date_board_3 =="6"){
$view_link_1 =$view[wr_link1];
if ($view_link_1){
$view_link_c =$view_link_1;
}else {
$view_link_c ="{$g4[bbs_path]}/board.php?bo_table={$bo_table}";
}
$write_wr_1 = get_text($view[wr_1]);
$write_wrm_1 = explode(",",$write_wr_1);
for ($i=0; $i<count($write_wrm_1); $i++) {
$view[content]= str_replace("$write_wrm_1[$i]", "<a class='dicm_link' href='".$view_link_c."' title='".$write_wrm_1[$i]."(으)로 이동합니다' target='".$date_board_4."'>$write_wrm_1[$i]</a>", $view[content]);
}
}
}
/*************************************************************************
* 키워드 관련 기능 끝
**************************************************************************/
?>
여기 보시면 헐랭이님의 백과사전 소스 인데요.
특정 단어에 대해 링크를 걸어주는 기능인데, 만약 글 본문에 축구 라는 단어에 링크를 걸게 된다면, 축구라는 단어에 계속 걸리게 되는데, 10개든 100개든 처음 나오는 한개에만 걸수는 없을까요?
/*************************************************************************
* 키워드 관련 기능 시작
**************************************************************************/
$gboard_bo_1 = $board['bo_1'];
$date_board = explode(",",$gboard_bo_1);
$date_board_1 = $date_board[0];
$date_board_2 = $date_board[1];
$date_board_3 = $date_board[2];
$date_board_4 = $date_board[3];
$date_board_5 = $date_board[4];
$date_board_6 = $date_board[5];
$date_board_7 = $date_board[6];
$date_board_8 = $date_board[7];
$date_board_9 = $date_board[8];
$date_board_10 = $date_board[9];
if ($date_board_1 =="on"){
?>
<!-- 키워드기능 링크 스타일 -->
<style type="text/css">
a.dics_link:link, a.dics_link:active, a.dics_link:visited {
color:<?=$date_board_5?>;
text-decoration:none;
border-bottom:0px dashed;
}
a.dics_link:hover {
color:<?=$date_board_8?>;
text-decoration:none;
border-bottom:<?=$date_board_10?>px dashed;
}
</style>
<?
$dic_id =$date_board_2;
$bod_table_name =$g4['write_prefix'];
$gnudic_board ="".$bod_table_name."".$dic_id."";
$dic_result =mysql_query("select wr_subject, wr_id, wr_link1 from $gnudic_board");
if ($date_board_3 =="1"){
$i=0;
while($dic_data=mysql_fetch_array($dic_result)) {
$local_keyword[$i] = "/".trim($dic_data[0])."/i";
$local_link[$i] = "<a class='dics_link' href=\"javascript:win_comment('$board_skin_path/dic_view.php?bo_table=$dic_id&wr_id=".trim($dic_data[1])."');\" title='".trim($dic_data[0])." 사전보기'>".trim($dic_data[0])."</a>";
$i++;
}
$view[content] =preg_replace($local_keyword,$local_link,$view[content]);
}
else if ($date_board_3 =="2"){
$i=0;
while($dic_data=mysql_fetch_array($dic_result)) {
$local_keyword[$i] = "/".trim($dic_data[0])."/i";
$local_link[$i] = "<a class='dics_link' href='".trim($dic_data[2])."' title='".trim($dic_data[0])."(으)로 이동합니다' target='".$date_board_4."'>".trim($dic_data[0])."</a>";
$i++;
}
$view[content] =preg_replace($local_keyword,$local_link,$view[content]);
}
else if ($date_board_3 =="3"){
$i=0;
while($dic_data=mysql_fetch_array($dic_result)) {
$local_keyword[$i] = "/".trim($dic_data[0])."/i";
$local_link[$i] = "<a class='dics_link' href='".$g4[url]."/".$g4[bbs]."/board.php?bo_table=".$dic_id."&wr_id=".trim($dic_data[1])."' title='".trim($dic_data[0])."(으)로 이동합니다' target='".$date_board_4."'>".trim($dic_data[0])."</a>";
$i++;
}
$view[content] =preg_replace($local_keyword,$local_link,$view[content]);
}
else if($date_board_3 =="4"){
$i=0;
while($dic_data=mysql_fetch_array($dic_result)) {
$local_keyword[$i] = "/".trim($dic_data[0])."/i";
$local_link[$i] = "<a class='dicm_link' href='".$g4[url]."/".$g4[bbs]."/search.php?srows=&gr_id=&sfl=wr_subject%7C%7Cwr_content&stx=".trim($dic_data[0])."' title='".trim($dic_data[0])."(으)로 사이트내에서 검색을 합니다' target='".$date_board_4."'>".trim($dic_data[0])."</a>";
$i++;
}
$view[content] =preg_replace($local_keyword,$local_link,$view[content]);
}
else if($date_board_3 =="5"){
$view_wr_1 = get_text($view[wr_1]);
$view_wrm_1 = explode(",",$view_wr_1);
for ($i=0; $i<count($view_wrm_1); $i++) {
$view[content]= str_replace("$view_wrm_1[$i]", "<a class='dicm_link' href='".$g4[url]."/".$g4[bbs]."/search.php?srows=&gr_id=&sfl=wr_subject%7C%7Cwr_content&stx={$view_wrm_1[$i]}' title='".$view_wrm_1[$i]." (으)로 사이트내에서 검색을 합니다' target='".$date_board_4."'>$view_wrm_1[$i]</a>", $view[content]);
}
}
else if($date_board_3 =="6"){
$view_link_1 =$view[wr_link1];
if ($view_link_1){
$view_link_c =$view_link_1;
}else {
$view_link_c ="{$g4[bbs_path]}/board.php?bo_table={$bo_table}";
}
$write_wr_1 = get_text($view[wr_1]);
$write_wrm_1 = explode(",",$write_wr_1);
for ($i=0; $i<count($write_wrm_1); $i++) {
$view[content]= str_replace("$write_wrm_1[$i]", "<a class='dicm_link' href='".$view_link_c."' title='".$write_wrm_1[$i]."(으)로 이동합니다' target='".$date_board_4."'>$write_wrm_1[$i]</a>", $view[content]);
}
}
}
/*************************************************************************
* 키워드 관련 기능 끝
**************************************************************************/
?>
여기 보시면 헐랭이님의 백과사전 소스 인데요.
특정 단어에 대해 링크를 걸어주는 기능인데, 만약 글 본문에 축구 라는 단어에 링크를 걸게 된다면, 축구라는 단어에 계속 걸리게 되는데, 10개든 100개든 처음 나오는 한개에만 걸수는 없을까요?
댓글 전체
맨아래 부분 for 구문 관련 구문이 있군요
$write_wr_1 = get_text($view[wr_1]);
$write_wrm_1 = explode(",",$write_wr_1);
for ($i=0; $i<count($write_wrm_1); $i++) {
$view[content]= str_replace("$write_wrm_1[$i]", "<a class='dicm_link' href='".$view_link_c."' title='".$write_wrm_1[$i]."(으)로 이동합니다' target='".$date_board_4."'>$write_wrm_1[$i]</a>", $view[content]);
위와 같은 부분이 있습니다.
1.텍스트만 가져와서 $write_wr_1 에 넣고
2.explode로 $write_wrm_1 에 배열로 넣습니다. (0,1,2,3,4... )
3.for 를 0에서 $write_wrm_1 의 숫자만큼 돌고
4.for를 수행하는동안 $view[content]를 링크로 바꿔줍니다. (0 부터 카운트한 숫자보다 작을때까지)
위와같은 수행을 바꿔주시려면 4번만 수정하시면 되겠네요
for ($i=0; $i<count($write_wrm_1); $i++) {
$view[content]= str_replace("$write_wrm_1[$i]", "<a class='dicm_link' href='".$view_link_c."' title='".$write_wrm_1[$i]."(으)로 이동합니다' target='".$date_board_4."'>$write_wrm_1[$i]</a>", $view[content]);
}
위와같은 구문 대신 for 문을 빼고
$view[content]= str_replace("$write_wrm_1[0]", "<a class='dicm_link' href='".$view_link_c."' title='".$write_wrm_1[$i]."(으)로 이동합니다' target='".$date_board_4."'>$write_wrm_1[$i]</a>", $view[content]);
위와같이 하면 처음 나온 단어(explode 한 배열에 0 번째) 만 링크하는게 되겠군요
$write_wr_1 = get_text($view[wr_1]);
$write_wrm_1 = explode(",",$write_wr_1);
for ($i=0; $i<count($write_wrm_1); $i++) {
$view[content]= str_replace("$write_wrm_1[$i]", "<a class='dicm_link' href='".$view_link_c."' title='".$write_wrm_1[$i]."(으)로 이동합니다' target='".$date_board_4."'>$write_wrm_1[$i]</a>", $view[content]);
위와 같은 부분이 있습니다.
1.텍스트만 가져와서 $write_wr_1 에 넣고
2.explode로 $write_wrm_1 에 배열로 넣습니다. (0,1,2,3,4... )
3.for 를 0에서 $write_wrm_1 의 숫자만큼 돌고
4.for를 수행하는동안 $view[content]를 링크로 바꿔줍니다. (0 부터 카운트한 숫자보다 작을때까지)
위와같은 수행을 바꿔주시려면 4번만 수정하시면 되겠네요
for ($i=0; $i<count($write_wrm_1); $i++) {
$view[content]= str_replace("$write_wrm_1[$i]", "<a class='dicm_link' href='".$view_link_c."' title='".$write_wrm_1[$i]."(으)로 이동합니다' target='".$date_board_4."'>$write_wrm_1[$i]</a>", $view[content]);
}
위와같은 구문 대신 for 문을 빼고
$view[content]= str_replace("$write_wrm_1[0]", "<a class='dicm_link' href='".$view_link_c."' title='".$write_wrm_1[$i]."(으)로 이동합니다' target='".$date_board_4."'>$write_wrm_1[$i]</a>", $view[content]);
위와같이 하면 처음 나온 단어(explode 한 배열에 0 번째) 만 링크하는게 되겠군요