2007. 9. 14. 10:14

input에서 영문,숫자,특수문자만 입력받으려 할경우

style="ime-mode:disabled"
2007. 9. 14. 09:30

XML-RPC 관련문서 링크

2007. 9. 12. 10:22

특정 문자열만 추출하는 함수


<?php
/**
 * 문자열중 특정 내용만 추출하는 함수
 * $contents 는 되도록이면 참조형으로 넘길것
 * USE_STATIC 문자열 추출후 그후에 나오는 문자를 또 추출하려 할때 위치를 기억함
 * USE_SKIP 추출할 문자열 이전에 동일 문자열이 있을경우 offset 을 특정문자열까지 건너뛸려고 할때 사용
 * USE_RESET _STATIC 모드로 사용중 처음부터 다시 문자열을 찾으려고 할경우 offset을 0으로 리셋
 * 옵션을 주지 않고 사용할경우 최초문자열만을 리턴
 *
 * @param text $contents
 * @param text $start_string
 * @param text $end_string
 * @param int $opt (USE_STATIC | USE_SKIP | USE_RESET)
 * @return mix(text/null)
 */
define('USE_STATIC',1);
define('USE_SKIP',2);
define('USE_RESET',4);
function parseString($contents, $start_string, $end_string, $opt = NULL) {
    if($opt & USE_STATIC) {
        static $pos = 0;
        
        if($opt & USE_RESET) {
            $pos = 0;
            return NULL;
        }
    }
    else {
        $pos = 0;
    }
    
    $spos = strpos($contents, $start_string, $pos);
    if($spos === FALSE) {
        return NULL;
    }
    $spos = $spos + strlen($start_string);
    $pos = $spos;

    if($opt & USE_SKIP) {
        return NULL;
    }
    
    $epos = strpos($contents, $end_string, $pos);
    if($epos === FALSE) {
        return NULL;
    }
    $pos = $epos;
    
    return substr($contents,$spos,$epos-$spos);
}

?>

2007. 9. 12. 10:15

웹파일(원격)을 로컬에 저장하는 함수


<?php
/**
 * 원격파일을 로컬에 저장
 *
 * @param text $url
 * @param text $savefile
 */
function getRemoteFile($url,$savefile) {
    $dirname = dirname($savefile);
    $url_info = parse_url($url);
    
    if(!is_dir($dirname)) {
        mkdir($dirname,0777);
    }
    
    $fp = fsockopen($url_info['host'], 80);
    if(!$fp) {
        return FALSE;
    }
    
    $fp1 = fopen($savefile,'w+');
    if(!$fp1) {
        return FALSE;
    }
    
    fputs($fp,"GET ".$url_info['path'].($url_info['query'] ? '?'.$url_info['query'] : '')." HTTP/1.0\r\n");
    fputs($fp,"Host: ".$url_info['host']."\r\n");
    fputs($fp,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n");
    fputs($fp,"Connection: close\r\n\r\n");
    
    while(trim($buf = fgets($fp,1024))) {}  //헤더부분 건너뜀

    while(!feof($fp)) {
        fwrite($fp1,fgets($fp,1024));
    }
    
    fclose($fp1);
    fclose($fp);
    
    return TRUE;
}
?>