日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php下dat函数e,PHP 常用函数记录 一

發布時間:2025/4/5 php 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php下dat函数e,PHP 常用函数记录 一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

遞歸創建目錄

/**

* 遞歸創建目錄

* @param [type] $dir [description]

* @return [type] [description]

*/

function mkdirs($dir)

{

if(!is_dir($dir)){

if(!mkdirs(dirname($dir))){

return false;

}

if(!mkdir($dir, 0777)){

return false;

} else {

chmod($dir, 0777);

}

}

return true;

}

################# 使用實例 #######################

echo mkdirs('aaa/bbb/ccc/ddd/');

mb_substr系列函數截取字符串

/**

* 截取中文字符串

* @param [type] $string [截取字符串]

* @param integer $length [截取長度]

* @param integer $start [開始位置]

* @return [type] [description]

*/

function getSubstr($string, $length = 10, $start = 0)

{

if(mb_strlen($string,'utf-8')>$length){

# 對英文或中文字符都表示一個單位

$str = mb_strcut($string, $start, $length,'utf-8');

# 對中文字符是3個單位,英文是1個單位

$str = mb_substr($string, $start, $length,'utf-8');

return $str.'...';

}else{

return $string;

}

}

################# 使用實例 #######################

echo getSubstr('這樣ABc來我的abc字符串就不會有亂碼^_^', 5);

exit;

字節單位換算函數

/**

* 字節單位換算函數

* @param [type] $size [資源大小]

* @param integer $digits [保留小數位]

* @return [type] [description]

*/

function size2mb($size,$digits=2)

{

$unit = array('','K','M','G','T','P'); //單位數組,是必須1024進制依次的哦。

$base = 1024; //對數的基數

$i = floor(log($size,$base)); //字節數對1024取對數,值向下取整。

return round($size/pow($base,$i),$digits).' '.$unit[$i] . 'B';

}

/**

* 容量單位計算,支持定義小數保留長度;定義起始和目標單位,或按1024自動進位

*

* @param int $size,容量計數

* @param type $unit,容量計數單位,默認為字節

* @param type $decimals,小數點后保留的位數,默認保留一位

* @param type $targetUnit,轉換的目標單位,默認自動進位

* @return type 返回符合要求的帶單位結果

*/

function fileSizeConv($size, $unit = 'B', $decimals = 2, $targetUnit = 'auto')

{

$units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');

$theUnit = array_search(strtoupper($unit), $units); //初始單位是哪個

//判斷是否自動計算,

if ($targetUnit != 'auto')

$targetUnit = array_search(strtoupper($targetUnit), $units);

//循環計算

while ($size >= 1024) {

$size/=1024;

$theUnit++;

if ($theUnit == $targetUnit)//已符合給定則退出循環吧!

break;

}

return sprintf("%1\$.{$decimals}f", $size) . $units[$theUnit];

}

################# 使用實例 #######################

echo size2mb(10240000900);

echo '
';

echo fileSizeConv(10240000900);

exit;

獲取頁面URL地址

/**

* 獲取頁面URL地址

* @return [type] [description]

*/

function getUrl(){

$url="http://www.xxxx.com";

if(isset($_SERVER["REQUEST_URI"])){

$url.=$_SERVER["REQUEST_URI"];

} else{

$url.=$_SERVER["PHP_SELF"];

if(!empty($_SERVER["QUERY_STRING"])){

$url.="?".$_SERVER["QUERY_STRING"];

}

}

return $url;

}

獲取上頁地址

/**

* 獲取上頁地址

* @return [type] [description]

*/

function getReferer()

{

return $_SERVER['HTTP_REFERER'];

}

設置登錄成功返回頁地址

/**

* 設置返回頁地址

*/

function setReturnUrl()

{

$return_url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

setcookie('returnurl', $return_url,time()+3600, '/', ".xxxx.com");

}

顯示友好的時間格式

/**

* [顯示友好的時間格式 xx分鐘前 xx小時前 xx天 超過3天顯示正常時間]

* @param [type] $date [description]

* @return [type] [description]

*/

function dataStr($date){

if((time()-$date)<60*10){

//十分鐘內

echo '剛剛';

}elseif(((time()-$date)<60*60)&&((time()-$date)>=60*10)){

//超過十分鐘少于1小時

$s = floor((time()-$date)/60);

echo $s."分鐘前";

}elseif(((time()-$date)<60*60*24)&&((time()-$date)>=60*60)){

//超過1小時少于24小時

$s = floor((time()-$date)/60/60);

echo $s."小時前";

}elseif(((time()-$date)<60*60*24*3)&&((time()-$date)>=60*60*24)){

//超過1天少于3天內

$s = floor((time()-$date)/60/60/24);

echo $s."天前";

}else{

//超過3天

echo date("Y/m/d",$date);

}

}

