file_get_contents 질문드립니다.

file_get_contents 질문드립니다.

QA

file_get_contents 질문드립니다.

본문

안녕하세요 다름이 아니라 제가 관리하는 홈페이지가 다섯개 정도라거 통합 관리 홈페이지를 만들었습니다.

http://infopang.com/test.php?site=&datefrom=2013-12-11&dateto=2013-12-19

여기는 관리하는 홈페이지중 A 홈페이지 인데요..(방문자수를 나타냅니다)

여기 페이지를
통합 관리하는 홈페이지에 file_get_contents 을 써서 사용하고 있습니다. 문제는 통합관리 페이지에서 날짜를 지정해서 A홈페이지의 과거 데이터를 나오게 하고싶은 데 어떻게 해야할지 고민이라서 질문드립니다.
<?
$url1="http://infopang.com/test.php";
ini_set("allow_url_fopen", 2);
$text = file_get_contents($url1);
echo $text ;
?>



----------------------------------------------------------------------------------------------------
이소스는 A홈페이지 방문자수 나오는 소스입니다,


<?
include_once("./_common.php");
$g4[title]="<a href = 'http://infopang.com/' target='_blank'>infopang.com</a>";

// 날짜 설정
if(!$datefrom) $datefrom = date("Y-m-d", strtotime("0 days ago"));
if(!$dateto) $dateto = $g4[time_ymd];
// 주사 지랄 방지
$datefrom = substr($datefrom, 0, 10);
$dateto = substr($dateto, 0, 10);
$site = substr($site, 0, 10);
$site_ori = $site;
// 검색사이트들
$site_arr = array("Yahoo", "Bing", "Nate", "Google", "Daum", "Naver");
$surl_arr = array("Yahoo" => "%search.yahoo.com%", "Bing" => "http://www.bing.com%", "Nate" => "%nate.com%",  "Google" => "http://www.google.%", "Daum" => "%search.daum.net%","Naver" => "%search.naver.com%");
$svar_arr = array("Yahoo" => "p","Bing" => "q","Nate" => "q", "Google" => "q", "Daum" => "q", "Naver" => "query");
?>
 
 
<form method="get" action="<?=$_SERVER[PHP_SELF]?>" target="_self">
 <input type="hidden" name="site" value="<?=$site_ori?>" />
 시작 : <input type="text" name="datefrom" value="<?=$datefrom?>" size="10" /> 
 ~ 끝 : <input type="text" name="dateto" value="<?=$dateto?>" size="10" />
 <input type="submit" value="검색" />
</form>
 
<?
// vi_referer에서 사이트 찾고, vi_date로 범위 정하기, 정렬은 vi_id 역순 (속도 개선 필요)
if(in_array($site_ori, $site_arr)) {
 $where1 = "vi_referer LIKE '{$surl_arr[$site_ori]}' ";
}
else { // 5개 사이트 모두 포함
 $where1 = " ( ";
 foreach($surl_arr as $site => $surl) {
  $where1 .= " vi_referer LIKE '$surl' OR ";
 }
 $where1 .= " 0 )";
}
$query = sql_query("select * from `$g4[visit_table]` where $where1 AND vi_date>='$datefrom' AND vi_date<='$dateto' order by vi_id desc");
?>
<table id="m3tbl" border="0" width="100%">
 
<?
$cnt = 0;
$cnt2 = array();
while($row = sql_fetch_array($query)) {
 // 어느 사이트인지 찾기
 foreach($surl_arr as $site => $surl) {
  if(strstr($row[vi_referer], str_replace("%", "", $surl))) {
   $engine = $site;
   break;
  }
 }
 // 검색문자열 찾기
 $regex = "/(\?|&){$svar_arr[$engine]}\=([^&]*)/i";
 preg_match($regex, $row[vi_referer], $matches);
 $querystr = $matches[2];
 // 보통 검색어 사이를 +로 넘긴다
 $querystr = str_replace("+", " ", $querystr);
 // %ab 이런 식으로 된 걸 바꿔주기
 $querystr = urldecode($querystr);
 // 네이버는 unicode로 된 경우도 있어서
 if($engine=="Naver") $querystr = utf8_urldecode($querystr);
 // 캐릭터셋이 UTF-8인 경우는 EUC-KR로 고치기 (UTF-8 유저는 EUC-KR과 UTF-8을 서로 바꿔주면 될 듯)
 $charset = mb_detect_encoding($querystr, "ASCII, UTF-8, EUC-KR");
 if($charset=="UTF-8") $querystr = iconv("UTF-8", "EUC-KR", $querystr);
 // 자잘한 처리들
 $querystr = trim($querystr);
 $querystr = htmlspecialchars($querystr);
 // 가끔 빈 것들도 있다 -_-
 if(!strlen($querystr)) continue;
 // 에코
 echo "";
 echo "";
 echo "";
 // 카운트용 변수
 $cnt++;
 $cnt2[$engine]++;
}
ksort($cnt2);
// 베짱이님 제공 함수
function utf8_urldecode($str, $chr_set='CP949') {
    $callback_function = create_function('$matches, $chr_set="'.$chr_set.'"', 'return iconv("UTF-16BE", $chr_set, pack("n*", hexdec($matches[1])));');
    return rawurldecode(preg_replace_callback('/%u([[:alnum:]]{4})/', $callback_function, $str));
}
?>
</table>
<table align="center" border="1" width="1000" bordercolor="#B2CCFF"> 
     <tr>
   <td align="center"  width="50" >
   1.
    </td>
       <td align="center"  width="100" >
   비고
    </td>
     <td align="center" width="200">
   <?=$g4[title]?>
     </td>
        <td align="center" width="350">
<? if(!$site_ori) { // 모든 사이트의 경우 비율 분석
 foreach($cnt2 as $engine => $count) {
  echo "$engine : $count 명  ";
 }
}?>
              </td>
                 <td align="center" width="150">
                   <?=$cnt?> 
                 </td>
     <td align="center" width="150">
                     비고
                 </td> 
 </tr>   
  </table>

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 123,478 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT