每位程序員和開發者都喜歡討論他們最愛的代碼片段,尤其是當PHP開發者花費數個小時為網頁編碼或創建應用時,他們更知道這些代碼的重要性。為了節約編碼時間,筆者收集了一些較為實用的代碼片段,幫助開發者提高工作效率。>>>
利用這段代碼,在特定的域名裡可獲得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 81function
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:
//
// <a href="http://de.wikipedia.org/wiki/Whois">http://de.wikipedia.org/wiki/Whois</a>
//
$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
;
}
TextMagic引入強大的核心API,可輕松將SMS發送到手機。該API是需要付費。
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17the 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 )
這段代碼幫助你獲取內存使用率。
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24echo
"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
*/
如果你想查看網頁源代碼,那麼只需更改第二行的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";
}
通過使用此代碼,你可以創建數據Uri,這對在HTML/CSS中嵌入圖片非常有用,可幫助節省HTTP請求。
? 1 2 3 4 5function
data_uri(
$file
,
$mime
) {
$contents
=
file_get_contents
(
$file
);
$base64
=
base64_encode
(
$contents
);
echo
"data:$mime;base64,$base64"
;
}
這段代碼幫助你查找特定的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 30function
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,
CURLOPT_REFERER =>
'http://'
.
$_SERVER
[
'HTTP_HOST'
],
);
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
; } }
檢測浏覽器使用的代碼腳本語言。
? 1 2 3 4 5 6 7 8 9 10 11 12 13function
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
;
}
if
(
$_SERVER
[
'HTTPS'
] !=
"on"
) {
echo
"This is not HTTPS"
;
}
else
{
echo
"This is HTTPS"
;
}
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