非常实用的PHP常用函数汇总
本文实例总结了一些在php应用开发中常用到的函数,这些函数有字符操作,文件操作及其它的一些操作了,分享给大家供大家参考。具体如下:
1、PHP加密解密
PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。
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;
}
}
使用方法如下:
//加密:
echo encryptDecrypt('password', 'Helloweba欢迎您',0);
//解密:
echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);
2、PHP生成随机字符串
当我们需要生成一个随机名字,临时密码等字符串时可以用到下面的函数:
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
使用方法如下:
3、PHP获取文件扩展名(后缀)
以下函数可以快速获取文件的扩展名即后缀。
$myext = substr($filename, strrpos($filename, '.'));
return str_replace('.','',$myext);
}
使用方法如下:
echo getExtension($filename);
4、PHP获取文件大小并格式化
以下使用的函数可以获取文件的大小,并且转换成便于阅读的KB,MB等格式。
$sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
if ($size == 0) {
return('n/a');
} else {
return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]);
}
}
使用方法如下:
echo formatSize($thefile);
5、PHP替换标签字符
有时我们需要将字符串、模板标签替换成指定的内容,可以用到下面的函数:
$result = str_replace(array_keys($replacer), array_values($replacer),$string);
return $result;
}
使用方法如下:
$replace_array = array('{b}' => '<b>','{/b}' => '</b>','{br}' => '<br />');
echo stringParser($string,$replace_array);
6、PHP列出目录下的文件名
如果你想列出目录下的所有文件,使用以下代码即可:
if($dir = opendir($DirPath)){
while(($file = readdir($dir))!== false){
if(!is_dir($DirPath.$file))
{
echo "filename: $file<br />";
}
}
}
}
使用方法如下:
7、PHP获取当前页面URL
以下函数可以获取当前页面的URL,不管是http还是https。
$pageURL = 'http';
if (!empty($_SERVER['HTTPS'])) {$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;
}
使用方法如下:
8、PHP强制下载文件
有时我们不想让浏览器直接打开文件,如PDF文件,而是要直接下载文件,那么以下函数可以强制下载文件,函数中使用了application/octet-stream头类型。
if ((isset($filename))&&(file_exists($filename))){
header("Content-length: ".filesize($filename));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
readfile("$filename");
} else {
echo "Looks like file does not exist!";
}
}
使用方法如下:
9、PHP截取字符串长度
我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用...表示,以下函数可以满足你的需求。
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/
function 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));
}else{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
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;
}
}
使用方法如下:
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['REMOTE_ADDR']) &&
$_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],
"unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return ($ip);
}
使用方法如下:
11、PHP防止SQL注入
我们在查询数据库时,出于安全考虑,需要过滤一些非法字符防止SQL恶意注入,请看一下函数:
$check = preg_match('/select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile/', $sql_str);
if ($check) {
echo '非法字符!!';
exit;
} else {
return $sql_str;
}
}
使用方法如下:
12、PHP页面提示与跳转
我们在进行表单操作时,有时为了友好需要提示用户操作结果,并跳转到相关页面,请看以下函数:
$str = '<!DOCTYPE HTML>';
$str .= '<html>';
$str .= '<head>';
$str .= '<meta charset="utf-8">';
$str .= '<title>页面提示</title>';
$str .= '<style type="text/css">';
$str .= '*{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}';
$str .= '</style>';
$str .= '</head>';
$str .= '<body>';
$str .= '<div class="message">';
$str .= '<h3>'.$msgTitle.'</h3>';
$str .= '<div class="msg_txt">';
$str .= '<h4 class="red">'.$message.'</h4>';
$str .= '<p>系统将在 <span
style="color:blue;font-weight:bold">3</span> 秒后自动跳转,如果不想等待,直接点击
<a href="{$jumpUrl}">这里</a> 跳转</p>';
$str .= "<script>setTimeout('location.replace('".$jumpUrl."')',2000)</script>";
$str .= '</div>';
$str .= '</div>';
$str .= '</body>';
$str .= '</html>';
echo $str;
}
使用方法如下:
13、PHP计算时长
我们在处理时间时,需要计算当前时间距离某个时间点的时长,如计算客户端运行时长,通常用hh:mm:ss表示。
if ($seconds > 3600) {
$hours = intval($seconds / 3600);
$minutes = $seconds % 3600;
$time = $hours . ":" . gmstrftime('%M:%S', $minutes);
} else {
$time = gmstrftime('%H:%M:%S', $seconds);
}
return $time;
}
使用方法如下:
echo changeTimeType($seconds);
希望本文所述对大家的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; } |
非常实用的PHP常用函数汇总的更多相关文章
- php常用函数汇总
php常用函数汇总 字符串截取: 1.substr('要截取的字符串','从第几个字符开始','到第几个字符结束'); * 截取英文或者数字 ...
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总
PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...
- 思迈特软件Smartbi:Excel数据分析常用函数汇总!
多传统行业的数据分析师只要求掌握Excel即可,会SPSS/SAS是加分项.即使在挖掘满街走,Python不如狗的互联网数据分析界,Excel也是不可替代的. Excel是我们工作中经常使用的一种工具 ...
- Mysql常用函数汇总-经典实用
以下是对mysql中的常用函数进行了汇总介绍.需要的朋友可以过来参考下. 一.数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x ...
- JavaScript之Array常用函数汇总
[20141121]JavaScript之Array常用功能汇总 *:first-child { margin-top: 0 !important; } body>*:last-child { ...
- OpenCV图像处理中常用函数汇总(1)
//俗话说:好记性不如烂笔头 //用到opencv 中的函数时往往会一时记不起这个函数的具体参数怎么设置,故在此将常用函数做一汇总: Mat srcImage = imread("C:/Us ...
- mysql常用函数汇总(分享)
以下是对mysql中的常用函数进行了汇总介绍.需要的朋友可以过来参考下. 一.数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x ...
- Mysql 常用函数(1)- 常用函数汇总
Mysql常用函数的汇总,可看下面系列文章 Mysql常用函数有哪几类 数值型函数 字符串型函数 日期时间函数 聚合函数 流程控制函数 数值型函数 函数名称 作用 ABS 求绝对值 SQRT 求二次方 ...
- TensorFlow 常用函数汇总
本文介绍了tensorflow的常用函数,源自网上整理. TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU.一般你不需要显式指定使用 CPU ...
随机推荐
- js实现幻灯片播放图片示例代码
幻灯片播放图片的效果想必大家都有见到过吧,下面有个不错的示例,感兴趣的朋友可以参考下 复制代码代码如下: <select id="img_date" style=" ...
- 【 java版坦克大战--事件处理】 坦克动起来了
折腾了这么久,坦克总算能动了.只贴代码编辑不给上首页,花了半个小时的时间写了n多注释. 再顺便把绘图的原理发在这里: 绘图原理 Component类提供了两个和绘图有关的重要方法: ① paint ...
- alibaba的COBAR真是强大.
近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家.Cobar是阿里巴巴研发的关系型数据 的分布式处理系统,该产品成功替代了原先基于Oracle ...
- ubuntu13.10 登陆后黑屏,没有菜单栏,可以启动termina,怎么解决?
最近在学习openGL,自己的电脑是intel集显加nvidia GT630M,本来想应该可以支持到opengl4以上的,可是发现nvidia的显卡由于驱动问题,好像一直没有用到,所以只支持了open ...
- jquery多级手风琴插件–accordion.js
手风琴菜单一般用于下拉导航,由于外观非常简洁,使用起来跟手风琴一样可以拉伸和收缩而得名,项目中适当应用手风琴效果会给用户带来非常好的体验.本文借助jQuery插件轻松打造一个非常不错的手风琴效果的菜单 ...
- 移动周报:十款最实用的Android UI设计工具
上一周可以说是一个不断Mark周,从最实用的Android UI设计工具.免费移动应用测试框架推荐,到HTML5开发框架等等,各种开发工具.框架精彩丰呈,看得小伙伴们是不亦乐乎.当然,还有不容错过的M ...
- andriod系统裁剪心得
亲们,,有人做过 将android系统总内存减少,并保持系统的稳定运行 方面的么?...比如将512M的内存换成256M,系统依然稳定运行,, 我目前,从三个方面下手,,,1.删减系统中不需要使用的a ...
- Linux libtins 库安装教程
因为工作原因需要用到libtins网络库, 所以今天去装一下. 很尴尬,由于本人对linux理解比较浅, 所以在中途遇到了一些问题. 虽然只是简单的安装步骤,但是阻挡不了自己菜啊. 一. 下载lib ...
- (转载)http_build_query用法,挺方便的
(转载)http://www.cnblogs.com/zhja/archive/2012/11/10/2764174.html http_build_query (PHP 5) http_build_ ...
- C# partial 局部类型
关键字partial是一个上下文关键字,只有和 class.struct.interface 放在一起时才有关键字的含义.因此partial的引入不会影响现有代码中名称为partial的变量.局部类型 ...