您的位置:首页 > 编程语言 > PHP开发

直接拿来用,九个超实用的PHP代码片段(二)

2014-03-15 22:54 483 查看
每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当PHP开发者花费数个小时为网页编码或创建应用时,他们更知道这些代码的重要性。为了节约编码时间,笔者收集了一些较为实用的代码片段,帮助开发者提高工作效率。>>> 点击查看PHP代码片段(一)





1) Whois query using PHP ——利用PHP获取Whois请求

利用这段代码,在特定的域名里可获得whois信息。把域名名称作为参数,并显示所有域名的相关信息。

[js]
view plaincopyprint?





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;
}

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是需要付费。

[js]
view plaincopyprint?





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 )

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——获取内存使用率

这段代码帮助你获取内存使用率。

[js]
view plaincopyprint?





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
*/

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,源代码就会在网页上显示出。

[js]
view plaincopyprint?





<?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";
}

<?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请求。

[js]
view plaincopyprint?





function data_uri($file, $mime) {

$contents=file_get_contents($file);
$base64=base64_encode($contents);
echo "data:$mime;base64,$base64";

}

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,就可检测出位置。

[js]
view plaincopyprint?





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; } }

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——查看浏览器语言

检测浏览器使用的代码脚本语言。

[js]
view plaincopyprint?





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;

}

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

[js]
view plaincopyprint?





if ($_SERVER['HTTPS'] !=
"on") {
echo "This is not HTTPS";

}else{
echo "This is 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 文件

[js]
view plaincopyprint?





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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: