Welcome 微信登录

首页 / 网页编程 / PHP / 10个超级有用的PHP代码片段果断收藏

本文小编将为你奉上10个超级有用的PHP代码片段。


1.查找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 
2.完善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;} } 
3.清理用户输入

]*?>.*?@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;} ?> $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; } ?> 
4.通过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; } } 
5.设置密码强度

 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")); 
6.检测浏览器语言,只提供可用的$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 oneforeach ($langs as $value){$choice=substr($value,0,2); if(in_array($choice, $availableLanguages)){ return $choice;}}}return $default; } 
7.创建数据URL

function data_uri($file, $mime) {$contents=file_get_contents($file);$base64=base64_encode($contents);echo "data:$mime;base64,$base64"; } 
8.创建更加友好的页面标题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)))); } 
9.终极加密功能

// 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 wantsfor($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 valuereturn $hash; } 
10a.Tweeter Feed Runner——使用任意twitter名,可在任意页面上加载用户资源。

pversion;}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;} } 
10b. Tweeter Feed Runner——用于在主题中创建文件,比如:example.php

loadTimeline("phpsnips")->getTweets(); foreach($feed as $time => $message){echo "<div class="tweet">".$twitter->formatTweet($message)."<br />At: ".$time."</div>"; } 

直接拿来用,10个PHP代码片段,还犹豫什么,果断收藏吧