>백엔드 개발 >PHP 튜토리얼 >일반적인 PHP 함수_php 기술에 대한 매우 실용적인 요약

일반적인 PHP 함수_php 기술에 대한 매우 실용적인 요약

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-16 20:28:20984검색

이 문서의 예제에는 PHP 애플리케이션 개발에 일반적으로 사용되는 일부 기능이 요약되어 있습니다. 이러한 기능에는 참조용으로 공유되는 문자 작업, 파일 작업 및 기타 작업이 포함됩니다. 세부 내용은 다음과 같습니다.

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");           $decrypted 반환
}그밖에{
          $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))))
          $암호화 반환
}
}
사용방법:

코드 복사 코드는 다음과 같습니다.
//다음은 "Helloweba Welcomes you"라는 문자열을 암호화하고 복호화하는 것입니다. " 각각
//암호화:
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 ff7005d15eef61905e1f9e74ef22751b 'a4b561c25d9afb9ac8dc4d70affff419','{/b}' => '0d36329ec37a2cc24d42c7229b69747a','{br}' => '3758937f2e19267c4b26eb8fbb84b4a2')

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 "파일 이름: $filedf250b2156c434f3390392d09b1c9563"; ~            }
}
}

사용방법:


코드 복사 코드는 다음과 같습니다.listDirFiles('home/some_folder/');
7. PHP가 현재 페이지 URL을 가져옵니다

다음 함수는 http인지 https인지 현재 페이지의 URL을 가져올 수 있습니다.


코드 복사 코드는 다음과 같습니다.function curPageURL() { $pageURL = 'http'
If (!empty($_SERVER['HTTPS'])) {$pageURL .= "s";}
$pageURL .= "://"
If ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]
} 다른 {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]
}
$pageURL 반환
}

사용방법:


코드 복사 코드는 다음과 같습니다.echo curPageURL();
8. PHP 강제 파일 다운로드

때때로 브라우저가 PDF 파일과 같은 파일을 직접 열지 않고 파일을 직접 다운로드하기를 원하는 경우 다음 기능을 사용하여 파일을 강제로 다운로드할 수 있습니다. application/octet-stream 헤더 유형. 함수에 사용됩니다.


코드 복사 코드는 다음과 같습니다.
기능 다운로드($filename){
If ((isset($filename))&&(file_exists($filename))){
header("콘텐츠 길이: ".filesize($filename))
header('콘텐츠 유형: 애플리케이션/옥텟-스트림')
header('콘텐츠 처리: attachment; filename="' . $filename . '"');         readfile("$filename")
} 다른 {
echo "파일이 없는 것 같습니다!"; }
}

사용방법:


코드 복사 코드는 다음과 같습니다.download('/down/test_45f73e852.zip');
9. PHP가 문자열 길이를 가로챕니다
문자열(한자 포함)의 길이를 가로채야 하는 상황이 종종 발생합니다. 예를 들어, 제목은 몇 글자 이상을 표시할 수 없습니다.... 다음 함수는 다음과 같습니다. 귀하의 요구를 충족하십시오.