/**

* 顯示友好的時間格式

*

* @param [type] $time [description]

* @return [type] [description]

*/

function formatTime($time)

{

//獲取今天凌晨的時間戳

$day = strtotime(date('Y-m-d',time()));

//獲取昨天凌晨的時間戳

$pday = strtotime(date('Y-m-d',strtotime('-1 day')));

//獲取現在的時間戳

$nowtime = time();

$tc = $nowtime-$time;

if($time

$str = date('Y-m-d H:i:s',$time);

}elseif($time$pday){

$str = "昨天";

}elseif($tc>60*60){

$str = floor($tc/(60*60))."小時前";

}elseif($tc>60){

$str = floor($tc/60)."分鐘前";

}else{

$str = "剛剛";

}

return $str;

}

/**

* 顯示友好的時間格式

*

* @param [type] $time [description]

* @return [type] [description]

*/

function transfer_time($time)

{

$rtime = date("m-d H:i",$time);

$htime = date("H:i",$time);

$time = time() - $time;

if ($time < 60)

{

$str = '剛剛';

}

elseif ($time < 60 * 60)

{

$min = floor($time/60);

$str = $min.'分鐘前';

}

elseif ($time < 60 * 60 * 24)

{

$h = floor($time/(60*60));

$str = $h.'小時前 '.$htime;

}

elseif ($time < 60 * 60 * 24 * 3)

{

$d = floor($time/(60*60*24));

if($d==1)

$str = '昨天 '.$rtime;

else

$str = '前天 '.$rtime;

}

else

{

$str = $rtime;

}

return $str;

}

################# 使用實例 #######################

echo dataStr(time()-200000);

echo '
';

echo formatTime(time()-200000);

echo '
';

echo transfer_time(time()-200000);

創建頭像存放路徑

/**

* 創建資源存放路徑

* 格式:000/00/01/36_middle.jpg

*

* @param $uid

* @param string $size

* @return string

*/

function createSavePath($saveId, $size = '')

{

$size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';

$saveId = abs(intval($saveId));

$saveId = sprintf("%09d", $saveId);

$dir1 = substr($saveId, 0, 3);

$dir2 = substr($saveId, 3, 2);

$dir3 = substr($saveId, 5, 2);

return "{$dir1}/{$dir2}/{$dir3}/".substr($saveId, -2)."_{$size}.jpg";

}

################# 使用實例 #######################

echo createSavePath(136);

創建安全下載地址

/**

* 創建安全下載地址

* @param $fileName

* @param int $show

* @return string

*/

function downUrl($fileName, $show = 1)

{

$expired = time() + (3600 * 1); // 過期時間

$secret = 'ADFO9834RH94'; // salt

$md5_secret = base64_encode(md5("{$secret}{$fileName}{$expired}", true));

$md5_secret = str_replace('=', '', strtr($md5_secret, '+/', '-_'));

$down_url = "http://www.xxxx.com{$fileName}?st={$md5_secret}&e={$expired}";

if ($show == 1) {

die("" . $down_url . "");

} elseif ($show == 2) {

return $down_url;

exit;

}

header("Content-type:application/zip");

header("location:{$down_url}");

exit;

}

防止表單注入

/**

* 防止表單注入

* 顯示的時候要用 stripslashes() 去掉反斜杠

* stripslashes()了,它能把addslashes()處理時自動加上去的(反斜杠)\去掉

* @param $str

* @return string

*/

function formSafe($str)

{

$str = strip_tags($str); //去掉html標簽

if(!get_magic_quotes_gpc()) //判斷設置是否開啟 只有0和1兩種情況

{

$str = addslashes($str); //轉換sql語句特殊字符

}

return $str;

}

數組鍵值排序函數

/**

* 數組鍵值排序

* @param $arr

* @param $keys

* @param string $type

* @return array

*/

function arrayKeySort($arr,$keys,$type='asc'){

$keysvalue = $new_array = array();

foreach ($arr as $k=>$v){

$keysvalue[$k] = $v[$keys];

}

if($type == 'asc'){

asort($keysvalue);

}else{

arsort($keysvalue);

}

reset($keysvalue);

$i = 0;

foreach ($keysvalue as $k=>$v){

$new_array[$i] = $arr[$k];

$i++;

}

return $new_array;

}

################# 使用實例 #######################

$aaa = array(

['key'=>10, 'name'=>'aaaaaaaaaa'],

['key'=>4, 'name'=>'sssssssssssss'],

['key'=>7, 'name'=>'cccccccccccccccc'],

['key'=>22, 'name'=>'ddddddddddddddddd'],

['key'=>67, 'name'=>'ffffffffffffffffffffffff'],

['key'=>2, 'name'=>'ooooooooooooooooooo'],

);

