ホームページ バックエンド開発 PHPチュートリアル 一般的な PHP 関数のコレクション

一般的な PHP 関数のコレクション

Nov 23, 2016 pm 03:21 PM

最近 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"); el se if (getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
return $ip
?> :// /www.jb51.net/article/22199.htm


function DateAdd($date, $int, $unit = "d") { //時間の増加(改善も可能)時間、分、秒まで) 時間があれば追加できます)
$dateArr =explode("-", $date);
$value[$unit] = $int; (0,0,0, $dateArr[1] + $value['m'], $dateArr[2] + $value['d'], $dateArr[0] + $value['y'])) ;
}
function GetWeekDay( $date) { //指定された日付の曜日を計算します
$dateArr =explode("-", $date)
return date("w", mktime(0,0) ,0,$dateArr[1] ,$dateArr[2],$dateArr[0]));
}
?>
詳細なソース参照: http://www.jb51.net/article/22199.htm

function check_date( $date) { // 日付が有効な日付かどうかを確認します
$dateArr =explode("-", $date);
if (is_numeric($dateArr[0]) && is_numeric( $dateArr[1]) && is_numeric($dateArr [2])) {
return checkdate($dateArr[1],$dateArr[2],$dateArr[0]);
}
return false; 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 = "") { //時間比較関数、秒数、分数、 2 つの日付間の時間または日数
switch ($unit ) {
case 's':
$dividend = 1;
case 'h':
$dividend = 3600;
case 'd':
$dividend = 86400;
$time2 = strtotime( $date2);
if ($time1 && $time2)
return (float)($time1 - $time2) / $dividend;
}
?>
詳細なソース参照: http://www. jb51.net/article/22199.htm


方法 1: header("Location:index.php");
方法 2: echo "window.location ="$PHP_SELF";< ;/scrīpt>";
方法 3: echo "";
?>
詳細なソース参照: http:// www.jb51.net/article/22199.htm

PHP リダイレクト
次のようにコードをコピーします:
方法 1: header("Location:index.php")
方法 2: echo "";
方法 3: echo "";
? >

訪問者のブラウザの
コードを取得します:
$browser="";$browserver=""; ,"AOL","Opera","JAVA ","MacWeb","WebExplorer","OmniWeb");
$Agent = $GLOBALS["HTTP_USER_AGENT"]; 7; $i++)
{
if (strpos($Agent,$Browsers[$i]))
{
$browser = $Browsers[$i]; 
$ブラウザサーバー = "; 
}
}
if (ereg("Mozilla",$Agent) && !ereg("MSIE",$Agent))
{
$temp =explode("(", $Agent); $Part=$temp[ 0];
$temp =explode("/", $browserver=$temp[1];
$temp =explode(" ",$browserver); browserver =preg_replace("/([d.]+)/","1",$browserver);
$browserver = " $browserver";
}
if (" Mozilla",$Agent) && ereg("Opera",$Agent))
{
$temp =explode("(", $Agent); $Part=$temp[1];
$temp =explode(") ", $Part); $browserver=$temp[1];
$temp =explode(" ",$browserver);$browserver=$temp[2];
$browserver =preg_replace("/([d.] +)/","1",$browserver);
$browserver = " $browserver";
$browser = "Opera";
}
if (ereg("Mozilla",$Agent) && ereg("MSIE" ,$Agent))
{
$temp =explode("(", $Agent); $Part=$temp[1];
$temp =explode(";",$Part); $Part=$temp[ 1];
$temp =explode(" ",$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

获取问者操作系统
复制代码如下:
関数 osinfo() {
$os=""; 
$エージェント = $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

文件格式类
复制發代码如下:
$mime_types = array(
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'bmp' => 'image/bmp',
'png' => 'image/png',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'pict' => 'image/x-pict',
'pic' => 'image/x-pict',
'pct' => 'image/x-pict',
'tif' => 'image/tiff',
'tiff' => '画像/tiff',
'psd' => 'image/x-photoshop',
'swf' => 'application/x-shockwave-flash',
'js' => 'application/x-javascript',
'pdf' => 'application/pdf',
'ps' => 'application/postscript',
'eps' => 'application/postscript',
'ai' => 'application/postscript',
'wmf' => 'application/x-msmetafile',
'css' => 'text/css',
'htm' => 'text/html',
'html' => 'text/html',
'txt' => 'text/plain',
'xml' => 'text/xml',
'wml' => 'text/wml',
'wbmp' => 'image/vnd.wap.wbmp',
'mid' => 'audio/midi',
'wav' => 'オーディオ/wav',
'mp3' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'avi' => 'video/x-msvideo',
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'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',
'sit' => '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' => 'application/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文档
复制代码代码如下:
header("Content-type:application/vnd.ms-excel"); 
header("Content-Disposition:filename=test.xls"); 
エコー「test1t」; 
「test2tn」をエコーし​​ます。 
エコー「test1t」; 
「test2tn」をエコーし​​ます。 
エコー「test1t」; 
「test2tn」をエコーし​​ます。 
エコー「test1t」; 
「test2tn」をエコーし​​ます。 
エコー「test1t」; 
「test2tn」をエコーし​​ます。 
エコー「test1t」; 
「test2tn」をエコーし​​ます。 
//改相应文件头就可出出.doc .xls等文件格式了
?> 

詳細なソース参照: http://www.jb51.net/article/22199.htm

時間比較の問題
簡単な例を挙げてみましょう: たとえば、フォーラムでは、その日に公開された投稿をマークするために新しい画像を使用します。
方法 1:
次のようにコードをコピーします:
//$db->rows[$i][date] はデータベースの datetime フィールドの値です
$today=time(); theDay= date("Y-m-d H:i:s",$today-24*3600);
$newTag=$db->rows[$i][date]>=$theDay?"":"";
//方法 2:
$newTag=$db->rows[$i][date]>=date("Y-m-d 00:00 :00 ")?"":"";
?>

次のようにコードをコピーします:
//ページによって送信された変数を抽出しますおよびブラウザでは、PHP.INI でグローバル変数を開くのと同等の関数
@extract($_SESSION, EXTR_SKIP);
@extract($_POST, EXTR_SKIP); extract($_FILES , EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);

次のようにコードをコピーします:
//ファイル関数を読み込みます
関数 readfromfile( $file_name) {
if (file_exists($file_name)) {
$filenum=fopen($file_name,"r")
$file_data=fread($filenum, filesize($file_name ));
fclose($filenum);
$file_data($file_name,$data,$method="w") {
$filenum=fopen ,$method);
$file_data=fwrite($filenum);
$file_data;

;次のように:
//クイック ページめくり
functionturntopage($url="index.php",$ info = "ページはリダイレクト中です...",$second=2){
print "< html>nnページはリダイレクトしています...n";
print " n";
print "n";
print "n n";
print "

n" ;
print " n";
print " n";
print " n"; "
n ";
print " n"
print " n";
print " n"; center">$infon";
print " n";
print " n";
print " n";
print " n";
print " n";
print " n"; " n";
print "n";
print "n"; ;/html>";
exit;
?>>

ランダムな文字列関数を生成します
次のようにコードをコピーします:

function random($length) {
$hash = @#@#;
$chars = @#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#;
$max = strlen($chars) - 1;
for($i = 0; $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;
$addstr=@# ...@#;
for($i = 0; $i if(ord($string[$i ]) > 127) {
$wordscut .= $string[$i].$string[$i + 1]
} 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") ), "不明" ))
$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@#], "unknown"))
$ ip = $_SERVER[ @#REMOTE_ADDR@#];
else
$ip = "unknown";
}
?> コードは次のとおりです。 ;?
関数 checkEmail($inAddress)
{
return (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a- zA-Z0-9_-])+ ",$inAddress));
}
?> ,$totalpage,$sums; //out param
$page = $_GET["page"];
//$eachpage = $page_size;
$pagesql = strstr($sql," from ");
$pagesql = "ID として count(*) を選択します。"
$result = mysql_query($rsql); mysql_fetch_array($result)) $sums = $rs[0];
$totalpage = ceil($sums/$page_size);
if((!$page)($page$sql .=" 制限 $startpos ,$page_size ";
関数 showbar($string="")
{
グローバル $page, $totalpage;
$out="合計".$totalpage."ページ"; $linkNum =4;
$start = ($page-round($linkNum/2) )>0 ($page-round($linkNum/2)) : "1"; Round($linkNum/2))<$totalpage ? ($page+round($linkNum/2)) : $totalpage;
$nextend=$end+1; $page<>1)
$out .= "最初のページ
if($start>) ;1)
$out.="..<<
for($t =$start;$t{
$out .= ($page==$t) ? "[".$t."] " : "$ t ";
}
if($end< ;$totalpage)
$out.=">>..< /a>";
if($page<>$totalpage)
$out .= "
Last page";
return $out;
}
?>

新しく挿入されたデータの ID を取得する
次のようにコードをコピーします:
?> コードは次のとおりです:
//現在のスクリプトの URL を取得します
if(!empty($_server["REQUEST_URI"])){
$scriptName = $_SERVER["REQUEST_URI"]
}else{
$scriptName = $_SERVER; ["PHP_SELF"];
if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;
else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]; $nowurl;
}
?>

コードは次のとおりです:
//全角数字を半角数字に変換します

function GetAlabNum($fnum){
$nums = array(" ","1", "2","3","4","5","6","7","8","9");
$fnums = "0123456789";
for( $i=0;$ i$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 = 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); "//', 'src="'.$protocol[0].$server_url.'/', $new_content);
$new_content = $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 の各行を変換します。 table を CSV 形式の配列に変換
function get_tr_array($table) {
$table = preg_replace("']*?>'si",'"',$table);
$table = str_replace("",'",', $table);
$table = str_replace("","{tr}",$table);
// HTML タグを削除します
$table = preg_replace("'<[/!]*? [^<>]*?>'si","",$table);
//空白文字を削除します
$table = preg_replace("'([rn])[s]+'","" ,$table);
$table = str_replace(" ","",$table); ",$table);
$table =explode(",{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);
$テーブル = 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);
$new_content = $content;
return $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 $str[0]}
//HTML テーブルの各行を CSV 形式の配列に変換します
function get_tr_array($table) {
$table = preg_replace("']*?> 'si",'"',$table);
$table = str_replace("",'",', $table);
$table = str_replace(""," {tr} ", $ table);
// HTML マークを削除します




$ table = preg_replace (" '& lt; [/!]*? ,"",$table); $table = (", {tr}", $table); array_pop($table); return $ Table; // HTML テーブルを配列に変換します。 , フォームデータを収集します
function get_td_array ($ table) {
$ table = preg_replace ("'& lt; table [^& gt;]*? & gt. ;'si","",$table); = preg_replace("']*?>'si","",$table);
$table = preg_replace(" ']*?>'si ","",$table);
$table = str_replace("","{tr}",$table);
$ table = str_replace("","{td) }",$table);
table = str_replace(" );
;array_pop($td);
preg_match_all('/([a-zA-Z]+)/',$str,$match); [1]); $ fd=fopen( $file_name,r);
while($bufline=fgets($fd, 4096)){
$buf.=$bufline; }
fclose($fd)
}
?> fopen( $file_name,$method);
$filenum,$data);
$file_data;


静的ページ生成関数


//静的ページ生成関数
function phptohtm($filefrom,$fileto,$u2u=1){
if($u2u==1){
$data=PHP_Read($ filefrom); }else{
$data=$filefrom;
}
PHP_Write($fileto,$data);
}





条件情報量取得関数を指定します


//条件情報量取得関数を指定
function rec_exist($table,$where){
$query="select count(*) as num from $table ".$where
$result=mysql_query ($query) or die; (nerror(1));
$rowcount=mysql_fetch_array($result);
$num==0){
return false;
}
?>





ディレクトリ削除関数


//ディレクトリ削除関数
function del_DIR($directory){
while($file=$mydir- >read()){
if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".." )){
del_DIR("$ディレクトリ/$file");
}else{
if(($file!=".") AND ($file!="..")){
unlink("$directory /$file");
/ /echo "$directory/$file ok ";
}
}
}


$mydir->close();
rmdir($directory)
//echo " rmdir $directory ok ";
?>



ディレクトリ名の正当性検出関数


// ディレクトリ名の正当性検出
function 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) || $p>122){
nerror("仕様を満たしていません! ");
}
$ret.=chr($p);
}
return $ret;
}
?>



ページング関数


   //分页関数式
function splitlist($HALT,$LRLIST,$ECHOCNT,$paper,$table,$where,$page_id,$userid){
global $splitstr,$sumcnt; 
if($paper=="" || $sumcnt==""){
$query = "$table $where から num として 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) if(($paper-$LRLIST) $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.=">> ]"; 
return($where); 
}
?> 



分数関数式の使用に関する説明
/*
#### 检索分页関数式 ####
Int $HALT - 检索結果仅分1页時否(1/0)表示页コード条
In t $LRLIST - (页码条显表示页コード数-1)/2
Int $ECHOCNT - 検索時の検索数
Int $paper - 页数、引取:$paper=$HTTP_GET_VARS[paper]; 
Varchar $table - データベース表名,预附值:$table="db.table"; 
Varchar $where - 検索条件,预附值:$where="where field='value'"; 

Varchar $enwhere - 将原$where を次base64_encode() を実行してからGETの方法で提交します
Varchar $splitstr - 页 コード条出力文字列、関数式を実行後、対応する位置で echo $splitstr; を実行します。 

函式调用前必要获取变量 -
$paper=$HTTP_GET_VARS[paper]; 
$sumcnt=$HTTP_GET_VARS[sumcnt]; 
$enwhere=$HTTP_GET_VARS[enwhere]; 

Return (Varchar $where) - 分後検索语の検索条件
注意:本関数式必要调用出错处理関数式 nerror($error); 
*/




写真文件上传関数式




//写真文件上传関数式
function Upload_img($UploadFile,$UploadFile_name,$UploadFile_size,$UploadPath,$max_size=64) {

/ /$タイムリミット=60; //超時間制限時間を設定します 省時間は 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」; 
}その他{
nerror("ファイルがサイズ制限を超えています!");
}
//{
//$FileSize="number_format((double)($UploadFile_size" / (1024 * 1024)), " 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"; ----

メール規則性判定
eregi("^[_.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' ;
$ip = ip2long($マスク); ($ip & $マスク) == $network) echo "有効な IP とマスクn"



----



ファイルのダウンロードヘッダー出力を設定する方法




header("Content-type: application/x-download");
header("Content-Disposition:attachment; filename=$file_download_name;");
header("Accept-Range: bytes"); -Length: $download_size ");
echo 'xxx'



ヘッダーを使用して FTP ダウンロード メソッドを出力し、ブレークポイントによるダウンロードの再開をサポートします
例:




header('Pragma: public');
header ('キャッシュ制御: プライベート');
header('キャッシュ制御: キャッシュなし、必須');
header('接続: 閉じる');
header("Content -Type: audio/mpeg");
header("Location:ftp://download:1bk3l4s3k9s2@232.2.22.22/2222/web テクノロジー開発ナレッジ ベース/cn_web.rmvb");



通常の中国語一致
ereg("^[".chr(0xa1)."-".chr(0xff)."]+$", $str);

テキスト内のハイパーリンクを一括置換します





< ;?php
function urlParse($str = ''){
if ('' == $str) return $str;
$types = array("http", "ftp", "https");

$ replace = << ''.htmlentities('1').htmlentities ('2 ').''



$ret = $str;

while(list(,$type) = each($types)){
$ret = preg_replace ("| ($type://)([^s]*)|ie ", $replace, $ret)



return $ret
}
?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

See all articles
ページ リダイレクト プロンプト メッセージ
n";
print " お使いのブラウザが自動ジャンプをサポートしていない場合は、ここをクリックしてください