묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
아이피를 이용해서 카운터를 하나 만들고 있는데 잘안되는 부분이 있어서...
2003.06.21 18:32
ip 를 이용해서 카운터? (아이피저장)를 하나 만들어보고 있는데요.
좀 막히는 부분이 있어서 질문 올립니다.
소스는 아래와 같습니다.
<?
$fp = fopen( "count.txt", "a+"); // 파일 열고
$contents = fread ($fp,300);
$array = explode("|",$contents);
if($REMOTE_ADDR !== $array[0] &&
$REMOTE_ADDR !== $array[1] &&
$REMOTE_ADDR !== $array[2] &&
$REMOTE_ADDR !== $array[3] &&
$REMOTE_ADDR !== $array[4] &&
$REMOTE_ADDR !== $array[5] )
fwrite ($fp, "$REMOTE_ADDR|"); //파일에다 아이피를 저장한다.
fclose($fp); // 파일을 닫습니다.
?>
이런식으로 하면 $array[] 에다가 1,2,3,4,5,6 계속 써주어야 되는데.
이 것을
for($i=1;$i<count($array);$i++)
{
}
를 이용해서 하려면 $array[$i] 뒤쪽의 &&부분을 어떻게 처리해야좋을지 막히네요.
부탁좀 드리겠습니다.
좀 막히는 부분이 있어서 질문 올립니다.
소스는 아래와 같습니다.
<?
$fp = fopen( "count.txt", "a+"); // 파일 열고
$contents = fread ($fp,300);
$array = explode("|",$contents);
if($REMOTE_ADDR !== $array[0] &&
$REMOTE_ADDR !== $array[1] &&
$REMOTE_ADDR !== $array[2] &&
$REMOTE_ADDR !== $array[3] &&
$REMOTE_ADDR !== $array[4] &&
$REMOTE_ADDR !== $array[5] )
fwrite ($fp, "$REMOTE_ADDR|"); //파일에다 아이피를 저장한다.
fclose($fp); // 파일을 닫습니다.
?>
이런식으로 하면 $array[] 에다가 1,2,3,4,5,6 계속 써주어야 되는데.
이 것을
for($i=1;$i<count($array);$i++)
{
}
를 이용해서 하려면 $array[$i] 뒤쪽의 &&부분을 어떻게 처리해야좋을지 막히네요.
부탁좀 드리겠습니다.
댓글 2
-
오한호
2003.06.24 15:24
-
특급잠수부
2003.06.23 09:43
<?
$file_path = "count.txt";
$fp = fopen($file_path, "a+"); // 파일 열고
$contents = fread ($fp, filesize($file_path));
$ip_arr = explode("|",$contents);
$ip_len = sizeof($ip_arr);
$duple_flag = 0;
for ($i = 0;$i < $ip_len;$i++)
{
if ($ip_arr[$i] == $REMOTE_ADDR)
{
$duple_flag++;
break;
}
}
if ($duple_flag === 0)
{
fwrite($fp, "$REMOTE_ADDR|");
}
fclose($fp);
?>
이렇게 한번 해보세요
제가 이제서야 보았네요.
사실 php school 에서 답변을 받아서 안봤었는데
님께서 답변주셨네요.
그곳에서 어떤분이 in_array()을 사용해보라고 조언을 주시길래
if (!in_array("$REMOTE_ADDR",$array))
{ fwrite ($fp, "$REMOTE_ADDR|"); }
else
{ fclose($fp); }
이렇게 해봤더니 되긴 되더라구요.
님께서 주신 답변은 제가 조금 연구해봐야 이해를 할 것 같지만
제가 원하던 것도 for문을 이용하는 적절한 구현법을 배우고 싶었던 터이라
잘 연구해보겠습니다.
감사합니다.^^