$aaas = arrayKeySort($aaa, 'key');

echo '

';

print_r($aaas);

獲取系統真實IP地址

/**

* 獲取系統真實IP地址

* @return string

*/

function getRealIP(){

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'], "unknown"))

$ip = $_SERVER['REMOTE_ADDR'];

else

$ip = "unknown";

return $ip;

}

################# 使用實例 #######################

echo getRealIP();

FTP操作類 [ 拷貝、移動、刪除文件/創建目錄]

/**

* 作用:FTP操作類( 拷貝、移動、刪除文件/創建目錄 )

* 時間:2016年9月29日18:45:18

* 作者:YPHP

* QQ:418250505

*/

class Ftp

{

public $off; // 返回操作狀態(成功/失敗)

public $conn_id; // FTP連接

/**

* 方法:FTP連接

* @FTP_HOST -- FTP主機

* @FTP_PORT -- 端口

* @FTP_USER -- 用戶名

* @FTP_PASS -- 密碼

*/

public function __construct($FTP_HOST, $FTP_PORT, $FTP_USER, $FTP_PASS)

{

$this->conn_id = @ftp_connect($FTP_HOST, $FTP_PORT) or die("FTP服務器連接失敗");

@ftp_login($this->conn_id, $FTP_USER, $FTP_PASS) or die("FTP服務器登陸失敗");

@ftp_pasv($this->conn_id, 1); // 打開被動模擬

}

/**

* 方法:上傳文件

* @path -- 本地路徑

* @newpath -- 上傳路徑

* @type -- 若目標目錄不存在則新建

*/

public function upFile($path, $newpath, $type = true)

{

if ($type) $this->createMkdir($newpath);

$this->off = @ftp_put($this->conn_id, $newpath, $path, FTP_BINARY);

if (!$this->off) echo "文件上傳失敗,請檢查權限及路徑是否正確!";

}

/**

* 方法:移動文件

* @path -- 原路徑

* @newpath -- 新路徑

* @type -- 若目標目錄不存在則新建

*/

public function moveFile($path, $newpath, $type = true)

{

if ($type) $this->createMkdir($newpath);

$this->off = @ftp_rename($this->conn_id, $path, $newpath);

if (!$this->off) echo "文件移動失敗,請檢查權限及原路徑是否正確!";

}

/**

* 方法:復制文件

* 說明:由于FTP無復制命令,本方法變通操作為:下載后再上傳到新的路徑

* @path -- 原路徑

* @newpath -- 新路徑

* @type -- 若目標目錄不存在則新建

*/

public function copyFile($path, $newpath, $type = true)

{

$downpath = "c:/tmp.dat";

$this->off = @ftp_get($this->conn_id, $downpath, $path, FTP_BINARY);// 下載

if (!$this->off) echo "文件復制失敗,請檢查權限及原路徑是否正確!";

$this->up_file($downpath, $newpath, $type);

}

/**

* 方法:刪除文件

* @path -- 路徑

*/

public function delFile($path)

{

$this->off = @ftp_delete($this->conn_id, $path);

if (!$this->off) echo "文件刪除失敗,請檢查權限及路徑是否正確!";

}

/**

* 方法:生成目錄

* @path -- 路徑

*/

protected function createMkdir($path)

{

$path_arr = explode('/', $path); // 取目錄數組

$file_name = array_pop($path_arr); // 彈出文件名

$path_div = count($path_arr); // 取層數

foreach ($path_arr as $val) // 創建目錄

{

if (@ftp_chdir($this->conn_id, $val) == FALSE) {

$tmp = @ftp_mkdir($this->conn_id, $val);

if ($tmp == FALSE) {

echo "目錄創建失敗,請檢查權限及路徑是否正確!";

exit;

}

@ftp_chdir($this->conn_id, $val);

}

}

for ($i = 1; $i = $path_div; $i++) // 回退到根

{

@ftp_cdup($this->conn_id);

}

}

/**

* 方法:關閉FTP連接

*/

public function close()

{

@ftp_close($this->conn_id);

}

}

################# 使用實例 #######################

$ftp = new class_ftp('192.168.100.143', 21, 'user', 'pwd'); // 打開FTP連接

$ftp->upFile('aa.txt', 'a/b/c/cc.txt'); // 上傳文件

$ftp->moveFile('a/b/c/cc.txt', 'a/cc.txt'); // 移動文件

$ftp->copyFile('a/cc.txt', 'a/b/dd.txt'); // 復制文件

$ftp->delFile('a/b/dd.txt'); // 刪除文件

$ftp->close(); // 關閉FTP連接

總結

以上是生活随笔為你收集整理的php下dat函数e,PHP 常用函数记录 一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。