Utf-8 및 gb2312에서 지원되는 한자 가로채기 기능
cut_str(문자열, 절단 길이, 시작 길이, 인코딩)
인코딩 기본값은 utf-8
기본 시작 길이는 0입니다.
*/
함수 cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){
If($code == 'UTF-8'){
$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('', array_slice($t_string[0], $start, $sublen))."..."
            return Join('', array_slice($t_string[0], $start, $sublen))
}그밖에{
           $start = $start*2
          $sublen = $sublen*2
          $strlen = strlen($string)
          $tmpstr = ''

for($i=0; $ia889d784f331fddc8aa3c090e2651d5c=$start && $i0902a95bc0f8ee385c2b3ee7733c05fe129){
$tmpstr.= substr($string, $i, 2)
                     }else{
$tmpstr.= substr($string, $i, 1)
~                }
If(ord(substr($string, $i, 1))>129) $i
           }
If(strlen($tmpstr)e2b9cad5745d9f515c0fb988a23879a6';
    $str .= '100db36a723c770d327fc0aef2ce13b1';
    $str .= 'ce85d6a2166a96f6c9307cc45358a10f';
    $str .= '09477266eebbc8a01f42387ae29e71dd';
    $str .= 'b2386ffb911b14667cb8f0f91ea547a7마운트 화면6e916e0f7d1e588d4f442bf645aedb2f';
    $str .= '080b747a20f9163200dd0a7d304ba388';
    $str .= '*{마진:0; 패딩:0}a{color:#369; 텍스트 장식:없음;}a:hover{텍스트-장식:밑줄}본문{높이:100%; 글꼴: 12px/18px Tahoma, Arial,  sans-serif; 색상:#424242; 배경:#fff}.message{너비:450px; 높이:120px; 마진:16% 자동; 테두리:1px 솔리드 #99b1c4; 배경:#ecf7fb}.message h3{높이:28px; 줄 높이:28px; 배경:#2c91c6; 텍스트 정렬:가운데; 색상:#fff; 글꼴 크기:14px}.msg_txt{패딩:10px; margin-top:8px}.msg_txt h4{line-height:26px; 글꼴 크기:14px}.msg_txt h4.red{color:#f30}.msg_txt p{line-height:22px}';
    $str .= '71da3770f34b4fb716c9a32128458262';
    $str .= '9c3bca370b5104690d9ef395f2c5f8d1';
    $str .= '34ae8493dde813a395bddcfb01a37504';
    $str .= '8aed5611a90dad0f40e08578c88bce37';
    $str .= '684271ed9684bde649abda8831d4d355'.$msgTitle.'39528cedfa926ea0c01e69ef5b2ea9b0';
    $str .= 'f182d94a28f97f9d7300069876253c44';
    $str .= 'a1203d054b944719deaa191ff8e134d7'.$message.'0f6dfd1e3624ce5465eb402e300e01ae';
    $str .= 'e388a4556c0f65e1904146cc1a846bee系统将재 5d41297248631979dcb2e1678c0a3c2c354bdf357c58b8a65c66d7c19c8e4d114 秒后自动跳转,如果不想等待,直接点击 3ccaf66e0fc6d7c0765e746a50ba2af9这里5db79b134e9f6b82c0b36e0489ee08ed 跳转94b3e26ee717c64999d7867364b1b4a3';
    $str .= "3f1c4e4b6b16bbbd69b2ee476dc4f83asetTimeout('location.replace('".$jumpUrl."')',2000)2cacc6d41bbb37262a98f745aa00fbf0";
    $str .= '16b28748ea4df4d9c2150843fecfba68';
    $str .= '16b28748ea4df4d9c2150843fecfba68';
    $str .= '36cc49f0c466276486e50c850b7e4956';
    $str .= '73a6ac4ed44ffec12cee46588e518a5e';
    에코 $str;
}

使사용방법如下:
复代码码 代码如下:
message('操작提示','操작성功!','http:// www.jb51.net/');

13、PHP计算时长

저희는 需要计算当前时间距离某个时间点的时长, 如计算客户端运行时长, 일반적으로 hh:mm:ss表에 있습니다.示。

复代码 代码如下:
functionchangeTimeType($seconds) {
    if ($초 > 3600) {
        $시간 = intval($초 / 3600);
        $분 = $초 % 3600;
        $시간 = $시간 . ":" . gmstrftime('%M:%S', $분);
    } 다른 {
        $time = gmstrftime('%H:%M:%S', $초);
    }
    $time을 반환합니다.
}

使사용방법如下:
复代码 代码如下:
$seconds = 3712;
echochangeTimeType($초);

希望本文所述对大家的PHP程序设计有所帮助。

하면特为大家加点料希望大家能喜欢:

本文汇总了常用的PHP函数,包括获取客户端IP,字符串截取,下载等,详情请查看如下代码:

<&#63;php
/**
 * 获取客户端IP
 * @return [string] [description]
 */
function getClientIp() {
 $ip = NULL;
 if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
  $pos = array_search('unknown',$arr);
  if(false !== $pos) unset($arr[$pos]);
  $ip = trim($arr[0]);
 }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
  $ip = $_SERVER['HTTP_CLIENT_IP'];
 }elseif (isset($_SERVER['REMOTE_ADDR'])) {
  $ip = $_SERVER['REMOTE_ADDR'];
 }
 // IP地址合法验证
 $ip = (false !== ip2long($ip)) &#63; $ip : '0.0.0.0';
 return $ip;
}

