在正确的时间拥有正确的代码片段,绝对是是Web开发人员的救星。今天,为大家已经收集了10个很棒的PHP代码片段,希望对您的开发有所帮助。
Super simple page caching
当你的项目没有基于CMS框架搭建时,利用下面这段代码就能够在你的页面上实现一个简单的缓存系统。非常适合于小型网站。
03
$cachefile
=
'cached-files/'
.
date
(
'M-d-Y'
).
'.php'
;
07
if
(
file_exists
(
$cachefile
) && time() -
$cachetime
<
filemtime
(
$cachefile
)) {
15
output all your html here.
19
$fp
=
fopen
(
$cachefile
,
'w'
);
20
fwrite(
$fp
, ob_get_contents());
Calculate distances in PHP
这里是一个非常方便的功能,使用经度和纬度来计算从A点到B点的距离。该函数可以返回英里,公里,海里的距离。
01
function
distance(
$lat1
,
$lon1
,
$lat2
,
$lon2
,
$unit
) {
03
$theta
=
$lon1
-
$lon2
;
04
$dist
= sin(
deg2rad
(
$lat1
)) * sin(
deg2rad
(
$lat2
)) +
cos
(
deg2rad
(
$lat1
)) *
cos
(
deg2rad
(
$lat2
)) *
cos
(
deg2rad
(
$theta
));
06
$dist
= rad2deg(
$dist
);
07
$miles
=
$dist
* 60 * 1.1515;
08
$unit
=
strtoupper
(
$unit
);
11
return
(
$miles
* 1.609344);
12
}
else
if
(
$unit
==
"N"
) {
13
return
(
$miles
* 0.8684);
Usage:
1
echo
distance(32.9697, -96.80322, 29.46786, -98.53506,
"k"
).
" kilometers"
;
Convert seconds to time (years, months, days, hours…)
这个方法用于将秒数转换成年,月,周,日等。
01
function
Sec2Time(
$time
){
02
if
(
is_numeric
(
$time
)){
04
"years"
=> 0,
"days"
=> 0,
"hours"
=> 0,
05
"minutes"
=> 0,
"seconds"
=> 0,
07
if
(
$time
>= 31556926){
08
$value
[
"years"
] =
floor
(
$time
/31556926);
09
$time
= (
$time
%31556926);
12
$value
[
"days"
] =
floor
(
$time
/86400);
13
$time
= (
$time
%86400);
16
$value
[
"hours"
] =
floor
(
$time
/3600);
20
$value
[
"minutes"
] =
floor
(
$time
/60);
23
$value
[
"seconds"
] =
floor
(
$time
);
24
return
(
array
)
$value
;
Force file download
有一些文件,比较mp3,通常会直接在客户端浏览器中播放。假如你希望强制下载这些文件,没有问题,下面这些代码将能够帮助你实现这个功能。
01
function
downloadFile(
$file
){
03
$mime
=
'application/force-download'
;
04
header(
'Pragma: public'
);
06
header(
'Cache-Control: must-revalidate, post-check=0, pre-check=0'
);
07
header(
'Cache-Control: private'
,false);
08
header(
'Content-Type: '
.
$mime
);
09
header(
'Content-Disposition: attachment; filename="'
.
basename
(
$file_name
).
'"'
);
10
header(
'Content-Transfer-Encoding: binary'
);
11
header(
'Connection: close'
);
Get current weather using Google API
你是否想知道今天的天气?利用下面这段代码,只有3行代码能够实现。将第一段代码中的ADDRESS替换成想知道的地方。
1
$xml
= simplexml_load_file(
'http://www.google.com/ig/api?weather=ADDRESS'
);
2
$information
=
$xml
->xpath(
"/xml_api_reply/weather/current_conditions/condition"
);
3
echo
$information
[0]->attributes();
Basic PHP whois
利用下面这段代码可以取得一个域名的注册基本信息包括:所有者、创建时间,注册情况等信息。但需要在你的服务器上安装whois unix command,这段代码才能起作用。
01
$domains
=
array
(
'home.pl'
,
'w3c.org'
);
03
function
creation_date(
$domain
) {
04
$lines
=
explode
(
"\n"
, `whois
$domain
`);
05
foreach
(
$lines
as
$line
) {
06
if
(
strpos
(
strtolower
(
$line
),
'created'
) !== false) {
14
foreach
(
$domains
as
$d
) {
15
echo
creation_date(
$d
) .
"\n"
;
Get latitude and longitude from an adress
利用下面这段代码可以从Google Maps API取得一个地方的经度和纬度。
01
function
getLatLong(
$address
){
02
if
(!
is_string
(
$address
))
die
(
"All Addresses must be passed as a string"
);
03
$_url
= sprintf(
'http://maps.google.com/maps?output=js&q=%s'
,rawurlencode(
$address
));
05
if
(
$_result
=
file_get_contents
(
$_url
)) {
06
if
(
strpos
(
$_result
,
'errortips'
) > 1 ||
strpos
(
$_result
,
'Did you mean:'
) !== false)
return
false;
07
preg_match(
'!center:\s*{lat:\s*(-?\d+\.\d+),lng:\s*(-?\d+\.\d+)}!U'
,
$_result
,
$_match
);
08
$_coords
[
'lat'
] =
$_match
[1];
09
$_coords
[
'long'
] =
$_match
[2];
Get domain favicon using PHP and Google
最近,有许多网站或Web应用使用Google提供的服务来获取网站的favicons图标。下面这段代码,可以帮助您实现这个功能。
1
function
get_favicon(
$url
){
2
$url
=
str_replace
(
"http://"
,
''
,
$url
);
3
return
"http://www.google.com/s2/favicons?domain="
.
$url
;
Calculate Paypal fees
Ah, Paypal fees. Every person who ever used the popular online payment service had to pay their fees. So what about a PHP function to easily calculate the fee for a specific amount?
01
function
paypalFees(
$sub_total
,
$round_fee
) {
08
$paypal_fee
= (((
$sub_total
/ 100) *
$fee_percent
) +
$fee_cash
);
10
if
(
$round_fee
== true) {
11
$paypal_fee
=
ceil
(
$paypal_fee
);
15
$grand_total
= (
$sub_total
+
$paypal_fee
);
18
$sub_total
= number_format(
$sub_total
, 2,
'.'
,
','
);
19
$paypal_fee
= number_format(
$paypal_fee
, 2,
'.'
,
','
);
20
$grand_total
= number_format(
$grand_total
, 2,
'.'
,
','
);
23
return
array
(
'grand_total'
=>
$grand_total
,
'paypal_fee'
=>
$paypal_fee
,
'sub_total'
=>
$sub_total
);
原文:http://css.dzone.com/news/10-super-useful-php-snippets
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步