ホームページ バックエンド開発 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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

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