1. PHP可阅读随机字符串 此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。 /* ************* *@length - length of random string (must be a multiple of 2) ************* */ function readable_random_string( $length
1. php可阅读随机字符串
此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。
<span>/*</span><span>*************
*@length - length of random string (must be a multiple of 2)
*************</span><span>*/</span>
<span>function</span> readable_random_string(<span>$length</span> = 6<span>){
</span><span>$conso</span>=<span>array</span>("b","c","d","f","g","h","j","k","l",
"m","n","p","r","s","t","v","w","x","y","z"<span>);
</span><span>$vocal</span>=<span>array</span>("a","e","i","o","u"<span>);
</span><span>$password</span>=""<span>;
</span><span>srand</span> ((<span>double</span>)<span>microtime</span>()*1000000<span>);
</span><span>$max</span> = <span>$length</span>/2<span>;
</span><span>for</span>(<span>$i</span>=1; <span>$i</span><=<span>$max</span>; <span>$i</span>++<span>)
{
</span><span>$password</span>.=<span>$conso</span>[<span>rand</span>(0,19<span>)];
</span><span>$password</span>.=<span>$vocal</span>[<span>rand</span>(0,4<span>)];
}
</span><span>return</span> <span>$password</span><span>;
} </span>
2. PHP生成一个随机字符串
如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。
立即学习“PHP免费学习笔记(深入)”;
<span>/*</span><span>************
*@l - length of random string
</span><span>*/</span>
<span>function</span> generate_rand(<span>$l</span><span>){
</span><span>$c</span>= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"<span>;
</span><span>srand</span>((<span>double</span>)<span>microtime</span>()*1000000<span>);
</span><span>for</span>(<span>$i</span>=0; <span>$i</span><<span>$l</span>; <span>$i</span>++<span>) {
</span><span>$rand</span>.= <span>$c</span>[<span>rand</span>()%<span>strlen</span>(<span>$c</span><span>)];
}
</span><span>return</span> <span>$rand</span><span>;
} </span>
3. PHP编码电子邮件地址
使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。
<span>function</span> encode_email(<span>$email</span>='info@domain.com', <span>$linkText</span>='Contact Us', <span>$attrs</span> ='class="emailencoder"'<span> )
{
</span><span>//</span><span> remplazar aroba y puntos </span>
<span>$email</span> = <span>str_replace</span>('@', '@', <span>$email</span><span>);
</span><span>$email</span> = <span>str_replace</span>('.', '.', <span>$email</span><span>);
</span><span>$email</span> = <span>str_split</span>(<span>$email</span>, 5<span>);
</span><span>$linkText</span> = <span>str_replace</span>('@', '@', <span>$linkText</span><span>);
</span><span>$linkText</span> = <span>str_replace</span>('.', '.', <span>$linkText</span><span>);
</span><span>$linkText</span> = <span>str_split</span>(<span>$linkText</span>, 5<span>);
</span><span>$part1</span> = '<a href="ma'<span>;
</span><span>$part2</span> = 'ilto:'<span>;
</span><span>$part3</span> = '" '. <span>$attrs</span> .' >'<span>;
</span><span>$part4</span> = '</a>'<span>;
</span><span>$encoded</span> = '<script type="text/javascript">'<span>;
</span><span>$encoded</span> .= "document.write('<span>$part1</span>');"<span>;
</span><span>$encoded</span> .= "document.write('<span>$part2</span>');"<span>;
</span><span>foreach</span>(<span>$email</span> <span>as</span> <span>$e</span><span>)
{
</span><span>$encoded</span> .= "document.write('<span>$e</span>');"<span>;
}
</span><span>$encoded</span> .= "document.write('<span>$part3</span>');"<span>;
</span><span>foreach</span>(<span>$linkText</span> <span>as</span> <span>$l</span><span>)
{
</span><span>$encoded</span> .= "document.write('<span>$l</span>');"<span>;
}
</span><span>$encoded</span> .= "document.write('<span>$part4</span>');"<span>;
</span><span>$encoded</span> .= '</script>'<span>;
</span><span>return</span> <span>$encoded</span><span>;
} </span>
4. PHP验证邮件地址
电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。
<span>function</span> is_valid_email(<span>$email</span>, <span>$test_mx</span> = <span>false</span><span>)
{
</span><span>if</span>(<span>eregi</span>("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", <span>$email</span><span>))
</span><span>if</span>(<span>$test_mx</span><span>)
{
</span><span>list</span>(<span>$username</span>, <span>$domain</span>) = <span>split</span>("@", <span>$email</span><span>);
</span><span>return</span> getmxrr(<span>$domain</span>, <span>$mxrecords</span><span>);
}
</span><span>else</span>
<span>return</span> <span>true</span><span>;
</span><span>else</span>
<span>return</span> <span>false</span><span>;
} </span>
5. PHP列出目录内容
<span>function</span> list_files(<span>$dir</span><span>)
{
</span><span>if</span>(<span>is_dir</span>(<span>$dir</span><span>))
{
</span><span>if</span>(<span>$handle</span> = <span>opendir</span>(<span>$dir</span><span>))
{
</span><span>while</span>((<span>$file</span> = <span>readdir</span>(<span>$handle</span>)) !== <span>false</span><span>)
{
</span><span>if</span>(<span>$file</span> != "." && <span>$file</span> != ".." && <span>$file</span> != "Thumbs.db"<span>)
{
</span><span>echo</span> '<a target="_blank" href="'.<span>$dir</span>.<span>$file</span>.'">'.<span>$file</span>.'</a><br>'."\n"<span>;
}
}
</span><span>closedir</span>(<span>$handle</span><span>);
}
}
} </span>
6. PHP销毁目录
删除一个目录,包括它的内容。
<span>/*</span><span>****
*@dir - Directory to destroy
*@virtual[optional]- whether a virtual directory
</span><span>*/</span>
<span>function</span> destroyDir(<span>$dir</span>, <span>$virtual</span> = <span>false</span><span>)
{
</span><span>$ds</span> =<span> DIRECTORY_SEPARATOR;
</span><span>$dir</span> = <span>$virtual</span> ? <span>realpath</span>(<span>$dir</span>) : <span>$dir</span><span>;
</span><span>$dir</span> = <span>substr</span>(<span>$dir</span>, -1) == <span>$ds</span> ? <span>substr</span>(<span>$dir</span>, 0, -1) : <span>$dir</span><span>;
</span><span>if</span> (<span>is_dir</span>(<span>$dir</span>) && <span>$handle</span> = <span>opendir</span>(<span>$dir</span><span>))
{
</span><span>while</span> (<span>$file</span> = <span>readdir</span>(<span>$handle</span><span>))
{
</span><span>if</span> (<span>$file</span> == '.' || <span>$file</span> == '..'<span>)
{
</span><span>continue</span><span>;
}
</span><span>elseif</span> (<span>is_dir</span>(<span>$dir</span>.<span>$ds</span>.<span>$file</span><span>))
{
destroyDir(</span><span>$dir</span>.<span>$ds</span>.<span>$file</span><span>);
}
</span><span>else</span><span>
{
</span><span>unlink</span>(<span>$dir</span>.<span>$ds</span>.<span>$file</span><span>);
}
}
</span><span>closedir</span>(<span>$handle</span><span>);
</span><span>rmdir</span>(<span>$dir</span><span>);
</span><span>return</span> <span>true</span><span>;
}
</span><span>else</span><span>
{
</span><span>return</span> <span>false</span><span>;
}
} </span>
7. PHP解析 JSON 数据
与大多数流行的 Web 服务如 twitter 通过开放 API 来提供数据一样,它总是能够知道如何解析 API 数据的各种传送格式,包括 JSON,XML 等等。
<span>$json_string</span>='{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]} '<span>;
</span><span>$obj</span>=json_decode(<span>$json_string</span><span>);
</span><span>echo</span> <span>$obj</span>->name; <span>//</span><span>prints foo </span>
<span>echo</span> <span>$obj</span>->interest[1]; <span>//</span><span>prints php </span>
8. PHP解析 XML 数据
<span>//</span><span>xml string </span>
<span>$xml_string</span>="<span><?xml version='1.0'?>
<users>
<user id='398'>
<name>Foo</name>
<email>foo@bar.com</name>
</user>
<user id='867'>
<name>Foobar</name>
<email>foobar@foo.com</name>
</user>
</users></span>"<span>;
</span><span>//</span><span>load the xml string using simplexml </span>
<span>$xml</span> = <span>simplexml_load_string</span>(<span>$xml_string</span><span>);
</span><span>//</span><span>loop through the each node of user </span>
<span>foreach</span> (<span>$xml</span>->user <span>as</span> <span>$user</span><span>)
{
</span><span>//</span><span>access attribute </span>
<span>echo</span> <span>$user</span>['id'], ' '<span>;
</span><span>//</span><span>subnodes are accessed by -> operator </span>
<span>echo</span> <span>$user</span>->name, ' '<span>;
</span><span>echo</span> <span>$user</span>->email, '<br />'<span>;
} </span>
9. PHP创建日志缩略名
创建用户友好的日志缩略名。
<span>function</span> create_slug(<span>$string</span><span>){
</span><span>$slug</span>=<span>preg_replace</span>('/[^A-Za-z0-9-]+/', '-', <span>$string</span><span>);
</span><span>return</span> <span>$slug</span><span>;
} </span>
10. PHP获取客户端真实 IP 地址
该函数将获取用户的真实 IP 地址,即便他使用代理服务器。
<span>function</span><span> getRealIpAddr()
{
</span><span>if</span> (!emptyempty(<span>$_SERVER</span>['HTTP_CLIENT_IP'<span>]))
{
</span><span>$ip</span>=<span>$_SERVER</span>['HTTP_CLIENT_IP'<span>];
}
</span><span>elseif</span> (!emptyempty(<span>$_SERVER</span>['HTTP_X_FORWARDED_FOR'<span>]))
</span><span>//</span><span>to check ip is pass from proxy </span>
<span> {
</span><span>$ip</span>=<span>$_SERVER</span>['HTTP_X_FORWARDED_FOR'<span>];
}
</span><span>else</span><span>
{
</span><span>$ip</span>=<span>$_SERVER</span>['REMOTE_ADDR'<span>];
}
</span><span>return</span> <span>$ip</span><span>;
} </span>
11. PHP强制性文件下载
为用户提供强制性的文件下载功能。
<span>/*</span><span>*******************
*@file - path to file
</span><span>*/</span>
<span>function</span> force_download(<span>$file</span><span>)
{
</span><span>if</span> ((<span>isset</span>(<span>$file</span>))&&(<span>file_exists</span>(<span>$file</span><span>))) {
</span><span>header</span>("Content-length: ".<span>filesize</span>(<span>$file</span><span>));
</span><span>header</span>('Content-Type: application/octet-stream'<span>);
</span><span>header</span>('Content-Disposition: attachment; filename="' . <span>$file</span> . '"'<span>);
</span><span>readfile</span>("<span>$file</span>"<span>);
} </span><span>else</span><span> {
</span><span>echo</span> "No file selected"<span>;
}
} </span>
<span>function</span> getCloud( <span>$data</span> = <span>array</span>(), <span>$minFontSize</span> = 12, <span>$maxFontSize</span> = 30<span> )
{
</span><span>$minimumCount</span> = <span>min</span>( <span>array_values</span>( <span>$data</span><span> ) );
</span><span>$maximumCount</span> = <span>max</span>( <span>array_values</span>( <span>$data</span><span> ) );
</span><span>$spread</span> = <span>$maximumCount</span> - <span>$minimumCount</span><span>;
</span><span>$cloudHTML</span> = ''<span>;
</span> = <span>array</span><span>();
</span><span>$spread</span> == 0 && <span>$spread</span> = 1<span>;
</span><span>foreach</span>( <span>$data</span> <span>as</span> <span>$tag</span> => <span>$count</span><span> )
{
</span><span>$size</span> = <span>$minFontSize</span> + ( <span>$count</span> - <span>$minimumCount</span><span> )
</span>* ( <span>$maxFontSize</span> - <span>$minFontSize</span> ) / <span>$spread</span><span>;
</span>[] = '<a style="font-size: ' . <span>floor</span>( <span>$size</span> ) . 'px'
. '" href="#" title="\'' . <span>$tag</span> .
'\' returned a count of ' . <span>$count</span> . '">'
. <span>htmlspecialchars</span>( <span>stripslashes</span>( <span>$tag</span> ) ) . '</a>'<span>;
}
</span><span>return</span> <span>join</span>( "\n", ) . "\n"<span>;
}
</span><span>/*</span><span>*************************
**** Sample usage **</span><span>*/</span>
<span>$arr</span> = <span>Array</span>('Actionscript' => 35, 'Adobe' => 22, 'Array' => 44, 'Background' => 43,
'Blur' => 18, 'Canvas' => 33, 'Class' => 15, 'Color Palette' => 11, 'Crop' => 42,
'Delimiter' => 13, 'Depth' => 34, 'Design' => 8, 'Encode' => 12, 'Encryption' => 30,
'Extract' => 28, 'Filters' => 42<span>);
</span><span>echo</span> getCloud(<span>$arr</span>, 12, 36);
13. PHP寻找两个字符串的相似性
PHP 提供了一个极少使用的 similar_text 函数,但此函数非常有用,用于比较两个字符串并返回相似程度的百分比。
<span>similar_text</span>(<span>$string1</span>, <span>$string2</span>, <span>$percent</span><span>); </span><span>//</span><span>$percent will have the percentage of similarity </span>
14. PHP在应用程序中使用 Gravatar 通用头像
随着 WordPress 越来越普及,Gravatar 也随之流行。由于 Gravatar 提供了易于使用的 API,将其纳入应用程序也变得十分方便。
<span>/*</span><span>*****************
*@email - Email address to show gravatar for
*@size - size of gravatar
*@default - URL of default gravatar to use
*@rating - rating of Gravatar(G, PG, R, X)
</span><span>*/</span>
<span>function</span> show_gravatar(<span>$email</span>, <span>$size</span>, <span>$default</span>, <span>$rating</span><span>)
{
</span><span>echo</span> '@@##@@md5</span>(<span>$email</span>).
'&default='.<span>$default</span>.'&size='.<span>$size</span>.'&rating='.<span>$rating</span>.'" width="'.<span>$size</span>.'<span>px"
height="</span>'.<span>$size</span>.'px" />'<span>;
} </span>
15. PHP在字符断点处截断文字
所谓断字 (word break),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。
<span>//</span><span> Original PHP code by Chirp Internet: www.chirp.com.au
// Please acknowledge use of this code by including this header. </span>
<span>function</span> myTruncate(<span>$string</span>, <span>$limit</span>, <span>$break</span>=".", <span>$pad</span>="..."<span>) {
</span><span>//</span><span> return with no change if string is shorter than $limit </span>
<span>if</span>(<span>strlen</span>(<span>$string</span>) <= <span>$limit</span><span>)
</span><span>return</span> <span>$string</span><span>;
</span><span>//</span><span> is $break present between $limit and the end of the string? </span>
<span>if</span>(<span>false</span> !== (<span>$breakpoint</span> = <span>strpos</span>(<span>$string</span>, <span>$break</span>, <span>$limit</span><span>))) {
</span><span>if</span>(<span>$breakpoint</span> < <span>strlen</span>(<span>$string</span>) - 1<span>) {
</span><span>$string</span> = <span>substr</span>(<span>$string</span>, 0, <span>$breakpoint</span>) . <span>$pad</span><span>;
}
}
</span><span>return</span> <span>$string</span><span>;
}
</span><span>/*</span><span>**** Example ***</span><span>*/</span>
<span>$short_string</span>=myTruncate(<span>$long_string</span>, 100, ' ');
16. PHP文件 Zip 压缩
<span>/*</span><span> creates a compressed zip file </span><span>*/</span>
<span>function</span> create_zip(<span>$files</span> = <span>array</span>(),<span>$destination</span> = '',<span>$overwrite</span> = <span>false</span><span>) {
</span><span>//</span><span>if the zip file already exists and overwrite is false, return false </span>
<span>if</span>(<span>file_exists</span>(<span>$destination</span>) && !<span>$overwrite</span>) { <span>return</span> <span>false</span><span>; }
</span><span>//</span><span>vars </span>
<span>$valid_files</span> = <span>array</span><span>();
</span><span>//</span><span>if files were passed in... </span>
<span>if</span>(<span>is_array</span>(<span>$files</span><span>)) {
</span><span>//</span><span>cycle through each file </span>
<span>foreach</span>(<span>$files</span> <span>as</span> <span>$file</span><span>) {
</span><span>//</span><span>make sure the file exists </span>
<span>if</span>(<span>file_exists</span>(<span>$file</span><span>)) {
</span><span>$valid_files</span>[] = <span>$file</span><span>;
}
}
}
</span><span>//</span><span>if we have good files... </span>
<span>if</span>(<span>count</span>(<span>$valid_files</span><span>)) {
</span><span>//</span><span>create the archive </span>
<span>$zip</span> = <span>new</span><span> ZipArchive();
</span><span>if</span>(<span>$zip</span>->open(<span>$destination</span>,<span>$overwrite</span> ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== <span>true</span><span>) {
</span><span>return</span> <span>false</span><span>;
}
</span><span>//</span><span>add the files </span>
<span>foreach</span>(<span>$valid_files</span> <span>as</span> <span>$file</span><span>) {
</span><span>$zip</span>->addFile(<span>$file</span>,<span>$file</span><span>);
}
</span><span>//</span><span>debug
//echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
//close the zip -- done! </span>
<span>$zip</span>-><span>close();
</span><span>//</span><span>check to make sure the file exists </span>
<span>return</span> <span>file_exists</span>(<span>$destination</span><span>);
}
</span><span>else</span><span>
{
</span><span>return</span> <span>false</span><span>;
}
}
</span><span>/*</span><span>**** Example Usage **</span><span>*/</span>
<span>$files</span>=<span>array</span>('file1.jpg', 'file2.jpg', 'file3.gif'<span>);
create_zip(</span><span>$files</span>, 'myzipfile.zip', <span>true</span>);
17. PHP解压缩 Zip 文件
<span>/*</span><span>*********************
*@file - path to zip file
*@destination - destination directory for unzipped files
</span><span>*/</span>
<span>function</span> unzip_file(<span>$file</span>, <span>$destination</span><span>){
</span><span>//</span><span> create object </span>
<span>$zip</span> = <span>new</span><span> ZipArchive() ;
</span><span>//</span><span> open archive </span>
<span>if</span> (<span>$zip</span>->open(<span>$file</span>) !== <span>TRUE</span><span>) {
</span><span>die</span><span> (’Could not open archive’);
}
</span><span>//</span><span> extract contents to destination directory </span>
<span>$zip</span>->extractTo(<span>$destination</span><span>);
</span><span>//</span><span> close archive </span>
<span>$zip</span>-><span>close();
</span><span>echo</span> 'Archive extracted to directory'<span>;
} </span>
18. PHP为 URL 地址预设 http 字符串
有时需要接受一些表单中的网址输入,但用户很少添加 http:// 字段,此代码将为网址添加该字段。
<span>if</span> (!<span>preg_match</span>("/^(http|ftp):/", <span>$_POST</span>['url'<span>])) {
</span><span>$_POST</span>['url'] = 'http://'.<span>$_POST</span>['url'<span>];
} </span>
19. PHP将网址字符串转换成超级链接
该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。
<span>function</span> makeClickableLinks(<span>$text</span><span>) {
</span><span>$text</span> = <span>eregi_replace</span>('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)',
'<a href="\1">\1</a>', <span>$text</span><span>);
</span><span>$text</span> = <span>eregi_replace</span>('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)',
'\1<a href="http://\2">\2</a>', <span>$text</span><span>);
</span><span>$text</span> = <span>eregi_replace</span>('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})',
'<a href="mailto:\1">\1</a>', <span>$text</span><span>);
</span><span>return</span> <span>$text</span><span>;
} </span>
20. PHP调整图像尺寸
创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。
<span>/*</span><span>*********************
*@filename - path to the image
*@tmpname - temporary path to thumbnail
*@xmax - max width
*@ymax - max height
</span><span>*/</span>
<span>function</span> resize_image(<span>$filename</span>, <span>$tmpname</span>, <span>$xmax</span>, <span>$ymax</span><span>)
{
</span><span>$ext</span> = <span>explode</span>(".", <span>$filename</span><span>);
</span><span>$ext</span> = <span>$ext</span>[<span>count</span>(<span>$ext</span>)-1<span>];
</span><span>if</span>(<span>$ext</span> == "jpg" || <span>$ext</span> == "jpeg"<span>)
</span><span>$im</span> = imagecreatefromjpeg(<span>$tmpname</span><span>);
</span><span>elseif</span>(<span>$ext</span> == "png"<span>)
</span><span>$im</span> = imagecreatefrompng(<span>$tmpname</span><span>);
</span><span>elseif</span>(<span>$ext</span> == "gif"<span>)
</span><span>$im</span> = imagecreatefromgif(<span>$tmpname</span><span>);
</span><span>$x</span> = imagesx(<span>$im</span><span>);
</span><span>$y</span> = imagesy(<span>$im</span><span>);
</span><span>if</span>(<span>$x</span> <= <span>$xmax</span> && <span>$y</span> <= <span>$ymax</span><span>)
</span><span>return</span> <span>$im</span><span>;
</span><span>if</span>(<span>$x</span> >= <span>$y</span><span>) {
</span><span>$newx</span> = <span>$xmax</span><span>;
</span><span>$newy</span> = <span>$newx</span> * <span>$y</span> / <span>$x</span><span>;
}
</span><span>else</span><span> {
</span><span>$newy</span> = <span>$ymax</span><span>;
</span><span>$newx</span> = <span>$x</span> / <span>$y</span> * <span>$newy</span><span>;
}
</span><span>$im2</span> = imagecreatetruecolor(<span>$newx</span>, <span>$newy</span><span>);
imagecopyresized(</span><span>$im2</span>, <span>$im</span>, 0, 0, 0, 0, <span>floor</span>(<span>$newx</span>), <span>floor</span>(<span>$newy</span>), <span>$x</span>, <span>$y</span><span>);
</span><span>return</span> <span>$im2</span><span>;
} </span>
21. PHP检测 ajax 请求
大多数的 JavaScript 框架如 jquery,Mootools 等,在发出 Ajax 请求时,都会发送额外的 HTTP_X_REQUESTED_WITH 头部信息,头当他们一个ajax请求,因此你可以在服务器端侦测到 Ajax 请求。
<span>if</span>(!emptyempty(<span>$_SERVER</span>['HTTP_X_REQUESTED_WITH']) && <span>strtolower</span>(<span>$_SERVER</span>['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'<span>){
</span><span>//</span><span>If AJAX Request Then </span>
}<span>else</span><span>{
</span><span>//</span><span>something else </span>
}
22.关键词高亮
<span>function</span> highlight(<span>$sString</span>, <span>$aWords</span><span>) {
</span><span>if</span> (!<span>is_array</span> (<span>$aWords</span>) || emptyempty (<span>$aWords</span>) || !<span>is_string</span> (<span>$sString</span><span>)) {
</span><span>return</span> <span>false</span><span>;
}
</span><span>$sWords</span> = <span>implode</span> ('|', <span>$aWords</span><span>);
</span><span>return</span> <span>preg_replace</span> ('@\b('.<span>$sWords</span>.')\b@si', '<strong style="background-color:yellow">$1</strong>', <span>$sString</span><span>);
} </span>
23.获取你的Feedburner的用户
<span>function</span> get_average_readers(<span>$feed_id</span>,<span>$interval</span> = 7<span>){
</span><span>$today</span> = <span>date</span>('Y-m-d', <span>strtotime</span>("now"<span>));
</span><span>$ago</span> = <span>date</span>('Y-m-d', <span>strtotime</span>("-".<span>$interval</span>." days"<span>));
</span><span>$feed_url</span>="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".<span>$feed_id</span>."&dates=".<span>$ago</span>.",".<span>$today</span><span>;
</span><span>$ch</span> =<span> curl_init();
curl_setopt(</span><span>$ch</span>, CURLOPT_RETURNTRANSFER, 1<span>);
curl_setopt(</span><span>$ch</span>, CURLOPT_URL, <span>$feed_url</span><span>);
</span><span>$data</span> = curl_exec(<span>$ch</span><span>);
curl_close(</span><span>$ch</span><span>);
</span><span>$xml</span> = <span>new</span> SimpleXMLElement(<span>$data</span><span>);
</span><span>$fb</span> = <span>$xml</span>->feed->entry['circulation'<span>];
</span><span>$nb</span> = 0<span>;
</span><span>foreach</span>(<span>$xml</span>->feed->children() <span>as</span> <span>$circ</span><span>){
</span><span>$nb</span> += <span>$circ</span>['circulation'<span>];
}
</span><span>return</span> <span>round</span>(<span>$nb</span>/<span>$interval</span><span>);
} </span>
24.自动生成密码
<span>function</span> generatePassword(<span>$length</span>=9, <span>$strength</span>=0<span>) {
</span><span>$vowels</span> = 'aeuy'<span>;
</span><span>$consonants</span> = 'bdghjmnpqrstvz'<span>;
</span><span>if</span> (<span>$strength</span> >= 1<span>) {
</span><span>$consonants</span> .= 'BDGHJLMNPQRSTVWXZ'<span>;
}
</span><span>if</span> (<span>$strength</span> >= 2<span>) {
</span><span>$vowels</span> .= "AEUY"<span>;
}
</span><span>if</span> (<span>$strength</span> >= 4<span>) {
</span><span>$consonants</span> .= '23456789'<span>;
}
</span><span>if</span> (<span>$strength</span> >= 8<span> ) {
</span><span>$vowels</span> .= '@#$%'<span>;
}
</span><span>$password</span> = ''<span>;
</span><span>$alt</span> = <span>time</span>() % 2<span>;
</span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < <span>$length</span>; <span>$i</span>++<span>) {
</span><span>if</span> (<span>$alt</span> == 1<span>) {
</span><span>$password</span> .= <span>$consonants</span>[(<span>rand</span>() % <span>strlen</span>(<span>$consonants</span><span>))];
</span><span>$alt</span> = 0<span>;
} </span><span>else</span><span> {
</span><span>$password</span> .= <span>$vowels</span>[(<span>rand</span>() % <span>strlen</span>(<span>$vowels</span><span>))];
</span><span>$alt</span> = 1<span>;
}
}
</span><span>return</span> <span>$password</span><span>;
} </span>
25.压缩多个CSS文件
<span>header</span>('Content-type: text/css'<span>);
</span><span>ob_start</span>("compress"<span>);
</span><span>function</span> compress(<span>$buffer</span><span>) {
</span><span>/*</span><span> remove comments </span><span>*/</span>
<span>$buffer</span> = <span>preg_replace</span>('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', <span>$buffer</span><span>);
</span><span>/*</span><span> remove tabs, spaces, newlines, etc. </span><span>*/</span>
<span>$buffer</span> = <span>str_replace</span>(<span>array</span>("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', <span>$buffer</span><span>);
</span><span>return</span> <span>$buffer</span><span>;
}
</span><span>/*</span><span> your css files </span><span>*/</span>
<span>include</span>('master.css'<span>);
</span><span>include</span>('typography.css'<span>);
</span><span>include</span>('grid.css'<span>);
</span><span>include</span>('print.css'<span>);
</span><span>include</span>('handheld.css'<span>);
</span><span>ob_end_flush</span>();
26.获取短网址
<span>function</span> getTinyUrl(<span>$url</span><span>) {
</span><span>return</span> <span>file_get_contents</span>("http://tinyurl.com/api-create.php?url=".<span>$url</span><span>);
} </span>
27.根据生日计算年龄
<span>function</span> age(<span>$date</span><span>){
</span><span>$year_diff</span> = ''<span>;
</span><span>$time</span> = <span>strtotime</span>(<span>$date</span><span>);
</span><span>if</span>(<span>FALSE</span> === <span>$time</span><span>){
</span><span>return</span> ''<span>;
}
</span><span>$date</span> = <span>date</span>('Y-m-d', <span>$time</span><span>);
</span><span>list</span>(<span>$year</span>,<span>$month</span>,<span>$day</span>) = <span>explode</span>("-",<span>$date</span><span>);
</span><span>$year_diff</span> = <span>date</span>("Y") – <span>$year</span><span>;
</span><span>$month_diff</span> = <span>date</span>("m") – <span>$month</span><span>;
</span><span>$day_diff</span> = <span>date</span>("d") – <span>$day</span><span>;
</span><span>if</span> (<span>$day_diff</span> < 0 || <span>$month_diff</span> < 0) <span>$year_diff</span><span>–;
</span><span>return</span> <span>$year_diff</span><span>;
} </span>
28.计算执行时间
<span>//</span><span>Create a variable for start time </span> <span>$time_start</span> = <span>microtime</span>(<span>true</span><span>); </span><span>//</span><span> Place your PHP/HTML/JavaScript/CSS/Etc. Here //Create a variable for end time </span> <span>$time_end</span> = <span>microtime</span>(<span>true</span><span>); </span><span>//</span><span>Subtract the two times to get seconds </span> <span>$time</span> = <span>$time_end</span> - <span>$time_start</span><span>; </span><span>echo</span> 'Script took '.<span>$time</span>.' seconds to execute';
29.PHP的维护模式
<span>function</span> maintenance(<span>$mode</span> = <span>FALSE</span><span>){
</span><span>if</span>(<span>$mode</span><span>){
</span><span>if</span>(<span>basename</span>(<span>$_SERVER</span>['SCRIPT_FILENAME']) != 'maintenance.php'<span>){
</span><span>header</span>("Location: http://example.com/maintenance.php"<span>);
</span><span>exit</span><span>;
}
}</span><span>else</span><span>{
</span><span>if</span>(<span>basename</span>(<span>$_SERVER</span>['SCRIPT_FILENAME']) == 'maintenance.php'<span>){
</span><span>header</span>("Location: http://example.com/"<span>);
</span><span>exit</span><span>;
}
}
} </span>
30.阻止CSS样式被缓存
<link href="/stylesheet.css?<?php echo time(); ?>" rel="stylesheet" type="text/css" />
31.为数字增加 st\nd\rd 等
<span>function</span> make_ranked(<span>$rank</span><span>) {
</span><span>$last</span> = <span>substr</span>( <span>$rank</span>, -1<span> );
</span><span>$seclast</span> = <span>substr</span>( <span>$rank</span>, -2, -1<span> );
</span><span>if</span>( <span>$last</span> > 3 || <span>$last</span> == 0 ) <span>$ext</span> = 'th'<span>;
</span><span>else</span> <span>if</span>( <span>$last</span> == 3 ) <span>$ext</span> = 'rd'<span>;
</span><span>else</span> <span>if</span>( <span>$last</span> == 2 ) <span>$ext</span> = 'nd'<span>;
</span><span>else</span> <span>$ext</span> = 'st'<span>;
</span><span>if</span>( <span>$last</span> == 1 && <span>$seclast</span> == 1) <span>$ext</span> = 'th'<span>;
</span><span>if</span>( <span>$last</span> == 2 && <span>$seclast</span> == 1) <span>$ext</span> = 'th'<span>;
</span><span>if</span>( <span>$last</span> == 3 && <span>$seclast</span> == 1) <span>$ext</span> = 'th'<span>;
</span><span>return</span> <span>$rank</span>.<span>$ext</span><span>;
} </span>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号