每位程序員和開發者都喜歡討論他們最愛的代碼片段,尤其是當PHP開發者花費數個小時為網頁編碼或創建應用時,他們更知道這些代碼的重要性。為了節約編碼時間,筆者收集了一些較為實用的代碼片段,幫助開發者提高工作效率。>>> 點擊查看PHP代碼片段(一)
1) Whois query using PHP ——利用PHP獲取Whois請求
利用這段代碼,在特定的域名裡可獲得whois信息。把域名名稱作為參數,並顯示所有域名的相關信息。
-
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:
-
//
-
// <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;
-
}
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
-
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,源代碼就會在網頁上顯示出。
-
<?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 : ([^<]*)
-
-
}i’, $content, $regs) ) { $state = $regs[1]; } if( $city!=” && $state!=” ){ $location = $city . ‘, ‘ . $state; return $location; }else{ return $default; } }
7) Detect browser language——查看浏覽器語言
檢測浏覽器使用的代碼腳本語言。
-
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
-
if ($_SERVER['HTTPS'] != "on") {
-
echo "This is not HTTPS";
-
}else{
-
echo "This is HTTPS";
-
}
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;
-
}
英文出自:Designzum