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


Posted in PHP onSeptember 23, 2015

本文小编将为你奉上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 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代码片段,还犹豫什么,果断收藏吧

PHP 相关文章推荐
自己前几天写的无限分类类
Feb 14 PHP
PHP开启gzip页面压缩实例代码
Mar 11 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
PHP JS Ip地址及域名格式检测代码
Sep 27 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
php+mysqli批量查询多张表数据的方法
Jan 29 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
PHP使用PDO访问oracle数据库的步骤详解
Sep 29 PHP
PHP快速排序算法实现的原理及代码详解
Apr 03 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
Discuz!X中SESSION机制实例详解
Sep 23 #PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 #PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 #PHP
php实现简单的MVC框架实例
Sep 23 #PHP
php实现的单一入口应用程序实例分析
Sep 23 #PHP
PHP中常见的缓存技术实例分析
Sep 23 #PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 #PHP
You might like
PHP脚本的10个技巧(8)
2006/10/09 PHP
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
2016/06/08 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
Python中的True,False条件判断实例分析
2015/01/12 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
python对json的相关操作实例详解
2017/01/04 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
护士求职推荐信范文
2013/11/23 职场文书
教师评优事迹材料
2014/01/10 职场文书
英语教育专业自荐信
2014/05/29 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
浅析Python实现DFA算法
2021/06/26 Python
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server