묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[PHP]특정웹사이트에 접속되면 일정한 값을 반환하는 함수 없나요?
2004.05.31 20:54
PHP에서...
특정웹사이트에 접속되었으면 true등의 값을 반환하고 접속실패하면 false등의 값을 반환하는 함수 없나요? 질문을 해도해도 답변이 올라오지 않습니다.....
답변을 해주시면 정말 감사한 맘으로 그분을 축복하겠습니다...
그럼 좋은 하루 되세요....
특정웹사이트에 접속되었으면 true등의 값을 반환하고 접속실패하면 false등의 값을 반환하는 함수 없나요? 질문을 해도해도 답변이 올라오지 않습니다.....
답변을 해주시면 정말 감사한 맘으로 그분을 축복하겠습니다...
그럼 좋은 하루 되세요....
근본적으로는 fsockopen()함수로 해당 사이트(페이지 단위까지)를 열어서 리턴되는 메세지로 체크하면 되겠죠.
참고 : http://kr.php.net/manual/kr/function.fsockopen.php
그리고 fopen()함수로도 url을 열수가 있습니다.
참고 : http://kr.php.net/manual/kr/function.fopen.php
매뉴얼에 어떻게 url을 열고 그 내용을 읽는지는 잘 나와있습니다.
일단 내용을 읽으시고 그 내용을 분석해보시면 금방 아실 수 있을겁니다.
직접적으로 trus/false를 반환하지는 않으니 직접 해보셔야 할듯..
참고로 아래는 제가 사용하는 함수입니다. 정확하지 않으니 분석해보셔야 할듯..
=============================================================================
function my_rfile_exists ($url) {
global $g_code;
/*
Return error codes:
1 = Invalid URL host
2 = Unable to connect to remote host
*/
if( !trim($url) ) return false;
if( is_array($url) ) return false;
$head = "";
$url_p = parse_url ($url);
if (isset ($url_p["host"]))
{ $host = $url_p["host"]; }
else
{ return 1; }
if (isset ($url_p["path"]))
{ $path = $url_p["path"]; }
else
{ $path = ""; }
$fp = fsockopen ($host, 80, $errno, $errstr, 20);
if (!$fp)
{ return 2; }
else
{
$parse = parse_url($url);
$host = $parse['host'];
fputs($fp, "HEAD ".$url." HTTP/1.1\r\n");
fputs($fp, "HOST: ".$host."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$headers = "";
while (!feof ($fp))
{ $headers .= fgets ($fp, 128); }
}
fclose ($fp);
$len = intval(trim(my_str_between($headers, "Length:", "Content")));
$arr_headers = explode("\n", $headers);
$return = false;
if (isset ($arr_headers[0]))
{ $return = strpos ($arr_headers[0], "404") === false; }
if( eregi("SS", $g_code) && $len<1000 ) $return = false;
if( eregi("302 Found", $headers) ) $return = false;
return $return;
}