19个超实用的PHP代码片段

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

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

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

代码如下:
$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',$regs) ) { $state = $regs[1]; } if( $city!=” && $state!=” ){ $location = $city . ‘,‘ . $state; return $location; }else{ return $default; } }

7) Detect browser language——查看浏览器语言

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

代码如下:
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$langs=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']); foreach ($langs as $value){
$choice=substr($value,2);
if(in_array($choice,$availableLanguages)){
return $choice;
}
}
}
return $default;
}

8) Check if server is HTTPS——检测服务器是否是HTTPS

代码如下:
echo "This is not HTTPS";
}else{
echo "This is HTTPS";
}

9) Generate CSV file from a PHP array——在PHP数组中生成.csv 文件
代码如下:
$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之间的距离

代码如下:
$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:
代码如下:
feet: 13,741.4350
yards: 4,580.4783
kilometers: 4.1884
meters: 4,188.3894

11.完善cURL功能

代码如下:
$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,CURLOPT_POSTFIELDS,$post);
}
$output = curl_exec($ch);
curl_close($ch);
if($print) {
print($output);
} else {
return $output;
}
}

12.清理用户输入
代码如下:
function cleanInput($input) { $search = array(
'@]*?>.*?@si',// Strip out javascript
'@<[\/\!]*?[^<>]*?>@si',// Strip out HTML tags
'@]*?>.*?@siU',// Strip style tags properly
'@@' // Strip multi-line comments
); $output = preg_replace($search,$input);
return $output;
}
?>
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(城市、国家)检测地理位置
代码如下:
1,$curl_opt); $content = curl_exec($ch); if (!is_null($curl_info)) {
$curl_info = curl_getinfo($ch);
} curl_close($ch); if ( preg_match('{
City : ([^<]*)
}i',$regs) ) { $city = $regs[1]; } if ( preg_match('{ State/Province : ([^<]*) }i',$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')
代码如下:
foreach ($langs as $value){ $choice=substr($value,$availableLanguages)){
return $choice; } }
}
return $default;
}

16.创建数据URL

代码如下:
}

17.创建更加友好的页面标题SEO URL

输入示例:$title = “This foo's bar is rockin' cool!”; echo makeseoname($title); //RETURNS: //this-foos-bar-is-rockin-cool

代码如下:
return preg_replace('/[^a-z0-9_-]/i',strtolower(str_replace(' ','-',trim($title))));
}

18.终极加密功能
代码如下:
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,$this->twitURL);
curl_setopt($ch,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."
";
}

相关文章

文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Onl...
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在...
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代...
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔...
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了...
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安...