>  기사  >  백엔드 개발  >  일반적으로 사용되는 PHP 연산 기능 공유

일반적으로 사용되는 PHP 연산 기능 공유

小云云
小云云원래의
2018-03-13 11:24:341262검색


1. PHP 암호화 및 복호화

PHP 암호화 및 복호화 기능을 사용하면 일부 유용한 문자열을 암호화하여 데이터베이스에 저장할 수 있으며, 이 기능은 base64 및 MD5 암호화 및 복호화를 사용합니다.

function encryptDecrypt($key, $string, $decrypt){ 
    if($decrypt){ 
        $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12"); 
        return $decrypted; 
    }else{ 
        $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key)))); 
        return $encrypted; 
    } 
}

사용 방법은 다음과 같습니다.

//以下是将字符串“Helloweba欢迎您”分别加密和解密 //加密: echo encryptDecrypt('password', 'Helloweba欢迎您',0); 
//解密: echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);

2. PHP는 임의의 문자열을 생성합니다

임의의 이름, 임시 비밀번호 및 기타 문자열을 생성해야 하는 경우 다음 기능을 사용할 수 있습니다.

function generateRandomString($length = 10) { 
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
    $randomString = ''; 
    for ($i = 0; $i < $length; $i++) { 
        $randomString .= $characters[rand(0, strlen($characters) - 1)]; 
    } 
    return $randomString; 
}

사용 방법은 다음과 같습니다.

echo generateRandomString(20);

3. PHP로 파일 확장자(접미사) 가져오기

다음 함수를 사용하면 파일 확장자나 접미사를 빠르게 가져올 수 있습니다.

