<?php
/**
* @description : 원격 파일 체크
* @param : url (http://domain.com/file.gif)
*/
function remote_file_exist($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
// don't download content
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(curl_exec($ch)!==FALSE)
{
return TRUE;
}
else
{
return FALSE;
}
}
// or
function url_exists($url)
{
if(@file_get_contents($url,0,NULL,0,1))
{
return 1;
}
else
{
return 0;
}
}
?>
예제)
<?php
if( remote_file_exist('http://xespresso.net/filies/text.txt') == true )
{
echo '파일이 존재 합니다.';
}
else
{
echo '파일이 존재하지 않습니다.';
}
?>
원격 이미지 파일 존재여부 체크
<?php
$external_link = 'http://www.xespresso.com/example.jpg';
if (@GetImageSize($external_link)) {
echo "image exists";
} else {
echo "image does not exist";
}
?>
URL 존재 여부 체크
<?php
function url_exists($url)
{
if(strstr($url, "http://")) $url = str_replace("http://", "", $url);
$fp = @fsockopen($url, 80);
if($fp === false) return false;
return true;
}
// or
function url_exists($url)
{
if ((strpos($url, "http")) === false) $url = "http://" . $url;
if (is_array(@get_headers($url)))
return true;
else
return false;
}
// or
function is_valid_url($url)
{
$url = @parse_url($url);
if (!$url)
{
return false;
}
$url = array_map('trim', $url);
$url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port'];
$path = (isset($url['path'])) ? $url['path'] : '';
if ($path == '')
{
$path = '/';
}
$path .= (isset($url['query'])) ? "?$url[query]" : '';
if (isset($url['host']) AND $url['host'] != gethostbyname($url['host']))
{
if (PHP_VERSION >= 5)
{
$headers = get_headers("$url[scheme]://$url[host]:$url[port]$path");
}
else
{
$fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30);
if (!$fp)
{
return false;
}
fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n");
$headers = fread($fp, 4096);
fclose($fp);
}
$headers = (is_array($headers)) ? implode("\n", $headers) : $headers;
return (bool)preg_match('#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers);
}
return false;
}
?>
메일 존재 여부 체크
<?php
if(!function_exists('checkdnsrr'))
function checkdnsrr($hostName, $recType = '')
{
if(!empty($hostName)) {
if( $recType == '' ) $recType = "MX";
exec("nslookup -type=$recType $hostName", $result);
// check each line to find the one that starts with the host
// name. If it exists then the function succeeded.
foreach ($result as $line) {
if(eregi("^$hostName",$line)) {
return true;
}
}
// otherwise there was no mail handler for the domain
return false;
}
return false;
}
function email_exist($email) {
list($userid, $domain) = split("@", $email);
if (checkdnsrr($domain, "MX")) { return true;} else { return false;}
}
// or
function check_email($email)
{
$email_error = false;
$Email = htmlspecialchars(stripslashes(strip_tags(trim($email)))); //parse unnecessary characters to prevent exploits
if ($Email == "") { email_error = true; }
elseif (!eregi("^([a-zA-Z0-9._-])+@([a-zA-Z0-9._-])+\.([a-zA-Z0-9._-])([a-zA-Z0-9._-])+", $Email)) { email_error = true; }
else {
list($Email, $domain) = split("@", $Email, 2);
if (! checkdnsrr($domain, "MX")) { email_error = true; }
else {
$array = array($Email, $domain);
$Email = implode("@", $array);
}
}
if (email_error) { return false; } else{return true;}
}
// or
function check_email($email)
{
$email_error = false;
$Email = htmlspecialchars(stripslashes(strip_tags(trim($email)))); //parse unnecessary characters to prevent exploits
if ($Email == "") { email_error = true; }
elseif (!eregi("^([a-zA-Z0-9._-])+@([a-zA-Z0-9._-])+\.([a-zA-Z0-9._-])([a-zA-Z0-9._-])+", $Email)) { email_error = true; }
else {
list($Email, $domain) = split("@", $Email, 2);
if (! checkdnsrr($domain, "MX")) { email_error = true; }
else {
$array = array($Email, $domain);
$Email = implode("@", $array);
}
}
if (email_error) { return false; } else{return true;}
}
?>
'PHP∵SCRIPT' 카테고리의 다른 글
php로 작성한 간단 RSS2.0 리더 (0) | 2014.03.31 |
---|---|
PHP로 작동하는 RSS 읽는 함수 (0) | 2014.03.30 |
태어난 요일 계산하기 (특정일의 요일 계산) (0) | 2014.03.28 |
zend encode 를 사용하지 않고 PHP 소스 안보이게 하는 방법 ? (0) | 2014.03.28 |
PHP에서 특수문자 없애는 정규표현식 (0) | 2014.03.25 |
비교연산과 조건문... (0) | 2014.03.25 |
반복실행문 (0) | 2014.03.25 |
PHP 난수를 이용한 쿠폰번호 생성하기 (0) | 2014.03.23 |
댓글