标签:
本文实例总结了一些在php应用开发中常用到的函数,这些函数有字符操作,文件操作及其它的一些操作了,分享给大家供大家参考。具体如下:
1、PHP加密解密
PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。
使用方法如下:
2、PHP生成随机字符串
当我们需要生成一个随机名字,临时密码等字符串时可以用到下面的函数:
使用方法如下:
3、PHP获取文件扩展名(后缀)
以下函数可以快速获取文件的扩展名即后缀。
使用方法如下:
4、PHP获取文件大小并格式化
以下使用的函数可以获取文件的大小,并且转换成便于阅读的KB,MB等格式。
使用方法如下:
5、PHP替换标签字符
有时我们需要将字符串、模板标签替换成指定的内容,可以用到下面的函数:
使用方法如下:
6、PHP列出目录下的文件名
如果你想列出目录下的所有文件,使用以下代码即可:
使用方法如下:
7、PHP获取当前页面URL
以下函数可以获取当前页面的URL,不管是http还是https。
使用方法如下:
8、PHP强制下载文件
有时我们不想让浏览器直接打开文件,如PDF文件,而是要直接下载文件,那么以下函数可以强制下载文件,函数中使用了application/octet-stream头类型。
使用方法如下:
9、PHP截取字符串长度
我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用...表示,以下函数可以满足你的需求。
使用方法如下:
10、PHP获取客户端真实IP
我们经常要用数据库记录用户的IP,以下代码可以获取客户端真实的IP:
使用方法如下:
11、PHP防止SQL注入
我们在查询数据库时,出于安全考虑,需要过滤一些非法字符防止SQL恶意注入,请看一下函数:
使用方法如下:
12、PHP页面提示与跳转
我们在进行表单操作时,有时为了友好需要提示用户操作结果,并跳转到相关页面,请看以下函数:
使用方法如下:
13、PHP计算时长
我们在处理时间时,需要计算当前时间距离某个时间点的时长,如计算客户端运行时长,通常用hh:mm:ss表示。
使用方法如下:
希望本文所述对大家的PHP程序设计有所帮助。
下面特为大家加点料希望大家能喜欢:
本文汇总了常用的PHP函数,包括获取客户端IP,字符串截取,下载等,详情请查看如下代码:
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
124 
125 
126 
127 
128 
129 
130 
131 
132 
133 
134 
135 
136 
137 
138 
139 
140 
141 
142 
143 
144 
145 
146 
147 
148 
149 
150 
151 
152 
153 
154 
155 
156 
157 
158 
159 
160 
161 
162 
163 
164 
165 
166 
167 
168 
169 
170 
171 
172 
173 
174 
175 
176 
177 
178 
179 
180 
181 
182 
183 
184 
185 
186 
187 
188 
189 
190 
191 
192 
193 
194 
195 
196 
197 
198 
199 
200 
201 
202 
203 
204 
205 
206 
207 
208 
209 
210 
211 
212 
213 
214 
215 
216 
217 
218 
219 
220 
221 
222 
223 
224 
225 
226 
227 
228 
229 
230 
231 
232 
233 
234 
235 
236 
237 
238 
239 
240 
241 
242 
243 
244 
245 
246 
247 
248 
249 
250 
251 
252 
253 
254 
255 
256 
257 
258 
259 
260 
261 
262 
263 
264 
265 
266 
267 
268 
269 
270 
271 
272 
273 
 | 
<?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)) ? $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] ? $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‘]?$_SERVER[‘REQUEST_URI‘]:($_SERVER[‘PHP_SELF‘]?$_SERVER[‘PHP_SELF‘]:$_SERVER[‘SCRIPT_NAME‘]);}/** * 字符串截取,支持中文和其他编码 * @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("/(?:%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‘,  ‘(‘ => ‘(‘, ‘)‘ => ‘)‘, ‘〔‘ => ‘[‘, ‘〕‘ => ‘]‘, ‘【‘ => ‘[‘,  ‘】‘ => ‘]‘, ‘〖‘ => ‘[‘, ‘〗‘ => ‘]‘, ‘{‘ => ‘{‘, ‘}‘ => ‘}‘, ‘《‘ => ‘<‘,  ‘》‘ => ‘>‘,  ‘%‘ => ‘%‘, ‘+‘ => ‘+‘, ‘—‘ => ‘-‘, ‘-‘ => ‘-‘, ‘~‘ => ‘-‘,  ‘:‘ => ‘:‘, ‘。‘ => ‘.‘, ‘、‘ => ‘,‘, ‘,‘ => ‘.‘, ‘、‘ => ‘.‘,  ‘;‘ => ‘;‘, ‘?‘ => ‘?‘, ‘!‘ => ‘!‘, ‘…‘ => ‘-‘, ‘‖‘ => ‘|‘,  ‘”‘ => ‘"‘, ‘“‘ => ‘"‘, ‘‘‘ => ‘`‘, ‘‘‘ => ‘`‘, ‘|‘ => ‘|‘, ‘〃‘ => ‘"‘,  ‘ ‘ => ‘ ‘,‘.‘ => ‘.‘); 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;} | 
标签:
原文地址:http://www.cnblogs.com/xp796/p/5215470.html