function getExtension($filename){ 
  $myext = substr($filename, strrpos($filename, &#39;.&#39;)); 
  return str_replace(&#39;.&#39;,&#39;&#39;,$myext); 
}

사용 방법은 다음과 같습니다.

$filename = &#39;我的文档.doc&#39;; 
echo getExtension($filename);

4. PHP는 파일 크기를 가져와서 형식화합니다.

아래에 사용된 함수는 파일 크기를 가져와서 읽기 쉬운 KB, MB 및 기타 형식으로 변환할 수 있습니다.

function formatSize($size) { 
    $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); 
    if ($size == 0) {  
        return(&#39;n/a&#39;);  
    } else { 
      return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]);  
    } 
}

사용 방법은 다음과 같습니다.

$thefile = filesize(&#39;test_file.mp3&#39;); 
echo formatSize($thefile);

5. PHP에서 태그 문자 바꾸기

때때로 문자열과 템플릿 태그를 지정된 내용으로 바꿔야 하는 경우가 있습니다.

function stringParser($string,$replacer){ 
    $result = str_replace(array_keys($replacer), array_values($replacer),$string); 
    return $result; 
}

사용 방법은 다음과 같습니다.

$string = &#39;The {b}anchor text{/b} is the {b}actual word{/b} or words used {br}to describe the link {br}itself&#39;; 
$replace_array = array(&#39;{b}&#39; => &#39;<b>&#39;,&#39;{/b}&#39; => &#39;</b>&#39;,&#39;{br}&#39; => &#39;<br />&#39;); 

echo stringParser($string,$replace_array);

6. PHP는 디렉터리의 파일 이름을 나열합니다.

디렉토리의 모든 파일을 나열하려면 다음 코드를 사용하세요.

function listDirFiles($DirPath){ 
    if($dir = opendir($DirPath)){ 
         while(($file = readdir($dir))!== false){ 
                if(!is_dir($DirPath.$file)) 
                { 
                    echo "filename: $file<br />"; 
                } 
         } 
    } 
}

사용 방법은 다음과 같습니다.

listDirFiles(&#39;home/some_folder/&#39;);

7. 현재 페이지 URL

다음 기능은 http 또는 https인지 현재 페이지의 URL을 얻을 수 있습니다:

function curPageURL() { 
    $pageURL = &#39;http&#39;; 
    if (!empty($_SERVER[&#39;HTTPS&#39;])) {$pageURL .= "s";} 
    $pageURL .= "://"; 
    if ($_SERVER["SERVER_PORT"] != "80") { 
        $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
    } else { 
        $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
    } 
    return $pageURL; 
}

사용 방법은 다음과 같습니다:

echo curPageURL();

8.PHP는 파일을 강제로 다운로드합니다

가끔. 브라우저가 PDF 파일과 같은 파일을 직접 열지 않고 직접 다운로드하도록 하려면 다음 함수를 사용하여 파일을 강제로 다운로드할 수 있습니다. .

function download($filename){ 
    if ((isset($filename))&&(file_exists($filename))){ 
       header("Content-length: ".filesize($filename)); 
       header(&#39;Content-Type: application/octet-stream&#39;); 
       header(&#39;Content-Disposition: attachment; filename="&#39; . $filename . &#39;"&#39;); 
       readfile("$filename"); 
    } else { 
       echo "Looks like file does not exist!"; 
    } 
}

사용 방법은 다음과 같습니다.

download(&#39;/down/test_45f73e852.zip&#39;);

9. PHP가 문자열 길이를 가로챕니다

문자열(한자 포함)의 길이를 가로채야 하는 상황이 자주 발생합니다. 예를 들어 제목은 더 이상 표시할 수 없습니다. 초과 길이는... 다음 기능이 사용자의 요구를 충족할 수 있음을 의미합니다.

/* 
 Utf-8、gb2312都支持的汉字截取函数 
 cut_str(字符串, 截取长度, 开始长度, 编码); 
 编码默认为 utf-8 
 开始长度默认为 0 */ function cutStr($string, $sublen, $start = 0, $code = &#39;UTF-8&#39;){ 
    if($code == &#39;UTF-8&#39;){ 
        $pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/"; 
        preg_match_all($pa, $string, $t_string); 

        if(count($t_string[0]) - $start > $sublen) return join(&#39;&#39;, array_slice($t_string[0], $start, $sublen))."..."; 
        return join(&#39;&#39;, array_slice($t_string[0], $start, $sublen)); 
    }else{ 
        $start = $start*2; 
        $sublen = $sublen*2; 
        $strlen = strlen($string); 
        $tmpstr = &#39;&#39;; 

        for($i=0; $i<$strlen; $i++){ 
            if($i>=$start && $i<($start+$sublen)){ 
                if(ord(substr($string, $i, 1))>129){ 
                    $tmpstr.= substr($string, $i, 2); 
                }else{ 
                    $tmpstr.= substr($string, $i, 1); 
                } 
            } 
            if(ord(substr($string, $i, 1))>129) $i++; 
        } 
        if(strlen($tmpstr)<$strlen ) $tmpstr.= "..."; 
        return $tmpstr; 
    } 
}

사용 방법은 다음과 같습니다.

$str = "jQuery插件实现的加载图片和页面效果"; 
echo cutStr($str,16);

10. PHP로 클라이언트의 실제 IP를 가져옵니다

우리는 종종 사용자의 IP를 기록하기 위해 데이터베이스를 사용합니다.

//获取用户真实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[&#39;REMOTE_ADDR&#39;]) && $_SERVER[&#39;REMOTE_ADDR&#39;] && strcasecmp($_SERVER[&#39;REMOTE_ADDR&#39;], "unknown")) 
                    $ip = $_SERVER[&#39;REMOTE_ADDR&#39;]; 
                else 
                    $ip = "unknown"; 
    return ($ip); 
}

사용법은 다음과 같습니다.

echo getIp();

11. PHP는 SQL 주입을 방지합니다

데이터베이스를 쿼리할 때 보안상의 이유로 일부 불법 문자를 필터링하여 악의적인 SQL 주입을 방지해야 합니다.

function injCheck($sql_str) {  
    $check = preg_match(&#39;/select|insert|update|delete|&#39;|/*|*|../|./|union|into|load_file|outfile/&#39;, $sql_str);
    if ($check) { 
        echo &#39;非法字符!!&#39;; 
        exit; 
    } else { 
        return $sql_str; 
    } 
}

함수를 살펴보세요. 사용법은 다음과 같습니다.

echo injCheck(&#39;1 or 1=1&#39;);

12. PHP 페이지 팁 및 Jump

폼 작업을 수행할 때 친근감을 위해 사용자에게 작업 결과를 알리고 해당 페이지로 이동해야 하는 경우가 있습니다. 다음 함수:

function message($msgTitle,$message,$jumpUrl){ 
    $str = &#39;<!DOCTYPE HTML>&#39;; 
    $str .= &#39;<html>&#39;; 
    $str .= &#39;<head>&#39;; 
    $str .= &#39;<meta charset="utf-8">&#39;; 
    $str .= &#39;<title>页面提示</title>&#39;; 
    $str .= &#39;<style type="text/css">&#39;; 
    $str .= &#39;*{margin:0; padding:0}a{color:#369; text-decoration:none;}a:hover{text-decoration:underline}body{height:100%; font:12px/18px Tahoma, Arial,  sans-serif; color:#424242; background:#fff}.message{width:450px; height:120px; margin:16% auto; border:1px solid #99b1c4; background:#ecf7fb}.message h3{height:28px; line-height:28px; background:#2c91c6; text-align:center; color:#fff; font-size:14px}.msg_txt{padding:10px; margin-top:8px}.msg_txt h4{line-height:26px; font-size:14px}.msg_txt h4.red{color:#f30}.msg_txt p{line-height:22px}&#39;; 
    $str .= &#39;</style>&#39;; 
    $str .= &#39;</head>&#39;; 
    $str .= &#39;<body>&#39;; 
    $str .= &#39;<p class="message">&#39;; 
    $str .= &#39;<h3>&#39;.$msgTitle.&#39;</h3>&#39;; 
    $str .= &#39;<p class="msg_txt">&#39;; 
    $str .= &#39;<h4 class="red">&#39;.$message.&#39;</h4>&#39;; 
    $str .= &#39;<p>系统将在 <span style="color:blue;font-weight:bold">3</span> 秒后自动跳转,如果不想等待,直接点击 <a href="{$jumpUrl}">这里</a> 跳转</p>&#39;; 
    $str .= "<script>setTimeout(&#39;location.replace(&#39;".$jumpUrl."&#39;)&#39;,2000)</script>"; 
    $str .= &#39;</p>&#39;; 
    $str .= &#39;</p>&#39;; 
    $str .= &#39;</body>&#39;; 
    $str .= &#39;</html>&#39;; 
    echo $str; 
}

사용 방법은 다음과 같습니다.

message(&#39;操作提示&#39;,&#39;操作成功!&#39;,&#39;https://segmentfault.com/&#39;);

13.PHP 계산 시간

us 시간을 처리할 때 현재 시간부터 특정 시점까지의 시간을 계산해야 합니다. 클라이언트 실행 시간을 계산하려면 일반적으로 hh:mm:ss

function changeTimeType($seconds) { 
    if ($seconds > 3600) { 
        $hours = intval($seconds / 3600); 
        $minutes = $seconds % 3600; 
        $time = $hours . ":" . gmstrftime(&#39;%M:%S&#39;, $minutes); 
    } else { 
        $time = gmstrftime(&#39;%H:%M:%S&#39;, $seconds); 
    } 
    return $time; 
}

로 표시됩니다. 사용 방법은 다음과 같습니다.

$seconds = 3712; 
echo changeTimeType($seconds);

다음은 클라이언트 IP 및 문자를 가져오는 것입니다. 문자열 가로채기, 다운로드 등 자세한 내용은 다음 코드를 참조하세요:

<?php/**
 * 获取客户端IP
 * @return [string] [description]
 */function getClientIp() {
 $ip = NULL; if (isset($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])) {  $arr = explode(&#39;,&#39;, $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]);  $pos = array_search(&#39;unknown&#39;,$arr);  if(false !== $pos) unset($arr[$pos]);  $ip = trim($arr[0]);
 }elseif (isset($_SERVER[&#39;HTTP_CLIENT_IP&#39;])) {  $ip = $_SERVER[&#39;HTTP_CLIENT_IP&#39;];
 }elseif (isset($_SERVER[&#39;REMOTE_ADDR&#39;])) {  $ip = $_SERVER[&#39;REMOTE_ADDR&#39;];
 } // IP地址合法验证
 $ip = (false !== ip2long($ip)) ? $ip : &#39;0.0.0.0&#39;; return $ip;
}/**
 * 获取在线IP
 * @return String
 */function getOnlineIp($format=0) {
 global $S_GLOBAL; if(empty($S_GLOBAL[&#39;onlineip&#39;])) {  if(getenv(&#39;HTTP_CLIENT_IP&#39;) && strcasecmp(getenv(&#39;HTTP_CLIENT_IP&#39;), &#39;unknown&#39;)) {   $onlineip = getenv(&#39;HTTP_CLIENT_IP&#39;);
  } elseif(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;) && strcasecmp(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;), &#39;unknown&#39;)) {   $onlineip = getenv(&#39;HTTP_X_FORWARDED_FOR&#39;);
  } elseif(getenv(&#39;REMOTE_ADDR&#39;) && strcasecmp(getenv(&#39;REMOTE_ADDR&#39;), &#39;unknown&#39;)) {   $onlineip = getenv(&#39;REMOTE_ADDR&#39;);
  } elseif(isset($_SERVER[&#39;REMOTE_ADDR&#39;]) && $_SERVER[&#39;REMOTE_ADDR&#39;] && strcasecmp($_SERVER[&#39;REMOTE_ADDR&#39;], &#39;unknown&#39;)) {   $onlineip = $_SERVER[&#39;REMOTE_ADDR&#39;];
  }
  preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches);  $S_GLOBAL[&#39;onlineip&#39;] = $onlineipmatches[0] ? $onlineipmatches[0] : &#39;unknown&#39;;
 } if($format) {  $ips = explode(&#39;.&#39;, $S_GLOBAL[&#39;onlineip&#39;]);  for($i=0;$i<3;$i++) {   $ips[$i] = intval($ips[$i]);
  }  return sprintf(&#39;%03d%03d%03d&#39;, $ips[0], $ips[1], $ips[2]);
 } else {  return $S_GLOBAL[&#39;onlineip&#39;];
 }
}/**
 * 获取url
 * @return [type] [description]
 */function getUrl(){
 $pageURL = &#39;http&#39;; if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") { $pageURL .= "s";
 } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["HTTP_HOST"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
 } else { $pageURL .= $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
 } return $pageURL;
}/**
 * 获取当前站点的访问路径根目录
 * @return [type] [description]
 */function getSiteUrl() {
 $uri = $_SERVER[&#39;REQUEST_URI&#39;]?$_SERVER[&#39;REQUEST_URI&#39;]:($_SERVER[&#39;PHP_SELF&#39;]?$_SERVER[&#39;PHP_SELF&#39;]:$_SERVER[&#39;SCRIPT_NAME&#39;]); return &#39;http://&#39;.$_SERVER[&#39;HTTP_HOST&#39;].substr($uri, 0, strrpos($uri, &#39;/&#39;)+1);
}/**
 * 字符串截取,支持中文和其他编码
 * @param [string] $str  [字符串]
 * @param integer $start [起始位置]
 * @param integer $length [截取长度]
 * @param string $charset [字符串编码]
 * @param boolean $suffix [是否有省略号]
 * @return [type]   [description]
 */function msubstr($str, $start=0, $length=15, $charset="utf-8", $suffix=true) {
 if(function_exists("mb_substr")) {  return mb_substr($str, $start, $length, $charset);
 } elseif(function_exists(&#39;iconv_substr&#39;)) {  return iconv_substr($str,$start,$length,$charset);
 } $re[&#39;utf-8&#39;] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; $re[&#39;gb2312&#39;] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; $re[&#39;gbk&#39;] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; $re[&#39;big5&#39;] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
 preg_match_all($re[$charset], $str, $match); $slice = join("",array_slice($match[0], $start, $length)); if($suffix) {  return $slice."…";
 } return $slice;
}/**
 * php 实现js escape 函数
 * @param [type] $string [description]
 * @param string $encoding [description]
 * @return [type]   [description]
 */function escape($string, $encoding = &#39;UTF-8&#39;){
 $return = null; for ($x = 0; $x < mb_strlen($string, $encoding);$x ++)
 { $str = mb_substr($string, $x, 1, $encoding); if (strlen($str) > 1) { // 多字节字符
  $return .= "%u" . strtoupper(bin2hex(mb_convert_encoding($str, &#39;UCS-2&#39;, $encoding)));
 } else {  $return .= "%" . strtoupper(bin2hex($str));
 }
 } return $return;
}/**
 * php 实现 js unescape函数
 * @param [type] $str [description]
 * @return [type]  [description]
 */function unescape($str) {
 $str = rawurldecode($str);
 preg_match_all("/(?:%u.{4})|.{4};|&#\d+;|.+/U",$str,$r); $ar = $r[0]; foreach($ar as $k=>$v) {  if(substr($v,0,2) == "%u"){   $ar[$k] = iconv("UCS-2","utf-8//IGNORE",pack("H4",substr($v,-4)));
  } elseif(substr($v,0,3) == "") {   $ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,3,-1)));
  } elseif(substr($v,0,2) == "&#") {   echo substr($v,2,-1)."";   $ar[$k] = iconv("UCS-2","utf-8",pack("n",substr($v,2,-1)));
  }
 } return join("",$ar);
}/**
 * 数字转人名币
 * @param [type] $num [description]
 * @return [type]  [description]
 */function num2rmb ($num) {
 $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; $num = round($num, 2); $num = $num * 100; if (strlen($num) > 10) {  return "oh,sorry,the number is too long!";
 } $i = 0; $c = ""; while (1) {  if ($i == 0) {   $n = substr($num, strlen($num)-1, 1);
  } else {   $n = $num % 10;
  }  $p1 = substr($c1, 3 * $n, 3);  $p2 = substr($c2, 3 * $i, 3);  if ($n != &#39;0&#39; || ($n == &#39;0&#39; && ($p2 == &#39;亿&#39; || $p2 == &#39;万&#39; || $p2 == &#39;元&#39;))) {   $c = $p1 . $p2 . $c;
  } else {   $c = $p1 . $c;
  }  $i = $i + 1;  $num = $num / 10;  $num = (int)$num;  if ($num == 0) {   break;
  }
 } $j = 0; $slen = strlen($c); while ($j < $slen) {  $m = substr($c, $j, 6);  if ($m == &#39;零元&#39; || $m == &#39;零万&#39; || $m == &#39;零亿&#39; || $m == &#39;零零&#39;) {   $left = substr($c, 0, $j);   $right = substr($c, $j + 3);   $c = $left . $right;   $j = $j-3;   $slen = $slen-3;
  }  $j = $j + 3;
 } if (substr($c, strlen($c)-3, 3) == &#39;零&#39;) {  $c = substr($c, 0, strlen($c)-3);
 } // if there is a &#39;0&#39; on the end , chop it out
 return $c . "整";
}/**
 * 特殊的字符
 * @param [type] $str [description]
 * @return [type]  [description]
 */function makeSemiangle($str) {
 $arr = array(  &#39;0&#39; => &#39;0&#39;, &#39;1&#39; => &#39;1&#39;, &#39;2&#39; => &#39;2&#39;, &#39;3&#39; => &#39;3&#39;, &#39;4&#39; => &#39;4&#39;,  &#39;5&#39; => &#39;5&#39;, &#39;6&#39; => &#39;6&#39;, &#39;7&#39; => &#39;7&#39;, &#39;8&#39; => &#39;8&#39;, &#39;9&#39; => &#39;9&#39;,  &#39;A&#39; => &#39;A&#39;, &#39;B&#39; => &#39;B&#39;, &#39;C&#39; => &#39;C&#39;, &#39;D&#39; => &#39;D&#39;, &#39;E&#39; => &#39;E&#39;,  &#39;F&#39; => &#39;F&#39;, &#39;G&#39; => &#39;G&#39;, &#39;H&#39; => &#39;H&#39;, &#39;I&#39; => &#39;I&#39;, &#39;J&#39; => &#39;J&#39;,  &#39;K&#39; => &#39;K&#39;, &#39;L&#39; => &#39;L&#39;, &#39;M&#39; => &#39;M&#39;, &#39;N&#39; => &#39;N&#39;, &#39;O&#39; => &#39;O&#39;,  &#39;P&#39; => &#39;P&#39;, &#39;Q&#39; => &#39;Q&#39;, &#39;R&#39; => &#39;R&#39;, &#39;S&#39; => &#39;S&#39;, &#39;T&#39; => &#39;T&#39;,  &#39;U&#39; => &#39;U&#39;, &#39;V&#39; => &#39;V&#39;, &#39;W&#39; => &#39;W&#39;, &#39;X&#39; => &#39;X&#39;, &#39;Y&#39; => &#39;Y&#39;,  &#39;Z&#39; => &#39;Z&#39;, &#39;a&#39; => &#39;a&#39;, &#39;b&#39; => &#39;b&#39;, &#39;c&#39; => &#39;c&#39;, &#39;d&#39; => &#39;d&#39;,  &#39;e&#39; => &#39;e&#39;, &#39;f&#39; => &#39;f&#39;, &#39;g&#39; => &#39;g&#39;, &#39;h&#39; => &#39;h&#39;, &#39;i&#39; => &#39;i&#39;,  &#39;j&#39; => &#39;j&#39;, &#39;k&#39; => &#39;k&#39;, &#39;l&#39; => &#39;l&#39;, &#39;m&#39; => &#39;m&#39;, &#39;n&#39; => &#39;n&#39;,  &#39;o&#39; => &#39;o&#39;, &#39;p&#39; => &#39;p&#39;, &#39;q&#39; => &#39;q&#39;, &#39;r&#39; => &#39;r&#39;, &#39;s&#39; => &#39;s&#39;,  &#39;t&#39; => &#39;t&#39;, &#39;u&#39; => &#39;u&#39;, &#39;v&#39; => &#39;v&#39;, &#39;w&#39; => &#39;w&#39;, &#39;x&#39; => &#39;x&#39;,  &#39;y&#39; => &#39;y&#39;, &#39;z&#39; => &#39;z&#39;,  &#39;(&#39; => &#39;(&#39;, &#39;)&#39; => &#39;)&#39;, &#39;〔&#39; => &#39;[&#39;, &#39;〕&#39; => &#39;]&#39;, &#39;【&#39; => &#39;[&#39;,  &#39;】&#39; => &#39;]&#39;, &#39;〖&#39; => &#39;[&#39;, &#39;〗&#39; => &#39;]&#39;, &#39;{&#39; => &#39;{&#39;, &#39;}&#39; => &#39;}&#39;, &#39;《&#39; => &#39;<&#39;,  &#39;》&#39; => &#39;>&#39;,  &#39;%&#39; => &#39;%&#39;, &#39;+&#39; => &#39;+&#39;, &#39;—&#39; => &#39;-&#39;, &#39;-&#39; => &#39;-&#39;, &#39;~&#39; => &#39;-&#39;,  &#39;:&#39; => &#39;:&#39;, &#39;。&#39; => &#39;.&#39;, &#39;、&#39; => &#39;,&#39;, &#39;,&#39; => &#39;.&#39;, &#39;、&#39; => &#39;.&#39;,  &#39;;&#39; => &#39;;&#39;, &#39;?&#39; => &#39;?&#39;, &#39;!&#39; => &#39;!&#39;, &#39;…&#39; => &#39;-&#39;, &#39;‖&#39; => &#39;|&#39;,  &#39;”&#39; => &#39;"&#39;, &#39;“&#39; => &#39;"&#39;, &#39;&#39;&#39; => &#39;`&#39;, &#39;‘&#39; => &#39;`&#39;, &#39;|&#39; => &#39;|&#39;, &#39;〃&#39; => &#39;"&#39;,
  &#39; &#39; => &#39; &#39;,&#39;.&#39; => &#39;.&#39;);
 return strtr($str, $arr);
}

/**
 * 下载
 * @param [type] $filename [description]
 * @param string $dir  [description]
 * @return [type]   [description]
 */
function downloads($filename,$dir=&#39;./&#39;){
 $filepath = $dir.$filename;
 if (!file_exists($filepath)){
  header("Content-type: text/html; charset=utf-8");
  echo "File not found!";
  exit;
 } else {
  $file = fopen($filepath,"r");
  Header("Content-type: application/octet-stream");
  Header("Accept-Ranges: bytes");
  Header("Accept-Length: ".filesize($filepath));
  Header("Content-Disposition: attachment; filename=".$filename);
  echo fread($file, filesize($filepath));
  fclose($file);
 }
}

/**
 * 创建一个目录树
 * @param [type] $dir [description]
 * @param integer $mode [description]
 * @return [type]  [description]
 */
function mkdirs($dir, $mode = 0777) {
 if (!is_dir($dir)) {
  mkdirs(dirname($dir), $mode);
  return mkdir($dir, $mode);
 }
 return true;
}

관련 권장사항:

PHP의 문자열 연산 기능 요약

php 폴더 삭제 작업 기능 및 여러 방법 예제 코드 요약

일반적으로 사용되는 문자열 조작 함수 요약 PHP

위 내용은 일반적으로 사용되는 PHP 연산 기능 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.