每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当PHP开发者花费数个小时为网页编码或创建应用时,他们更知道这些代码的重要性。为了节约编码时间,笔者收集了一些较为实用的代码片段,帮助开发者提高工作效率。>>>
1) Whois query using PHP ——利用PHP获取Whois请求
利用这段代码,在特定的域名里可获得whois信息。把域名名称作为参数,并显示所有域名的相关信息。
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
|
function
whois_query(
$domain
) {
// fix the domain name:
$domain
=
strtolower
(trim(
$domain
));
$domain
= preg_replace(
'/^http:\/\//i'
,
''
,
$domain
);
$domain
= preg_replace(
'/^www\./i'
,
''
,
$domain
);
$domain
=
explode
(
'/'
,
$domain
);
$domain
= trim(
$domain
[0]);
// split the TLD from domain name
$_domain
=
explode
(
'.'
,
$domain
);
$lst
=
count
(
$_domain
)-1;
$ext
=
$_domain
[
$lst
];
// You find resources and lists
// like these on wikipedia:
//
//
$servers
=
array
(
"biz"
=>
"whois.neulevel.biz"
,
"com"
=>
"whois.internic.net"
,
"us"
=>
"whois.nic.us"
,
"coop"
=>
"whois.nic.coop"
,
"info"
=>
"whois.nic.info"
,
"name"
=>
"whois.nic.name"
,
"net"
=>
"whois.internic.net"
,
"gov"
=>
"whois.nic.gov"
,
"edu"
=>
"whois.internic.net"
,
"mil"
=>
"rs.internic.net"
,
"int"
=>
"whois.iana.org"
,
"ac"
=>
"whois.nic.ac"
,
"ae"
=>
"whois.uaenic.ae"
,
"at"
=>
"whois.ripe.net"
,
"au"
=>
"whois.aunic.net"
,
"be"
=>
"whois.dns.be"
,
"bg"
=>
"whois.ripe.net"
,
"br"
=>
"whois.registro.br"
,
"bz"
=>
"whois.belizenic.bz"
,
"ca"
=>
"whois.cira.ca"
,
"cc"
=>
"whois.nic.cc"
,
"ch"
=>
"whois.nic.ch"
,
"cl"
=>
"whois.nic.cl"
,
"cn"
=>
"whois.cnnic.net.cn"
,
"cz"
=>
"whois.nic.cz"
,
"de"
=>
"whois.nic.de"
,
"fr"
=>
"whois.nic.fr"
,
"hu"
=>
"whois.nic.hu"
,
"ie"
=>
"whois.domainregistry.ie"
,
"il"
=>
"whois.isoc.org.il"
,
"in"
=>
"whois.ncst.ernet.in"
,
"ir"
=>
"whois.nic.ir"
,
"mc"
=>
"whois.ripe.net"
,
"to"
=>
"whois.tonic.to"
,
"tv"
=>
"whois.tv"
,
"ru"
=>
"whois.ripn.net"
,
"org"
=>
"whois.pir.org"
,
"aero"
=>
"whois.information.aero"
,
"nl"
=>
"whois.domain-registry.nl"
);
if
(!isset(
$servers
[
$ext
])){
die
(
'Error: No matching nic server found!'
);
}
$nic_server
=
$servers
[
$ext
];
$output
=
''
;
// connect to whois server:
if
(
$conn
=
fsockopen
(
$nic_server
, 43)) {
fputs
(
$conn
,
$domain
.
"\r\n"
);
while
(!
feof
(
$conn
)) {
$output
.=
fgets
(
$conn
,128);
}
fclose(
$conn
);
}
else
{
die
(
'Error: Could not connect to '
.
$nic_server
.
'!'
); }
return
$output
;
}
|
2) Text messaging with PHP using the TextMagic API ——使用TextMagic API 获取PHP Test信息
TextMagic引入强大的核心API,可轻松将SMS发送到手机。该API是需要付费。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
the TextMagic PHP lib
require
(
'textmagic-sms-api-php/TextMagicAPI.php'
);
// Set the username and password information
$username
=
'myusername'
;
$password
=
'mypassword'
;
// Create a new instance of TM
$router
=
new
TextMagicAPI(
array
(
'username'
=>
$username
,
'password'
=>
$password
));
// Send a text message to '999-123-4567'
$result
=
$router
->send(
'Wake up!'
,
array
(9991234567), true);
// result: Result is: Array ( [messages] => Array ( [19896128] => 9991234567 ) [sent_text] => Wake up! [parts_count] => 1 )
|
3) Get info about your memory usage——获取内存使用率
这段代码帮助你获取内存使用率。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
echo
"Initial: "
.memory_get_usage().
" bytes \n"
;
/* prints
Initial: 361400 bytes
*/
// let's use up some memory
for
(
$i
= 0;
$i
< 100000;
$i
++) {
$array
[]= md5(
$i
);
}
// let's remove half of the array
for
(
$i
= 0;
$i
< 100000;
$i
++) {
unset(
$array
[
$i
]);
}
echo
"Final: "
.memory_get_usage().
" bytes \n"
;
/* prints
Final: 885912 bytes
*/
echo
"Peak: "
.memory_get_peak_usage().
" bytes \n"
;
/* prints
Peak: 13687072 bytes
*/
|
4) Display source code of any webpage——查看任意网页源代码
如果你想查看网页源代码,那么只需更改第二行的URL,源代码就会在网页上显示出。
1
2
3
4
5
|
<?php
// display source code $lines = file('http://google.com/'); foreach ($lines as $line_num => $line) {
// loop thru each line and prepend line numbers
echo
"Line #{$line_num} : "
. htmlspecialchars(
$line
) . "
\n";
}
|
5) Create data uri’s——创建数据uri
通过使用此代码,你可以创建数据Uri,这对在HTML/CSS中嵌入图片非常有用,可帮助节省HTTP请求。
1
2
3
4
5
|
function
data_uri(
$file
,
$mime
) {
$contents
=
file_get_contents
(
$file
);
$base64
=
base64_encode
(
$contents
);
echo
"data:$mime;base64,$base64"
;
}
|
6) Detect location by IP——通过IP检索出地理位置
这段代码帮助你查找特定的IP,只需在功能参数上输入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
|
function
detect_city(
$ip
) {
$default
=
'UNKNOWN'
;
if
(!
is_string
(
$ip
) ||
strlen
(
$ip
) < 1 ||
$ip
==
'127.0.0.1'
||
$ip
==
'localhost'
)
$ip
=
'8.8.8.8'
;
$curlopt_useragent
=
'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)'
;
$url
=
'http://ipinfodb.com/ip_locator.php?ip='
. urlencode(
$ip
);
$ch
= curl_init();
$curl_opt
=
array
( CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_USERAGENT =>
$curlopt_useragent
,
CURLOPT_URL =>
$url
,
CURLOPT_TIMEOUT => 1,
);
curl_setopt_array(
$ch
,
$curl_opt
);
$content
= curl_exec(
$ch
);
if
(!
is_null
(
$curl_info
)) {
$curl_info
= curl_getinfo(
$ch
);
}
curl_close(
$ch
);
if
( preg_match('{
City : ([^<]*)
}i’,
$content
,
$regs
) ) {
$city
=
$regs
[1]; }
if
( preg_match(‘{
State/Province : ([^<]*)
}i’,
$content
,
$regs
) ) {
$state
=
$regs
[1]; }
if
(
$city
!=” &&
$state
!=” ){
$location
=
$city
. ‘, ‘ .
$state
;
return
$location
; }
else
{
return
$default
; } }
|
7) Detect browser language——查看浏览器语言
检测浏览器使用的代码脚本语言。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function
get_client_language(
$availableLanguages
,
$default
=
'en'
){
if
(isset(
$_SERVER
[
'HTTP_ACCEPT_LANGUAGE'
])) {
$langs
=
explode
(
','
,
$_SERVER
[
'HTTP_ACCEPT_LANGUAGE'
]);
foreach
(
$langs
as
$value
){
$choice
=
substr
(
$value
,0,2);
if
(in_array(
$choice
,
$availableLanguages
)){
return
$choice
;
}
}
}
return
$default
;
}
|
8) Check if server is HTTPS——检测服务器是否是HTTPS
1
2
3
4
5
|
if
(
$_SERVER
[
'HTTPS'
] !=
"on"
) {
echo
"This is not HTTPS"
;
}
else
{
echo
"This is HTTPS"
;
}
|
9) Generate CSV file from a PHP array——在PHP数组中生成.csv 文件
1
2
3
4
5
6
7
8
9
10
11
12
|
function
generateCsv(
$data
,
$delimiter
=
','
,
$enclosure
=
'"'
) {
$handle
=
fopen
(
'php://temp'
,
'r+'
);
foreach
(
$data
as
$line
) {
fputcsv
(
$handle
,
$line
,
$delimiter
,
$enclosure
);
}
rewind
(
$handle
);
while
(!
feof
(
$handle
)) {
$contents
.=
fread
(
$handle
, 8192);
}
fclose(
$handle
);
return
$contents
;
}
|
英文出自:Designzum