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 中的类
Oct 09 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
php算开始时间到过期时间的相隔的天数
Jan 12 PHP
PHP中使用gettext来支持多语言的方法
May 02 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
PHP微信PC二维码登陆的实现思路
Jul 13 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
php设计模式之策略模式应用案例详解
Jun 17 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
php header示例代码(推荐)
2010/09/08 PHP
php网站地图生成类示例
2014/01/13 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
Python进阶之尾递归的用法实例
2018/01/31 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
Python按钮的响应事件详解
2019/03/04 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
环境工程求职简历的自我评价范文
2013/10/24 职场文书
应届实习生的自我评价范文
2014/01/05 职场文书
四年级下册教学反思
2014/02/01 职场文书
进步之星获奖感言
2014/02/22 职场文书
《阳光》教学反思
2014/02/23 职场文书
师德师风个人反思
2014/04/28 职场文书
个人考核材料
2014/05/15 职场文书
挂职学习心得体会
2014/09/09 职场文书
民事答辩状格式范文
2015/05/21 职场文书
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA
js作用域及作用域链工作引擎
2022/07/07 Javascript