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:
//
// http://de.wikipedia.org/wiki/whois
//
$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 $array []= md5($i);
}
// let's remove half of the array
for ($i = 0; $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,源代码就会在网页上显示出。
复制代码 代码如下:
$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,
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.清理用户输入
复制代码 代码如下:
@si', // strip out html tags
'@@siu', // strip style tags properly
'@@' // strip multi-line comments
);
$output = preg_replace($search, '', $input);
return $output;
}
?>
$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,
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
;
var_dump(password_strength(super monkey ball));
echo
;
var_dump(password_strength(tr0ub4dor&3));
echo
;
var_dump(password_strength(abc123));
echo
;
var_dump(password_strength(sweet));
15.检测浏览器语言,只提供可用的$availablelanguages作为数组(‘en', ‘de', ‘es')
复制代码 代码如下:
function get_client_language($availablelanguages, $default='en'){
if (isset($_server['http_accept_language'])) {
$langs=explode(',',$_server['http_accept_language']);
//start going through each one
foreach ($langs as $value){
$choice=substr($value,0,2);
if(in_array($choice, $availablelanguages)){
return $choice;
}
}
}
return $default;
}
16.创建数据url
复制代码 代码如下:
function data_uri($file, $mime) {
$contents=file_get_contents($file);
$base64=base64_encode($contents);
echo data:$mime;base64,$base64;
}
17.创建更加友好的页面标题seo url输入示例:$title = “this foo's bar is rockin' cool!”; echo makeseoname($title); //returns: //this-foos-bar-is-rockin-cool
复制代码 代码如下:
function make_seo_name($title) {
return preg_replace('/[^a-z0-9_-]/i', '', strtolower(str_replace(' ', '-', trim($title))));
}
18.终极加密功能
复制代码 代码如下:
// f(ucking) u(ncrackable) e(ncryption) function by blackhatdbl (www.netforme.net)
function fue($hash,$times) {
// execute the encryption(s) as many times as the user wants
for($i=$times;$i>0;$i--) {
// encode with base64...
$hash=base64_encode($hash);
// and md5...
$hash=md5($hash);
// sha1...
$hash=sha1($hash);
// sha256... (one more)
$hash=hash(sha256, $hash);
// sha512
$hash=hash(sha512, $hash);
}
// finaly, when done, return the value
return $hash;
}
19a.tweeter feed runner——使用任意twitter名,可在任意页面上加载用户资源。
复制代码 代码如下:
public function loadtimeline($user, $max = 20){
$this->twiturl .= 'statuses/user_timeline.xml?screen_name='.$user.'&count='.$max;
$ch = curl_init();
curl_setopt($ch, curlopt_url, $this->twiturl);
curl_setopt($ch, curlopt_returntransfer, true);
$this->xml = curl_exec($ch);
return $this;
}
public function gettweets(){
$this->twitterarr = $this->gettimelinearray();
$tweets = array();
foreach($this->twitterarr->status as $status){
$tweets[$status->created_at->__tostring()] = $status->text->__tostring();
}
return $tweets;
}
public function gettimelinearray(){
return simplexml_load_string($this->xml);
}
public function formattweet($tweet){
$tweet = preg_replace(/(http(.+?))( |$)/,$1$3, $tweet);
$tweet = preg_replace(/#(.+?)(\h|\w|$)/, #$1$2, $tweet);
$tweet = preg_replace(/@(.+?)(\h|\w|$)/, @$1$2, $tweet);
return $tweet;
}
19b. tweeter feed runner——用于在主题中创建文件,比如:example.php
复制代码 代码如下:
loadtimeline(phpsnips)->gettweets();
foreach($feed as $time => $message){
echo .$twitter->formattweet($message).
at: .$time.
;
}
