1. PHP可阅读随机字符串 |
002 |
003 |
此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。 |
004 |
005 |
/************** |
006 |
*@length – length of random string (must be a multiple of 2) |
007 |
**************/ |
008 |
function readable_random_string( $length = 6){
|
009 |
$conso = array (“b”,”c”,”d”,”f”,”g”,”h”,”j”,”k”,”l”,
|
010 |
“m”,”n”,”p”,”r”,”s”,”t”,”v”,”w”,”x”,”y”,”z”); |
011 |
$vocal = array (“a”,”e”,”i”,”o”,”u”);
|
012 |
$password =”";
|
013 |
srand ((double)microtime()*1000000); |
014 |
$max = $length /2;
|
015 |
for ( $i =1; $i <= $max ; $i ++)
|
016 |
{ |
017 |
$password .= $conso [rand(0,19)];
|
018 |
$password .= $vocal [rand(0,4)];
|
019 |
} |
020 |
return $password ;
|
021 |
} |
022 |
023 |
2. PHP生成一个随机字符串 |
024 |
025 |
如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。 |
026 |
027 |
/************* |
028 |
*@l – length of random string |
029 |
*/ |
030 |
function generate_rand( $l ){
|
031 |
$c = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789″;
|
032 |
srand((double)microtime()*1000000); |
033 |
for ( $i =0; $i < $l ; $i ++) {
|
034 |
$rand .= $c [rand()% strlen ( $c )];
|
035 |
} |
036 |
return $rand ;
|
037 |
} |
038 |
039 |
3. PHP编码电子邮件地址 |
040 |
041 |
使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。 |
042 |
043 |
function encode_email( $email =’info@domain.com’, $linkText =’Contact Us’, $attrs =’ class =”emailencoder”‘ )
|
044 |
{ |
045 |
// remplazar aroba y puntos |
046 |
$email = str_replace (‘@’, ‘@’, $email );
|
047 |
$email = str_replace (‘.’, ‘.’, $email );
|
048 |
$email = str_split ( $email , 5);
|
049 |
050 |
$linkText = str_replace (‘@’, ‘@’, $linkText );
|
051 |
$linkText = str_replace (‘.’, ‘.’, $linkText );
|
052 |
$linkText = str_split ( $linkText , 5);
|
053 |
054 |
$part1 = ‘ $part2 = ‘ilto:’;
|
055 |
$part3 = ‘” ‘. $attrs .’ >’;
|
056 |
$part4 = ‘’;
|
057 |
058 |
$encoded = ‘’;
|
059 |
060 |
return $encoded ;
|
061 |
} |
062 |
063 |
4. PHP验证邮件地址 |
064 |
065 |
电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。 |
066 |
067 |
function is_valid_email( $email , $test_mx = false)
|
068 |
{ |
069 |
if ( eregi (“^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$”, $email ))
|
070 |
if ( $test_mx )
|
071 |
{ |
072 |
list( $username , $domain ) = split(“@”, $email );
|
073 |
return getmxrr ( $domain , $mxrecords );
|
074 |
} |
075 |
else |
076 |
return true;
|
077 |
else |
078 |
return false;
|
079 |
} |
080 |
081 |
5. PHP列出目录内容 |
082 |
083 |
function list_files( $dir )
|
084 |
{ |
085 |
if ( is_dir ( $dir ))
|
086 |
{ |
087 |
if ( $handle = opendir( $dir ))
|
088 |
{ |
089 |
while (( $file = readdir( $handle )) !== false)
|
090 |
{ |
091 |
if ( $file != “.” && $file != “..” && $file != “Thumbs.db”)
|
092 |
{ |
093 |
echo ‘’. $file .’
|
094 |
’.”\n”; |
095 |
} |
096 |
} |
097 |
closedir ( $handle );
|
098 |
} |
099 |
} |
100 |
} |
101 |
102 |
6. PHP销毁目录 |
103 |
104 |
删除一个目录,包括它的内容。 |
105 |
106 |
/***** |
107 |
*@dir – Directory to destroy |
108 |
*@virtual[optional]- whether a virtual directory |
109 |
*/ |
110 |
function destroyDir( $dir , $virtual = false)
|
111 |
{ |
112 |
$ds = DIRECTORY_SEPARATOR;
|
113 |
$dir = $virtual ? realpath ( $dir ) : $dir ;
|
114 |
$dir = substr ( $dir , -1) == $ds ? substr ( $dir , 0, -1) : $dir ;
|
115 |
if ( is_dir ( $dir ) && $handle = opendir( $dir ))
|
116 |
{ |
117 |
while ( $file = readdir( $handle ))
|
118 |
{ |
119 |
if ( $file == ‘.’ || $file == ‘..’)
|
120 |
{ |
121 |
continue ;
|
122 |
} |
123 |
elseif ( is_dir ( $dir . $ds . $file ))
|
124 |
{ |
125 |
destroyDir( $dir . $ds . $file );
|
126 |
} |
127 |
else |
128 |
{ |
129 |
unlink( $dir . $ds . $file );
|
130 |
} |
131 |
} |
132 |
closedir ( $handle );
|
133 |
rmdir ( $dir );
|
134 |
return true;
|
135 |
} |
136 |
else |
137 |
{ |
138 |
return false;
|
139 |
} |
140 |
} |
141 |
142 |
7. PHP解析 JSON 数据 |
143 |
144 |
与大多数流行的 Web 服务如 twitter 通过开放 API 来提供数据一样,它总是能够知道如何解析 API 数据的各种传送格式,包括 JSON,XML 等等。 |
145 |
146 |
$json_string =’{“id”:1,”name”:”foo”,”email”:”foo@foobar.com”,”interest”:[ "wordpress" , "php" ]} ‘;
|
147 |
$obj =json_decode( $json_string );
|
148 |
echo $obj ->name; //prints foo
|
149 |
echo $obj ->interest[1]; //prints php
|
150 |
151 |
8. PHP解析 XML 数据 |
152 |
153 |
//xml string |
154 |
$xml_string =”
|
155 |
156 |
157 |
Foo |
158 |
foo@bar.com |
159 |
160 |
161 |
Foobar |
162 |
foobar@foo.com |
163 |
164 |
”; |
165 |
166 |
//load the xml string using simplexml |
167 |
$xml = simplexml_load_string( $xml_string );
|
168 |
169 |
//loop through the each node of user |
170 |
foreach ( $xml ->user as $user )
|
171 |
{ |
172 |
//access attribute |
173 |
echo $user [ 'id' ], ‘ ‘;
|
174 |
//subnodes are accessed by -> operator |
175 |
echo $user ->name, ‘ ‘;
|
176 |
echo $user ->email, ‘
|
177 |
’; |
178 |
} |
179 |
180 |
9. PHP创建日志缩略名 |
181 |
182 |
创建用户友好的日志缩略名。 |
183 |
184 |
function create_slug( $string ){
|
185 |
$slug =preg_replace(‘/[^A-Za-z0-9-]+/’, ‘-’, $string );
|
186 |
return $slug ;
|
187 |
} |
188 |
189 |
10. PHP获取客户端真实 IP 地址 |
190 |
191 |
该函数将获取用户的真实 IP 地址,即便他使用代理服务器。 |
192 |
193 |
function getRealIpAddr()
|
194 |
{ |
195 |
if (!emptyempty( $_SERVER [ 'HTTP_CLIENT_IP' ]))
|
196 |
{ |
197 |
$ip = $_SERVER [ 'HTTP_CLIENT_IP' ];
|
198 |
} |
199 |
elseif (!emptyempty( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]))
|
200 |
//to check ip is pass from proxy |
201 |
{ |
202 |
$ip = $_SERVER [ 'HTTP_X_FORWARDED_FOR' ];
|
203 |
} |
204 |
else |
205 |
{ |
206 |
$ip = $_SERVER [ 'REMOTE_ADDR' ];
|
207 |
} |
208 |
return $ip ;
|
209 |
} |
210 |
211 |
11. PHP强制性文件下载 |
212 |
213 |
为用户提供强制性的文件下载功能。 |
214 |
215 |
/******************** |
216 |
*@file – path to file |
217 |
*/ |
218 |
function force_download( $file )
|
219 |
{ |
220 |
if ((isset( $file ))&&( file_exists ( $file ))) {
|
221 |
header(“Content-length: “. filesize ( $file ));
|
222 |
header(‘Content-Type: application/octet-stream’); |
223 |
header(‘Content-Disposition: attachment; filename=”‘ . $file . ‘”‘);
|
224 |
readfile(“ $file ”);
|
225 |
} else {
|
226 |
echo “No file selected”;
|
227 |
} |
228 |
} |
229 |
230 |
12. PHP创建标签云 |
231 |
232 |
function getCloud( $data = array (), $minFontSize = 12, $maxFontSize = 30 )
|
233 |
{ |
234 |
$minimumCount = min( array_values ( $data ) );
|
235 |
$maximumCount = max( array_values ( $data ) );
|
236 |
$spread = $maximumCount – $minimumCount ;
|
237 |
$cloudHTML = ”;
|
238 |
$cloudTags = array ();
|
239 |
240 |
$spread == 0 && $spread = 1;
|
241 |
242 |
foreach ( $data as $tag => $count )
|
243 |
{ |
244 |
$size = $minFontSize + ( $count – $minimumCount )
|
245 |
* ( $maxFontSize – $minFontSize ) / $spread ;
|
246 |
$cloudTags [] = ‘. ‘” href=”#” title=”\” . $tag .
|
247 |
‘\’ returned a count of ‘ . $count . ‘”>’
|
248 |
. htmlspecialchars( stripslashes ( $tag ) ) . ‘’;
|
249 |
} |
250 |
251 |
return join( “\n”, $cloudTags ) . “\n”;
|
252 |
} |
253 |
/************************** |
254 |
**** Sample usage ***/ |
255 |
$arr = Array(‘Actionscript’ => 35, ‘Adobe’ => 22, ‘Array’ => 44, ‘Background’ => 43,
|
256 |
‘Blur’ => 18, ‘Canvas’ => 33, ‘Class’ => 15, ‘Color Palette’ => 11, ‘Crop’ => 42, |
257 |
‘Delimiter’ => 13, ‘Depth’ => 34, ‘Design’ => 8, ‘Encode’ => 12, ‘Encryption’ => 30, |
258 |
‘Extract’ => 28, ‘Filters’ => 42); |
259 |
echo getCloud( $arr , 12, 36);
|
260 |
261 |
13. PHP寻找两个字符串的相似性 |
262 |
263 |
PHP 提供了一个极少使用的 similar_text 函数,但此函数非常有用,用于比较两个字符串并返回相似程度的百分比。 |
264 |
265 |
similar_text( $string1 , $string2 , $percent );
|
266 |
//$percent will have the percentage of similarity |
267 |
268 |
14. PHP在应用程序中使用 Gravatar 通用头像 |
269 |
270 |
随着 WordPress 越来越普及,Gravatar 也随之流行。由于 Gravatar 提供了易于使用的 API,将其纳入应用程序也变得十分方便。 |
271 |
272 |
/****************** |
273 |
*@email – Email address to show gravatar for |
274 |
*@size – size of gravatar |
275 |
*@default – URL of default gravatar to use |
276 |
*@rating – rating of Gravatar(G, PG, R, X) |
277 |
*/ |
278 |
function show_gravatar( $email , $size , $default , $rating )
|
279 |
{ |
280 |
echo ‘‘& default =’. $default .’&size=’. $size .’&rating=’. $rating .’” width=”‘. $size .’px”
|
281 |
height=”‘. $size .’px” />’;
|
282 |
} |
283 |
284 |
15. PHP在字符断点处截断文字 |
285 |
286 |
所谓断字 (word break ),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。
|
287 |
288 |
// Original PHP code by Chirp Internet: www.chirp.com.au |
289 |
// Please acknowledge use of this code by including this header. |
290 |
function myTruncate( $string , $limit , $break =”.”, $pad =”…”) {
|
291 |
// return with no change if string is shorter than $limit |
292 |
if ( strlen ( $string ) <= $limit )
|
293 |
return $string ;
|
294 |
295 |
// is $break present between $limit and the end of the string? |
296 |
if (false !== ( $breakpoint = strpos ( $string , $break , $limit ))) {
|
297 |
if ( $breakpoint < strlen ( $string ) – 1) {
|
298 |
$string = substr ( $string , 0, $breakpoint ) . $pad ;
|
299 |
} |
300 |
} |
301 |
return $string ;
|
302 |
} |
303 |
/***** Example ****/ |
304 |
$short_string =myTruncate( $long_string , 100, ‘ ‘);
|
305 |
306 |
16. PHP文件 Zip 压缩 |
307 |
308 |
/* creates a compressed zip file */ |
309 |
function create_zip( $files = array (), $destination = ”, $overwrite = false) {
|
310 |
//if the zip file already exists and overwrite is false, return false |
311 |
if ( file_exists ( $destination ) && ! $overwrite ) { return false; }
|
312 |
//vars |
313 |
$valid_files = array ();
|
314 |
//if files were passed in… |
315 |
if ( is_array ( $files )) {
|
316 |
//cycle through each file |
317 |
foreach ( $files as $file ) {
|
318 |
//make sure the file exists |
319 |
if ( file_exists ( $file )) {
|
320 |
$valid_files [] = $file ;
|
321 |
} |
322 |
} |
323 |
} |
324 |
//if we have good files… |
325 |
if ( count ( $valid_files )) {
|
326 |
//create the archive |
327 |
$zip = new ZipArchive();
|
328 |
if ( $zip ->open( $destination , $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
|
329 |
return false;
|
330 |
} |
331 |
//add the files |
332 |
foreach ( $valid_files as $file ) {
|
333 |
$zip ->addFile( $file , $file );
|
334 |
} |
335 |
//debug |
336 |
//echo ‘The zip archive contains ‘,$zip->numFiles,’ files with a status of ‘,$zip->status; |
337 |
338 |
//close the zip — done! |
339 |
$zip ->close();
|
340 |
341 |
//check to make sure the file exists |
342 |
return file_exists ( $destination );
|
343 |
} |
344 |
else |
345 |
{ |
346 |
return false;
|
347 |
} |
348 |
} |
349 |
/***** Example Usage ***/ |
350 |
$files = array (‘file1.jpg’, ‘file2.jpg’, ‘file3.gif’);
|
351 |
create_zip( $files , ‘myzipfile.zip’, true);
|
352 |
353 |
17. PHP解压缩 Zip 文件 |
354 |
355 |
/********************** |
356 |
*@file – path to zip file |
357 |
*@destination – destination directory for unzipped files |
358 |
*/ |
359 |
function unzip_file( $file , $destination ){
|
360 |
// create object |
361 |
$zip = new ZipArchive() ;
|
362 |
// open archive |
363 |
if ( $zip ->open( $file ) !== TRUE) {
|
364 |
die (’Could not open archive’);
|
365 |
} |
366 |
// extract contents to destination directory |
367 |
$zip ->extractTo( $destination );
|
368 |
// close archive |
369 |
$zip ->close();
|
370 |
echo ‘Archive extracted to directory’;
|
371 |
} |
372 |
373 |
18. PHP为 URL 地址预设 http 字符串 |
374 |
375 |
有时需要接受一些表单中的网址输入,但用户很少添加 http: // 字段,此代码将为网址添加该字段。
|
376 |
377 |
if (!preg_match(“/^(http|ftp):/”, $_POST [ 'url' ])) {
|
378 |
$_POST [ 'url' ] = ‘http: //’.$_POST['url'];
|
379 |
} |
380 |
381 |
19. PHP将网址字符串转换成超级链接 |
382 |
383 |
该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。 |
384 |
385 |
function makeClickableLinks( $text ) {
|
386 |
$text = eregi_replace (‘(((f|ht){1}tp: //)[-a-zA-Z0-9@:%_+.~#?&//=]+)’,
|
387 |
‘\1’, $text );
|
388 |
$text = eregi_replace (‘([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?& //=]+)’,
|
389 |
‘\1\2’, $text );
|
390 |
$text = eregi_replace (‘([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})’,
|
391 |
‘\1’, $text );
|
392 |
393 |
return $text ;
|
394 |
} |
395 |
396 |
20. PHP调整图像尺寸 |
397 |
398 |
创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。 |
399 |
400 |
/********************** |
401 |
*@filename – path to the image |
402 |
*@tmpname – temporary path to thumbnail |
403 |
*@xmax – max width |
404 |
*@ymax – max height |
405 |
*/ |
406 |
function resize_image( $filename , $tmpname , $xmax , $ymax )
|
407 |
{ |
408 |
$ext = explode (“.”, $filename );
|
409 |
$ext = $ext [ count ( $ext )-1];
|
410 |
411 |
if ( $ext == “jpg” || $ext == “jpeg”)
|
412 |
$im = imagecreatefromjpeg( $tmpname );
|
413 |
elseif ( $ext == “png”)
|
414 |
$im = imagecreatefrompng( $tmpname );
|
415 |
elseif ( $ext == “gif”)
|
416 |
$im = imagecreatefromgif( $tmpname );
|
417 |
418 |
$x = imagesx( $im );
|
419 |
$y = imagesy( $im );
|
420 |
421 |
if ( $x <= $xmax && $y <= $ymax )
|
422 |
return $im ;
|
423 |
424 |
if ( $x >= $y ) {
|
425 |
$newx = $xmax ;
|
426 |
$newy = $newx * $y / $x ;
|
427 |
} |
428 |
else {
|
429 |
$newy = $ymax ;
|
430 |
$newx = $x / $y * $newy ;
|
431 |
} |
432 |
433 |
$im2 = imagecreatetruecolor( $newx , $newy );
|
434 |
imagecopyresized( $im2 , $im , 0, 0, 0, 0, floor ( $newx ), floor ( $newy ), $x , $y );
|
435 |
return $im2 ;
|
436 |
} |
437 |
438 |
21. PHP检测 ajax 请求 |
439 |
440 |
大多数的 JavaScript 框架如 jquery,Mootools 等,在发出 Ajax 请求时,都会发送额外的 HTTP_X_REQUESTED_WITH 头部信息,头当他们一个ajax请求,因此你可以在服务器端侦测到 Ajax 请求。 |
441 |
442 |
if (!emptyempty( $_SERVER [ 'HTTP_X_REQUESTED_WITH' ]) && strtolower ( $_SERVER [ 'HTTP_X_REQUESTED_WITH' ]) == ‘xmlhttprequest’){
|
443 |
//If AJAX Request Then |
444 |
} else {
|
445 |
//something else |
446 |
} |
相关推荐
"25套收集开发常用PHP函数和类.rar"这个压缩包文件显然是一个集合,里面包含了25个不同的PHP函数或类库,旨在解决开发者在日常工作中常见的问题。下面,我们将详细探讨PHP函数和类的基本概念、重要性以及一些常见的...
以下是一个简单的PHP函数示例,用于从字符串中提取最常见的单词作为关键字: ```php function extractKeywords($text) { $words = preg_split('/\s+/', $text); // 使用正则表达式分词 $wordCount = array_count_...
首先,这段代码采用了一个数组 `$d` 来存储汉字与其对应的拼音数据。这个数组是预先定义好的,包含了大量常用汉字及其对应的声母和韵母。数组中的每个元素都是一个包含两个值的子数组,第一个值是汉字的拼音首字母,...
在PHP编程中,函数是组织代码的重要方式,它们允许我们重复使用已编写好的代码段,提高代码的复用性和可维护性。这份“PHP函数实验报告”详细介绍了通过实验来理解和应用PHP函数的过程,旨在加深对PHP函数的理解并...
另一个常用的时间函数是`date()`,它可以将时间戳转换为可读的日期和时间格式。`date()`函数接受两个参数,第一个是格式字符串,第二个是可选的时间戳,默认为当前时间。例如: ```php echo date('Y-m-d H:i:s'); ``...
本篇文章将深入探讨PHP中的常用函数,这些函数在日常开发中非常常见且实用。 1. **字符串处理函数**: - `strlen()`: 计算字符串长度。 - `strpos()`: 查找子字符串在字符串中的位置。 - `str_replace()`: 在...
总的来说,《PHP函数参考大全》是一个全面且实用的资源,它将帮助你构建起坚实的PHP知识体系,无论是在日常开发还是在解决复杂问题时,都能提供有力的支持。持续学习和实践,你将成为一个真正的PHP大师。
这段代码提供了一个自定义函数`DateAdd`用于增加日期的时间。它接受一个日期字符串、一个整数和一个单位(默认为天),然后返回一个新的日期字符串。 ```php function DateAdd($date, $int, $unit = "d") { $...
1. `usleep()`:这个函数用于延迟代码执行若干微秒,对于实现定时或延时操作非常有用,例如在循环中等待一段时间再继续执行。 2. `unpack()`:它用于将二进制字符串解包为可读格式,适用于处理二进制数据,如读取...
### 常用PHP函数小全 在PHP编程中,函数是执行特定任务的基本构建块。下面我们将根据提供的部分信息,详细介绍这些函数的功能及其应用场景。 #### usleep() `usleep()` 函数用于暂停脚本的执行指定的微秒数。这...
下面我们将深入探讨一些常见的PHP函数及其应用场景。 1. **数组处理函数**: - `array_push()`:向数组末尾添加一个或多个元素。 - `array_pop()`:删除并返回数组的最后一个元素。 - `array_merge()`:合并一个...
首先,创建一个DOMDocument对象,然后使用`loadXML()`方法加载XML字符串。接着,可以通过DOM遍历和操作XML文档,如获取节点、属性等。 这些代码片段覆盖了PHP开发中常见的任务,是日常工作中非常实用的工具。学习并...
此段代码首先定义了一个SQL语句,用于从`liuyan`表中按`ly_id`降序获取所有列的数据。然后通过`mysql_query`函数执行查询,并使用`while`循环配合`mysql_fetch_array`函数来遍历查询结果。 ### 三、分页功能实现 ...
`csubstr()`函数被设计用来截取字符串中的一个子串,但与标准的`substr()`函数不同的是,它能够处理多字节字符(如中文字符),确保截取过程中不会出现半个汉字的情况,从而避免了字符编码错误。 #### 2. **参数...
【PHP常用函数桌面图.zip】这个压缩包文件的标题表明其主要内容是关于PHP常用函数的图形化展示,可能是一个桌面壁纸或者信息图表,方便开发者快速查阅和记忆PHP中的常见函数。描述简短,但暗示了这是一个与PHP编程...
速度测试函数 为了优化代码,我们需要一种可以测试代码运行...现在可以轻松地检查任何一段代码的执行时间了,甚至我们可以同时使用多个计时器,只需在使用上述的几个函数时设定不同的参数作为计时器的名称就可以了。
从给定的文件内容中,我们可以提取出几个关键的PHP代码段,这些代码段对于初学者来说具有重要的学习价值。下面将对每个代码段进行详细分析,解释其功能与实现原理,帮助初学者更好地理解PHP编程。 ### 1. 循环打印...
- `pow()`:计算一个数的幂次。 - `sqrt()`:求平方根。 3. 目录函数: - `mkdir()`:创建新目录。 - `rmdir()`:删除目录。 - `scandir()`:列出目录中的文件和子目录。 - `chdir()`:改变当前工作目录。 4...
`zen_break_string()`函数用于将过长的字符串分割成多个较短的字符串,每段字符串的长度由参数指定。这对于处理长文本字段,如产品描述,非常有用,可以提高阅读体验。 ```php $a = 'afasfasfasfasf'; $b = zen_...