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

时间: 2015-09-21

46 个非常有用的 PHP 代码片段

这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- 1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言发送 SMS,需要一个 SMS gateway.大部分的 SMS 会提供一个 API,这里是使用 MSG91 作为 SMS gateway. function send_sms($mobile,$msg) { $a

9个实用的PHP代码片段分享

一.查看邮件是否已被阅读        当你发送邮件时,你肯定很想知道你的邮件是否已被对方查看.下面的代码就能实现记录阅读你邮件的IP地址,还有实际的阅读日期和时间. 复制代码 代码如下: error_reporting(0); Header("Content-Type: image/jpeg"); //Get IP if (!empty($_SERVER['HTTP_CLIENT_IP'])) {   $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif

超级实用的7个PHP代码片段分享

1.超级简单的页面缓存 如果你的工程项目不是基于 CMS 系统或框架,打造一个简单的缓存系统将会非常实在.下面的代码很简单,但是对小网站而言能切切实实解决问题. 复制代码 代码如下: <?php // define the path and name of cached file $cachefile = 'cached-files/'.date('M-d-Y').'.php'; // define how long we want to keep the file in seconds. I

10个超级有用值得收藏的PHP代码片段

尽管PHP经常被人诟病,被人贬低,被人当玩笑开,事实证明,PHP是全世界网站开发中使用率最高的编程语言.PHP最大的缺点是太简单,语法不严谨,框架体系很弱,但这也是它最大的优点,一个有点编程背景的普通人,只需要学习PHP半天时间,就可以上手开始开发web应用了. 网上有人总结几种编程语言的特点,我觉得也挺有道理的: 复制代码 代码如下: PHP 就是: Quick and Dirty Java 就是: Beauty and Slowly Ruby 就是: Quick and Beauty pyt

必须收藏的23个php实用代码片段

在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- 1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言发送 SMS,需要一个 SMS gateway.大部分的 SMS 会提供一个 API,这里是使用 M

6个超实用的PHP代码片段

一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); $contents = fread($handle, filesize($file)); fclose($handle); $lines = explode("n", $contents); $arr = array(); foreach($lines as $line){ list($w

10个实用的PHP代码片段

关键词高亮 复制代码 代码如下: function highlight($sString, $aWords) { if (!is_array ($aWords) || empty ($aWords) || !is_string ($sString)) { return false; } $sWords = implode ('|', $aWords); return preg_replace ('@\b('.$sWords.')\b@si', '<strong style="backgro

必须收藏的php实用代码片段

在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发PHP 项目. 之前已经为大家分享了<必须收藏的23个php实用代码片段>. 这些PHP 片段对于PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- 24. 从 PHP 数据创建 CSV 文件 function generateCsv($data, $delimiter = ',', $enclosure = '"') { $handle = fopen('php://temp'

又十个超级有用的PHP代码片段

好东西要大家一起分享,上次分享了十个,这次再来十个超级有用的PHP代码片段. 1. 发送短信 调用 TextMagic API. // Include the TextMagic PHP lib require('textmagic-sms-api-php/TextMagicAPI.php'); // Set the username and password information $username = 'myusername'; $password = 'mypassword'; // C

7个超级实用的PHP代码片段

1.超级简单的页面缓存 如果你的工程项目不是基于 CMS 系统或框架,打造一个简单的缓存系统将会非常实在.下面的代码很简单,但是对小网站而言能切切实实解决问题. 复制代码 代码如下: <?php // define the path and name of cached file $cachefile = 'cached-files/'.date('M-d-Y').'.php'; // define how long we want to keep the file in seconds. I

19个超实用的PHP代码片段

1) Whois query using PHP --利用PHP获取Whois请求 利用这段代码,在特定的域名里可获得whois信息.把域名名称作为参数,并显示所有域名的相关信息. 复制代码 代码如下: function whois_query($domain) { // fix the domain name:      $domain = strtolower(trim($domain));      $domain = preg_replace('/^http:\/\//i', '', $

12个超实用的JQuery代码片段

本文收集了12段非常实用的jQuery代码片段,你可以直接复制黏贴到代码里,但请开发者注意了,要理解代码再使用哦.下面就让我们一起来享受jQuery代码的魅力之处吧. 1. 导航菜单背景切换效果 在项目的前端页面里,相对于其它的导航菜单,激活的导航菜单需要设置不同的背景.这种效果实现的方式有很多种,下面是使用JQuery实现的一种方式: <ul id='nav'> <li>导航一</li> <li>导航二</li> <li>导航三&l

30秒学会30个超实用Python代码片段【收藏版】

许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握的代码片段. 1. 唯一性 以下方法可以检查给定列表是否有重复的地方,可用set()的属性将其从列表中删除. def all_unique(lst): return len(lst) == len(set(lst)) x = [1,1,2,2,3,2,3,4,5,6] y = [1,2,3,4,5]

程序员必知35个jQuery 代码片段

jQuery如今已经成为Web开发中最流行的JavaScript库,通过jQuery和大量的插件,你可以轻松实现各种绚丽的效果.本文将为你介绍一些jquery实用的技巧,希望可以帮助你更加高效地使用jQuery. 收集的35个 jQuery 小技巧/代码片段,可以帮你快速开发. 1. 禁止右键点击 $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; }); });

【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)

本文实例总结了jQuery实用代码片段.分享给大家供大家参考,具体如下: //each遍历文本框 清空默认值 $(".maincenterul1").find("input,textarea").each(function () { //保存当前文本框的值 var vdefault = this.value; $(this).focus(function () { if (this.value == vdefault) { this.value = "&q

web前端开发JQuery常用实例代码片段(50个)

本文给大家展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成.这些都是我尽量记住的有着最佳性能的代码段,因此如果你发现你任何可以做得更好的地方的话,欢迎把你的版本粘贴在评论中!我希望你在这一文章中能找到有帮助的东西. 1. 如何创建嵌套的过滤器 //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下