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;
}
10.查找Longitudes与Latitudes之间的距离
function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) {
$theta = $longitude1 - $longitude2;
$miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
$miles = acos($miles);
$miles = rad2deg($miles);
$miles = $miles * 60 * 1.1515;
$feet = $miles * 5280;
$yards = $feet / 3;
$kilometers = $miles * 1.609344;
$meters = $kilometers * 1000;
return compact(\'miles\',\'feet\',\'yards\',\'kilometers\',\'meters\');
}
$point1 = array(\'lat\' => 40.770623, \'long\' => -73.964367);
$point2 = array(\'lat\' => 40.758224, \'long\' => -73.917404);
$distance = getDistanceBetweenPointsNew($point1[\'lat\'], $point1[\'long\'], $point2[\'lat\'], $point2[\'long\']);
foreach ($distance as $unit => $value) {
echo $unit.\': \'.number_format($value,4).\'
\';
}
The example returns the following:
miles: 2.6025
feet: 13,741.4350
yards: 4,580.4783
kilometers: 4.1884
meters: 4,188.3894
11.完善cURL功能
function xcurl($url,$ref=null,$post=array(),$ua=\"Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre\",$print=false) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
if(!empty($ref)) {
curl_setopt($ch, CURLOPT_REFERER, $ref);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(!empty($ua)) {
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
}
if(count($post) > 0){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
$output = curl_exec($ch);
curl_close($ch);
if($print) {
print($output);
} else {
return $output;
}
}
12.清理用户输入
<?php
function cleanInput($input) {
$search = array(
\'@<script[^>]*?>.*?</script>@si\', // Strip out javascript
\'@<[\\/\\!]*?[^<>]*?>@si\', // Strip out HTML tags
\'@<style[^>]*?>.*?</style>@siU\', // Strip style tags properly
\'@<![\\s\\S]*?--[ \\t\\n\\r]*>@\' // Strip multi-line comments
);
$output = preg_replace($search, \'\', $input);
return $output;
}
?>
<?php
function sanitize($input) {
if (is_array($input)) {
foreach($input as $var=>$val) {
$output[$var] = sanitize($val);
}
}
else {
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
$input = cleanInput($input);
$output = mysql_real_escape_string($input);
}
return $output;
}
?>
13.通过IP(城市、国家)检测地理位置
function detect_city($ip) {
$default = \'Hollywood, CA\';
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; } }
14.设置密码强度
function password_strength($string){
$h = 0;
$size = strlen($string);
foreach(count_chars($string, 1) as $v){
$p = $v / $size;
$h -= $p * log($p) / log(2);
}
$strength = ($h / 4) * 100;
if($strength > 100){
$strength = 100;
}
return $strength;
}
var_dump(password_strength(\"Correct Horse Battery Staple\"));
echo \"<br>\";
var_dump(password_strength(\"Super Monkey Ball\"));
echo \"<br>\";
var_dump(password_strength(\"Tr0ub4dor&3\"));
echo \"<br>\";
var_dump(password_strength(\"abc123\"));
echo \"<br>\";
var_dump(password_strength(\"sweet\"));