每位程式員和開發者都喜歡讨論他們最愛的代碼片段,尤其是當PHP開發者花費數個小時為網頁編碼或建立應用時,他們更知道這些代碼的重要性。為了節約編碼時間,筆者收集了一些較為實用的代碼片段,幫助開發者提高工作效率。>>>
點選檢視PHP代碼片段(一)
1) Whois query using PHP
——利用PHP擷取Whois請求
利用這段代碼,在特定的域名裡可獲得whois資訊。把域名名稱作為參數,并顯示所有域名的相關資訊。
function
whois_query($domain) {
// fix the domain
name:
$domain =
strtolower(trim($domain));
preg_replace(‘/^http:\/\//i‘, ‘‘, $domain);
preg_replace(‘/^www\./i‘, ‘‘, $domain);
$domain = explode(‘/‘,
$domain);
trim($domain[0]);
// split the TLD from
domain name
$_domain = explode(‘.‘,
$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" =>
"gov" =>
"whois.nic.gov",
"edu" =>
"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" =>
"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" =>
"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是需要付費。
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——擷取記憶體使用率
這段代碼幫助你擷取記憶體使用率。
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
unset($array[$i]);
echo "Final:
Final: 885912
echo "Peak:
".memory_get_peak_usage()。" bytes \n";
Peak: 13687072
4) Display source code of
any webpage——檢視任意網頁源代碼
如果你想檢視網頁源代碼,那麼隻需更改第二行的URL,源代碼就會在網頁上顯示。
<?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請求。
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,就可檢測出位置。
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,
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 :
$state = $regs[1]; } if( $city!=” && $state!=” ){ $location = $city . ‘,
‘ . $state; return $location; }else{ return $default; } }
7) Detect browser
language——檢視浏覽器語言
檢測浏覽器使用的代碼腳本語言。
get_client_language($availableLanguages, $default=‘en‘){
(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
if ($_SERVER[‘HTTPS‘] !=
"on") {
echo "This is not
HTTPS";
}else{
echo "This is
9) Generate CSV file from a
PHP array——在PHP數組中生成。csv 檔案
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;