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 相关文章推荐
认识并使用PHP超级全局变量
Jan 26 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
php中define用法实例
Jul 30 PHP
PHP类相关知识点实例总结
Sep 28 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
PHP addslashes()函数讲解
Feb 03 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 PHP
laravel5表单唯一验证的实例代码
Sep 30 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
咖啡语言
2021/03/03 咖啡文化
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
js中的闭包学习心得
2018/02/06 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python数据类型详解(二)列表
2016/05/08 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
Python如何将字符串转换为日期
2020/07/31 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
应届大专毕业生自我鉴定
2014/04/08 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
银行转正自我鉴定
2014/09/29 职场文书
看上去很美观后感
2015/06/10 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS