최근 PHP를 연구하고 있는데 저장해 보세요. 출처: php 소스 코드 네트워크 - 오픈 소스 프로그램(오픈 소스) 내용: < function GetIP() { //IP 얻기 if ( $_SERVER["HTTP_X_FORWARDED_FOR"]) $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; else if ($_SERVER["HTTP_CLIENT_IP"]) $ip = $_SERVER["HTTP_CLIENT_IP"] ; else if ($_SERVER["REMOTE_ADDR"]) $ip = $_SERVER["REMOTE_ADDR"] else if (getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv( " HTTP_X_FORWARDED_FOR"); else if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP") else if (getenv("REMOTE_ADDR")) $ip = getenv ("REMOTE_ADDR"); else $ip = "Unknown"; return $ip; ?> 자세한 소스 참조: // /www.jb51.net/article/22199.htm function DateAdd($date, $int, $unit = "d") { //증가 시간(시, 분, 초를 늘리고 시간이 있을 때 추가하도록 개선할 수도 있음) $dateArr =Explode("-", $date) $value[$unit] = $int; 반환 날짜("Y-m-d", mktime(0,0,0, $dateArr[1] + $value['m'], $dateArr[2] + $value['d'], $ dateArr[0] + $value ['y'])); } function GetWeekDay($date) { //주어진 날짜의 요일 계산 $dateArr =explore(" -", $date); 반환 날짜("w", mktime(0,0,0,$dateArr[1],$dateArr[2],$dateArr[0])); } ?> 자세한 출처 참고 : http://www.jb51.net/article/22199.htm function check_date($date) { //여부 확인 날짜가 법적 날짜입니다 $dateArr =explore("-", $date) if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[ 2])) { return checkdate( $dateArr[1],$dateArr[2],$dateArr[0]) } return false } function check_time( $time) { //시간이 적법한 시간인지 확인 $timeArr =Explode(":", $time) if (is_numeric($timeArr[0]) && is_numeric($timeArr[1] ) && is_numeric($timeArr[2])) { if (($timeArr[0] >= 0 && $timeArr[0] <= 23) && ($timeArr[1] >= 0 && $timeArr[1] <= 59) && ($ timeArr[2] >= 0 && $timeArr[2] <= 59)) return true; else return false; 🎜>} return false } 자세한 소스 참조: http://www.jb51.net/article/22199.htm function DateDiff($date1, $date2, $unit = "") { //시간 비교 함수, 두 날짜 간의 차이를 초, 분, 시간 또는 일 단위로 반환합니다. switch ($unit) { case 's': $dividend = 1; case 'i': $dividend = 60; case 'h': $dividend = 3600; break; case 'd': $dividend = 86400; break; 기본값: $dividend = 86400 $time1 = strtotime($date1 ); date2); if ($time1 && $time2) return (float)($time1 - $time2) / $dividend return false; 자세한 출처 참고 : http://www.jb51.net/article/22199.htm 방법 1: header("위치: index.php") ; 방법 2: echo "window.location ="$PHP_SELF"; " 방법 3: echo " "; ?> 자세한 소스 참조: http://www.jb51.net/article/22199.htm PHP 리디렉션 다음과 같이 코드를 복사하세요: 방법 1: header("Location: index.php") 방법 2: echo "window.location ="$PHP_SELF" ;< ;/scrīpt>"; 방법 3: echo " "; ?> 방문자 브라우저 가져오기 코드는 다음과 같습니다. function browser_infor() { $browser="";$browserver=""; $Browsers = array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb") $Agent = $GLOBALS["HTTP_USER_AGENT" ]; ($i=0; $i<=7; $i++) { if (strpos($Agent,$Browsers[$i])) { $browser = $Browsers[$i]; $browserver =""; } } if (ereg("Mozilla",$Agent) && !ereg("MSIE",$Agent)) { $temp =explode("(", $Agent); $Part=$temp[0]; $temp =explode("/", $Part); $temp =explode(" ",$ browserver); $browserver=$temp[0]; $browserver =preg_replace("/([d.]+)/","1",$browserver); $browserver" ; $browser = "Netscape Navigator"; } if (ereg("Mozilla",$Agent) && ereg("Opera",$Agent)) { $temp =explode("(", $Agent); $Part=$temp[1]; $temp =explode(")", $Part); $temp =explode(" ",$browserver);$browserver=$temp[2]; $browserver =preg_replace("/([d.]+)/","1",$browserver); $browserver = " $browserver"; $browser = "Opera"; } if (ereg("Mozilla",$Agent) && ereg("MSIE",$Agent)) { $temp = 폭발("(", $Agent); $Part=$temp[1]; $temp = 폭발(";",$Part); $Part=$temp[1] ; $temp = 폭발(" ",$Part);$browserver=$temp[2]; $browserver =preg_replace("/([d.]+)/","1",$ browserver); $browserver = " $browserver"; $browser = "Internet Explorer"; } if ($browser!="") { $browseinfo = "$browser$browserver"; } else { $browseinfo = "알 수 없음"; } $browseinfo를 반환합니다. } //调사용방법$browser=browseinfo() ;直接返回结果 ?> 详细出处参考:http://www.jb51.net/article/22199.htm 获取访问者操work系统 复system代码 代码如下: 함수 osinfo() { $os=""; $Agent = $GLOBALS["HTTP_USER_AGENT"]; if (eregi('win',$Agent) && strpos($Agent, '95')) { $os="Windows 95"; } elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) { $os="Windows ME"; } elseif (eregi('win',$Agent) && ereg('98',$Agent)) { $os="Windows 98"; } elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) { $os="Windows 2000"; } elseif (eregi('win',$Agent) && eregi('nt',$Agent)) { $os="Windows NT"; } elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) { $os="Windows XP"; } elseif (eregi('win',$Agent) && ereg('32',$Agent)) { $os="Windows 32"; } elseif (eregi('linux',$Agent)) { $os="Linux"; } elseif (eregi('unix',$Agent)) { $os="Unix"; } elseif (eregi('sun',$Agent) && eregi('os',$Agent)) { $os="SunOS"; } elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) { $os="IBM OS/2"; } elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) { $os="Macintosh"; } elseif (eregi('PowerPC',$Agent)) { $os="PowerPC"; } elseif (eregi('AIX',$Agent)) { $os="AIX"; } elseif (eregi('HPUX',$Agent)) { $os="HPUX"; } elseif (eregi('NetBSD',$Agent)) { $os="NetBSD"; } elseif (eregi('BSD',$Agent)) { $os="BSD"; } elseif (ereg('OSF1',$Agent)) { $os="OSF1"; } elseif (ereg('IRIX',$Agent)) { $os="IRIX"; } elseif (eregi('FreeBSD',$Agent)) { $os="FreeBSD"; } if ($os=='') $os = "알 수 없음"; $os를 반환합니다. } //调사용방법$os=os_infor() ; ?> 详细出处参考:http://www.jb51.net/article/22199.htm 文件格式类 复system代码 代码如下: $mime_types = 배열( 'gif' => '이미지/gif', 'jpg' => '이미지/jpeg', 'jpeg' => '이미지/jpeg', 'jpe' => '이미지/jpeg', 'bmp' => '이미지/bmp', 'png' => '이미지/png', 'tif' => '이미지/tiff', 'tiff' => '이미지/tiff', 'pict' => 'image/x-pict', 'pic' => '이미지/x-pict', 'pct' => 'image/x-pict', 'tif' => '이미지/tiff', 'tiff' => '이미지/티파니', 'psd' => 'image/x-photoshop', 'swf' => 'application/x-shockwave-flash', 'js' => 'application/x-javascrīpt', 'pdf' => '응용프로그램/pdf', 'ps' => '애플리케이션/포스트스크립트', 'eps' => '애플리케이션/포스트스크립트', 'ai' => '애플리케이션/포스트스크립트', 'wmf' => 'application/x-msmetafile', 'css' => '텍스트/css', 'htm' => '텍스트/html', 'html' => 'text/html', 'txt' => '텍스트/일반', 'xml' => 'text/xml', 'wml' => 'text/wml', 'wbmp' => 'image/vnd.wap.wbmp', 'mid' => '오디오/미디', 'wav' => '오디오/wav', 'mp3' => '오디오/mpeg', 'mp2' => '오디오/mpeg', 'avi' => 'video/x-msvideo', 'mpeg' => '동영상/mpeg', 'mpg' => '동영상/mpeg', 'qt' => '동영상/퀵타임', 'mov' => '동영상/퀵타임', 'lha' => 'application/x-lha', 'lzh' => 'application/x-lha', 'z' => 'application/x-compress', 'gtar' => 'application/x-gtar', 'gz' => 'application/x-gzip', 'gzip' => 'application/x-gzip', 'tgz' => 'application/x-gzip', 'tar' => 'application/x-tar', 'bz2' => 'application/bzip2', 'zip' => 'application/zip', 'arj' => 'application/x-arj', 'rar' => 'application/x-rar-compressed', 'hqx' => 'application/mac-binhex40', '앉아' => 'application/x-stuffit', 'bin' => 'application/x-macbinary', 'uu' => 'text/x-uuencode', 'uue' => 'text/x-uuencode', 'latex'=> 'application/x-latex', 'ltx' => 'application/x-latex', 'tcl' => 'application/x-tcl', 'pgp' => 'application/pgp', 'asc' => '응용 프로그램/pgp', 'exe' => 'application/x-msdownload', 'doc' => 'application/msword', 'rtf' => 'application/rtf', 'xls' => 'application/vnd.ms-excel', 'ppt' => 'application/vnd.ms-powerpoint', 'mdb' => 'application/x-msaccess', 'wri' => 'application/x-mswrite', ); ?> 详细出处参考:http://www.jb51.net/article/22199.htm php生成excel文档 复system代码 代码如下: header("콘텐츠 유형:application/vnd.ms-excel"); header("콘텐츠 처리:파일 이름=test.xls"); echo "test1t"; echo "test2tn"; echo "test1t"; echo "test2tn"; echo "test1t"; echo "test2tn"; echo "test1t"; echo "test2tn"; echo "test1t"; echo "test2tn"; echo "test1t"; echo "test2tn"; //改动상应文件头就可以输출.doc .xls等文件格式了 ?> 자세한 출처 참조: http://www.jb51.net/article/22199.htm 시간 비교 문제 간단한 예를 들어보세요. 예를 들어 포럼에서는 게시된 게시물을 표시하기 위해 새 이미지를 사용합니다. 하루. 방법 1: 다음과 같이 코드를 복사합니다. //$db->rows[$i][date]는 데이터베이스의 날짜/시간 필드 값입니다. >$ today=time(); $theDay=date("Y-m-d H:i:s",$today-24*3600) $newTag=$db->rows[$i][ 날짜] >=$theDay?" ":"" //방법 2: $newTag=$db-> 행[ $i][날짜]>=날짜("연말 00:00:00")?" ":"" ? > 다음과 같이 코드를 복사합니다. //페이지와 브라우저에서 제출한 변수를 추출합니다. 이는 PHP.INI에서 전역 변수를 여는 것과 같습니다. @extract ($_SERVER , EXTR_SKIP); @extract($_POST, EXTR_SKIP) @extract($ _GET, EXTR_SKIP ); @extract($_ENV, EXTR_SKIP); 다음과 같이 코드를 복사하세요. //파일 읽기 기능 function readfromfile($file_name) { if (file_exists($file_name)) { $filenum=fopen($file_name,"r") flock($filenum,LOCK_EX); >$file_data =fread($filenum, filesize($file_name)); rewind($filenum) fclose($filenum) return $file_data; 🎜>? 다음과 같이 코드를 복사하세요. //Write file function < function writetofile($file_name,$data,$method="w") { $filenum=fopen($file_name,$method); flock($filenum,LOCK_EX) $file_data=fwrite($filenum,$data); ; return $file_data; ?> 다음과 같이 코드를 복사하세요. //빠른 페이지 넘기기 $url=" index.php",$info = "페이지가 리디렉션 중입니다...",$second=2){ print "nn페이지가 리디렉션 중입니다. ... title>n"; print " n"; print "n"; print "n n"; 인쇄 "< ;table width="100%" border="0" align="center">n" 인쇄 " n" 인쇄 " n"; 인쇄 " n"; 인쇄 " n"; 인쇄 " n" 인쇄 " n" 인쇄 " print " 페이지 리디렉션 프롬프트 정보 n"; print " n"; print " < tr>n"; print " $info n" print " n"; print " print " n" print " 브라우저가 자동을 지원하지 않는 경우 뛰어내리세요. 여기를 클릭하세요 n"; print " n"; print " n"; print " < /table> ;n"; print " n"; print " n"; print " n"; 인쇄 " n"; 인쇄 "
n"; 인쇄 "n "; exit; ?> 임의의 문자열 함수 생성 다음과 같이 코드를 복사하세요. function random($length) { $ 해시 = @#@#;$chars = @#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#; $max = strlen($chars) - 1; mt_srand((double)microtime() * 1000000) for($i = 0; i < ; $length; $i++) { $hash .= $chars[mt_rand(0, $max)] } return $hash; ?> > 특정 길이의 문자열 자르기(이 함수는 GB2312에 유효함) 다음과 같이 코드를 복사하세요: function Wordscut($string, $length,$sss=0 ) { if(strlen($string) > $length) { if($sss){ $length=$length - 3; # ; } for($i = 0; $i < $length; $i++) { if(ord($string[$i]) > 127) { $ Wordscut .= $string[$i].$string[$i + 1]; $i++ } else { $wordscut .= $string[$i] } 🎜 >} return $wordscut.$addstr; } return $string; } ?> 클라이언트 IP 주소 가져오기 코드 function GetIP(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP" "); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv ("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR") else if (isset($_SERVER[@ #REMOTE_ADDR@#] ) && $_SERVER[@#REMOTE_ADDR@#] && strcasecmp($_SERVER[@#REMOTE_ADDR@#], "알 수 없음")) $ip = $_SERVER[@#REMOTE_ADDR@#]; else $ip = "unknown"; return($ip); } ?> 코드는 다음과 같습니다. 다음: function checkEmail($inAddress) { return (ereg("^([a-zA-Z0-9_-])+@([a-zA- Z0-9_-])+(. [a-zA-Z0-9_-])+",$inAddress)); } ?> 페이징(두 개와 함께 사용됨) 함수) 코드는 다음과 같습니다. function getpage($sql,$page_size=20) { global $page,$totalpage,$sums; /out param $page = $ _GET["page"] //$eachpage = $page_size; $pagesql = strstr($sql," from "); "ID로 개수(*) 선택". $pagesql; $result = mysql_query($pagesql) if($rs = mysql_fetch_array($result)) $sums = $rs[0]; >$totalpage = ceil($sums/$ page_size); if((!$page)($page<1)) $page=1 $startpos = ($page-1)*$page_size; ; $sql .=" $startpos,$page_size "; return $sql>} function showbar($string="") { global $page ,$totalpage; $out= "전체".$totalpage." 페이지 "; $linkNum =4 ; $start = ($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1"; $end = ($page+ round($linkNum/2))<$totalpage ? ($page+round($linkNum/2)) : $totalpage $prestart=$start-1; >$nextend=$end+1 ; if($page<>1) $out .= "첫 페이지 "; if($start>1) $out.=" ..<< "; for($t=$start;$t<=$end;$t++) { $out .= ($ 페이지== $t) ? "[".$t."] " : " $t "; } if($end<$totalpage) $ out.=">>.. "; if($page<>$totalpage) $out .= " "; return $out; } ?> 새로 삽입된 데이터의 ID를 가져옵니다. 다음과 같이 코드를 복사합니다. mysql_insert_id(); ?> 코드는 다음과 같습니다. //현재 스크립트 URL 가져오기 if(!empty($_server["REQUEST_URI"])){ $scriptName = $_SERVER["REQUEST_URI"] $nowurl = $scriptName; else{ $scriptName = $_SERVER["PHP_SELF"]; if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName; else $nowurl = $scriptName." ".$_SERVER["QUERY_STRING"]; } return $nowurl; } ?> 코드는 다음과 같습니다. //전체 변환 -너비 숫자를 반너비 숫자로 function GetAlabNum($fnum){ $nums = array("0","1","2","3","4 ","5", "6","7","8","9"); $fnums = "0123456789"; for($i=0;$i<=9;$ i++) $fnum = str_replace ($nums[$i],$fnums[$i],$fnum) $fnum = ereg_replace("[^0-9.]|^0{1,}", "",$fnum) ; if($fnum=="") $fnum=0; return $fnum;} ?> //HTML 태그 제거 function Text2Html($txt){ $txt = str_replace(" "," ",$txt) $txt = str_replace( "<","<" ,$txt) $txt = str_replace(">",">",$txt) $txt = preg_replace("/[rn]{ 1,}/isU"," rn",$txt); return $txt; } ?> 코드는 다음과 같습니다. //상대 경로를 절대 경로로 변환 < ;? function 상대_to_absolute($content, $feed_url) { preg_match('/(http|https|ftp):///', $feed_url, $protocol); $server_url = preg_replace( "/(http|https|ftp|news):///", "", $feed_url) $server_url = preg_replace("//.*/ ", "", $server_url); if ($server_url == '') { return $content; } if (isset($protocol[0])) { $new_content = preg_replace('/href="/ /', 'href="'.$protocol[0].$server_url.'/', $content) $new_content = preg_replace('/src= "//', 'src="'.$ 프로토콜[0].$server_url.'/', $new_content) } else { $new_content = } return $new_content; ? 다음과 같이 코드를 복사하세요. //모든 링크 가져오기 function get_all_url($code) preg_match_all('/"' ]+)["|']?s*[^>]*>([^> ]+) /i',$ code,$arr) return array('name'=>$arr[2],'url'=>$arr[1]); } ?> 다음과 같이 코드를 복사합니다. //HTML 테이블의 각 행을 CSV 형식 배열로 변환합니다. < function get_tr_array ($table) { $table = preg_replace("'< ;td[^>]*?>'si",'"',$table); $table = str_replace("< /td>",'",',$table); $table = str_replace(" ","{tr}",$table) //HTML 태그 제거 $table = preg_replace("'<[/!]*? [^<>]*?>'si","",$table) //공백 문자 제거 $ table = preg_replace("'([rn])[s]+' ","",$table) $table = str_replace(" ","",$table) $table = str_replace (" ","",$table); $table =explore(",{tr}",$table) array_pop($table) return $table; ?> 다음과 같이 코드를 복사하세요. //HTML 테이블의 각 행과 열을 배열로 변환하고 테이블 데이터를 수집합니다. < function get_td_array ($table) { $table = preg_replace("']*?>'si","",$table) $table = preg_replace("'< tr[^>]*?>'si","",$ table); $table = preg_replace("']*?>'si","", $table); $table = str_replace(" ","{tr}",$table) $table = str_replace(" ","{td} ",$table); //HTML 태그 제거 $ table = preg_replace("'<[/!]*?[^<>]*?>'si","", $table);//공백 문자 제거 $table = preg_replace("'([rn])[s]+'","",$table) $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; } ?> 复制代码 代码如下: //返回字符串中的所有单词 $distinct=true 去除重复 function split_en_str($str,$distinct=true) { preg_match_all('/([a-zA-Z]+)/',$str,$match); if ($distinct == true) { $match[1] = array_unique($match[1]); } sort($match[1]); return $match[1]; } ?> 复制代码 代码如下: //打印出为本PHP项目做出贡献的人员的清单 string phpcredits(void) ?> //获得当前的脚本网址 function get_php_url(){ if(!empty($_SERVER["REQUEST_URI"])){ $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; }else{ $scriptName = $_SERVER["PHP_SELF"]; if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName; else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]; } return $nowurl; } //把全角数字转为半角数字 function GetAlabNum($fnum){ $nums = array("0","1","2","3","4","5","6","7","8","9"); $fnums = "0123456789"; for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum); $fnum = ereg_replace("[^0-9\.]|^0{1,}","",$fnum); if($fnum=="") $fnum=0; return $fnum; } //去除HTML标记 function Text2Html($txt){ $txt = str_replace(" "," ",$txt); $txt = str_replace("<","<",$txt); $txt = str_replace(">",">",$txt); $txt = preg_replace("/[\r\n]{1,}/isU"," \r\n",$txt); return $txt; } //清除HTML标记 function ClearHtml($str){ $str = str_replace('<','<',$str); $str = str_replace('>','>',$str); return $str; } //相对路径转化成绝对路径 function relative_to_absolute($content, $feed_url) { preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol); $server_url = preg_replace("/(http|https|ftp|news):\/\//", "", $feed_url); $server_url = preg_replace("/\/.*/", "", $server_url); if ($server_url == '') { return $content; } if (isset($protocol[0])) { $new_content = preg_replace('/href="\//', 'href="'.$protocol[0].$server_url.'/', $content); $new_content = preg_replace('/src="//', 'src="'.$protocol[0].$server_url.'/', $new_content) } else { $new_content = $ content; } $new_content 반환 } //모든 링크 가져오기 function get_all_url($code){ preg_match_all('/"' ]+)["|']?s*[^>]*>([^>]+)/i',$code, $arr) return array('name'=>$arr[2],'url'=>$arr[1]) } //지정된 태그의 내용 가져오기 function get_tag_data($str, $start, $end){ If ( $start == '' || $end == '' ){ return } //HTML 테이블의 각 행을 CSV 형식 배열로 변환 function get_tr_array($table) { $table = preg_replace("']*? >'si",'"',$table) $table = str_replace(" ",'",',$table); $ table = str_replace("< /tr>","{tr}",$table); //HTML 태그 제거 $table = preg_replace( "'<[/! ]*?[^<>]*?>'si","",$table) //공백 문자 제거 ]+'","" ,$table); $table = str_replace(" ","",$table) $table = str_replace(" ","",$table); 폭발(",{tr}",$table); array_pop($table); return $table; //HTML 변환 테이블을 배열로 변환하여 테이블 데이터 수집 function get_td_array($table) { $table = preg_replace("']*?>'si"," ",$table) ; $table = preg_replace("']*?>'si","",$table) $table = preg_replace("'< ;td[^> ;]*?>'si","",$table); $table = str_replace(" ","{tr}",$table); $table = str_replace ("","{td}",$table) ~ [^<>]*?>'si","",$table); //제거 공백 문자 $table = preg_replace("'([rn])[s]+' ","",$table) $table = str_replace (" ","",$table); $table "",$table); $table =explore('{tr}', $table) array_pop($table); foreach ($table as $key=> $tr) { $td =explore('{td}', $tr) array_pop($td); $td_array[] = $td; true 중복 제거 function Split_en_str($str,$distinct=true) { preg_match_all('/([a-zA-Z] +)/',$str,$match); if ( $distinct == true) { ; } //파일 읽기 함수 function PHP_Read($file_name) { $fd=fopen($file_name ,r) while($bufline=fgets($fd, 4096)){ $ buf.=$bufline; } fclose($fd); return $buf } ?> > 파일 쓰기 함수 //파일 쓰기 함수 function PHP_Write($file_name,$data,$method="w") { $filenum=@fopen($file_name,$method); 무리( $filenum,LOCK_EX) $file_data=fwrite($filenum,$data); fclose($filenum) ; return $file_data; } ?> 정적 페이지 생성 기능 // 정적 페이지 생성 기능 phptohtm($filefrom,$fileto,$u2u=1){ if( $u2u==1){ $data=PHP_Read($filefrom) }else{ $data= $filefrom } PHP_Write($fileto,$data); return true } ?> 조건 정보 수량 검색 함수 지정 //조건 정보 수량 검색 함수 지정 function rec_exist($table,$where){ $query="$table에서 num으로 선택". $where $result=mysql_query($query) 또는 die(nerror(1)) $rowcount=mysql_fetch_array($result ); $num=$rowcount["num"]; if ($num==0){ return false } return $num; 🎜> ?> 디렉토리 삭제 기능 // 디렉토리 삭제 기능 기능 del_DIR($directory){ $mydir=dir($directory); while($file=$mydir->read()){ if((is_dir("$directory/$file")) AND ($ file!=".") AND ($file!=". .")){ del_DIR("$directory/$file") }else{ if(($file!= ".") AND ($file!="..") ){ unlink("$directory/$file") //echo "$directory/$file 연결 해제 ok "; } } } $mydir->close(); rmdir($directory) //echo "rmdir $directory ok "; 🎜> } ?> 디렉토리 이름 적법성 감지 기능 // 디렉토리 이름 적법성 감지 기능 isen($str) { $ret=""; for($i=0;$i $p=ord(substr($str,$i,1)); if(($p<48 & $p!=45 & $p!=46) || ($p>57 & $p<65) || ($p>90 & $p<97 & $p!=95) || ){ nerror("사양을 충족하지 않습니다! "); } $ret.=chr($p); } return $ret; } ?> 페이징 기능 //分页函式 함수 분할 목록($HALT,$LRLIST,$ECHOCNT,$paper,$table,$where,$page_id,$userid){ global $splitstr,$sumcnt; if($paper=="" || $sumcnt==""){ $query = "$table $where에서 숫자로 count(*)를 선택합니다"; $result = mysql_query($query); $row = mysql_fetch_array($result); $sumcnt=$row["num"]; if($sumcnt==0){ nerror("该版内还没有选择发布新闻 !"); } $paper=1; } $sumpaper=($sumcnt-$sumcnt%$ECHOCNT)/$ECHOCNT; if(($sumcnt%$ECHOCNT)!=0) $sumpaper+=1; if($sumpaper==1 && $HALT==0) return($where); $enwhere=base64_encode(base64_encode($where)); if(($LRLIST*2+1) < $sumpaper){ if(($paper-$LRLIST) < 2){ $tract=1; $sub=$LRLIST*2+1; }else if(($paper+$LRLIST) >= $sumpaper){ $tract=$sumpaper-($LRLIST*2); $sub=$sumpaper; }else{ $tract=$paper-$LRLIST; $sub=$paper+$LRLIST; } }else{ $tract=1; $sub=$sumpaper; } $uppaper=$paper-1; $downpaper=$paper+1; $startcnt=($paper-1)*$ECHOCNT; $where.=" ${ startcnt },${ ECHOCNT }" 제한; if($tract > 1) { $splitstr="【 << "; } else $splitstr="【 << "; for($i=$tract;$i<=$sub;$i++){ if ($i!=$paper) $splitstr.="".$i." "; else $splitstr.="".$i." "; } if ($sub!=$sumpaper) $splitstr.=">> ]"; else $splitstr.=">> 】"; 반환($where); } ?> 关于分页函式的使用说明 /* #### 检索分页函式 #### Int $HALT -果仅分1页时是否(1/0)显示页码条 Int $LRLIST - (页码条显示页码数-1)/2 Int $ECHOCNT - 检索时每页显示记录的数weight Int $ 종이 - 页数,预提取:$paper=$HTTP_GET_VARS[paper]; Varchar $table - 数据表name,预附值:$table="db.table"; Varchar $where - 检索条件,预附值:$where="where field='value'"; 函式调사용前需获取变weight - $paper=$HTTP_GET_VARS[paper]; $sumcnt=$HTTP_GET_VARS[sumcnt]; $enwhere=$HTTP_GET_VARS[enwhere]; 반환(Varchar $where) - 分页后检索语句的检索条件 注意:本函式需调用 Out错处函式 nerror($error)리; */ 图文文件上传函式 //图文文件上传函式 function upload_img($UploadFile,$UploadFile_name,$UploadFile_size,$UploadPath,$max_size=64){ //$TimeLimit=60; //设置超时限aze时间 缺省时间为 30秒 设置为0时为不限时 //set_time_limit($TimeLimit); if(($UploadFile!= "none" )&&($UploadFile != "" )){ $FileName=$UploadPath.$UploadFile_name; if($UploadFile_size <1024){ $FileSize="(string)$UploadFile_size" . "문자"; }elseif($UploadFile_size <(1024 * $max_size)){ $FileSize=number_format((double)($UploadFile_size / 1024), 1) . "KB"; }else{ nerror("파일이 크기 제한을 초과했습니다!"); } //{ //$FileSize="number_format((double)($UploadFile_size" / (1024 * 1024)), 1) . " MB"; // } if(!file_exists($FileName)){ if(copy($UploadFile,$FileName)){ return "$UploadFile_name ($FileSize)" ; }else{ nerror("$UploadFile_name 파일 업로드 실패!") } unlink($UploadFile) }else{ nerror("$UploadFile_name 파일 이미 존재합니다!"); } //set_time_limit(30); //기본 시간 초과 설정 복원 } } IP 주소의 적법성을 확인하는 방법 if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip)) echo "is ipn"; - 이메일 규칙성 판단 에레기("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_- ]+ .)+[a-zA-Z]$", $email); IP 주소와 마스크가 합법적인지 확인하는 예 $ip = '192.168.0.84'; $mask = '255.255.255.0'; $network = '192.168.0'; ($ip) ; $mask = ip2long($mask); $network = ip2long($network) if( ($ip & $mask) == $network) echo "유효한 IP 및 마스크"; --- 파일 다운로드 헤더 출력 설정 방법 header("콘텐츠 유형: 애플리케이션/x-다운로드") header("콘텐츠 처리: 첨부 파일; 파일 이름=$file_download_name;" ); header("허용 범위: 바이트"); header("콘텐츠 길이: $download_size") echo 'xxx' 헤더를 사용하여 ftp 다운로드 방법을 출력하고 중단점 재개를 지원합니다. 예: header('Pragma: public') header('Cache- 제어: 비공개 '); header('캐시-제어: 캐시 없음, 재검증 필요') header('Accept-Ranges: bytes') header('연결: 닫기' ); header("Content-Type: audio/mpeg"); header("위치:ftp://download:1bk3l4s3k9s2@232.2.22.22/2222/web 기술 개발 지식 베이스/cn_web.rmvb" ); 정규 경기 중국어 ereg("^[".chr(0xa1)."-".chr( 0xff). "]+$", $str) 텍스트의 하이퍼링크 일괄 바꾸기 함수 urlParse ($str = ''){ if ('' == $str) return $str; $types = array("http", "ftp", "https"); 🎜 >$replace = << ''.htmlentities('1') .htmlentities('2').' ' $ret ( ,$type) = 각각($types)){ $ret = preg_replace("|($type://)([^s]*)|ie ", $replace, $ret) } $ret 반환 } ?>성명: 본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.