10个超级有用的PHP代码片段果断收藏

前端技术 2023/09/07 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 one 
 foreach ($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 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; 
} 

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代码片段,还犹豫什么,果断收藏吧

本文地址:https://www.stayed.cn/item/18264

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。