/**
 * 获取在线IP
 * @return String
 */
function getOnlineIp($format=0) {
 global $S_GLOBAL;
 if(empty($S_GLOBAL['onlineip'])) {
  if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
   $onlineip = getenv('HTTP_CLIENT_IP');
  } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
   $onlineip = getenv('HTTP_X_FORWARDED_FOR');
  } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
   $onlineip = getenv('REMOTE_ADDR');
  } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
   $onlineip = $_SERVER['REMOTE_ADDR'];
  }
  preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches);
  $S_GLOBAL['onlineip'] = $onlineipmatches[0] &#63; $onlineipmatches[0] : 'unknown';
 }

 if($format) {
  $ips = explode('.', $S_GLOBAL['onlineip']);
  for($i=0;$i<3;$i++) {
   $ips[$i] = intval($ips[$i]);
  }
  return sprintf('%03d%03d%03d', $ips[0], $ips[1], $ips[2]);
 } else {
  return $S_GLOBAL['onlineip'];
 }
}



/**
 * 获取url
 * @return [type] [description]
 */
function getUrl(){
 $pageURL = 'http';
 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['REQUEST_URI']&#63;$_SERVER['REQUEST_URI']:($_SERVER['PHP_SELF']&#63;$_SERVER['PHP_SELF']:$_SERVER['SCRIPT_NAME']);
 return 'http://'.$_SERVER['HTTP_HOST'].substr($uri, 0, strrpos($uri, '/')+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('iconv_substr')) {
  return iconv_substr($str,$start,$length,$charset);
 }
 $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
 $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
 $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
 $re['big5'] = "/[\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 = 'UTF-8'){
 $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, 'UCS-2', $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("/(&#63;:%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 != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
   $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 == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
   $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) == '零') {
  $c = substr($c, 0, strlen($c)-3);
 } // if there is a '0' on the end , chop it out
 return $c . "整";
}

/**
 * 特殊的字符
 * @param [type] $str [description]
 * @return [type]  [description]
 */
function makeSemiangle($str) {
 $arr = array(
  '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4',
  '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9',
  'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E',
  'F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J',
  'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O',
  'P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T',
  'U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y',
  'Z' => 'Z', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd',
  'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i',
  'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n',
  'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's',
  't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x',
  'y' => 'y', 'z' => 'z',
  '(' => '(', ')' => ')', '〔' => '[', '〕' => ']', '【' => '[',
  '】' => ']', '〖' => '[', '〗' => ']', '{' => '{', '}' => '}', '《' => '<',
  '》' => '>',
  '%' => '%', '+' => '+', '—' => '-', '-' => '-', '~' => '-',
  ':' => ':', '。' => '.', '、' => ',', ',' => '.', '、' => '.',
  ';' => ';', '?' => '&#63;', '!' => '!', '…' => '-', '‖' => '|',
  '”' => '"', '“' => '"', ''' => '`', '‘' => '`', '|' => '|', '〃' => '"',
  ' ' => ' ','.' => '.');
 return strtr($str, $arr);
}

/**
 * 下载
 * @param [type] $filename [description]
 * @param string $dir  [description]
 * @return [type]   [description]
 */
function downloads($filename,$dir='./'){
 $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;
}

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