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

本文小编将为你奉上10个超级有用的PHP代码片段。

1.查找Longitudes与Latitudes之间的距离

$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功能

<div class="jb51code">
<pre class="brush:php;">
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,CURLOPT_POSTFIELDS,$post);
}
$output = curl_exec($ch);
curl_close($ch);
if($print) {
print($output);
} else {
return $output;
}
}

3.清理用户输入

<div class="jb51code">
<pre class="brush:php;">
]?>.?@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(城市、国家)检测地理位置

<div class="jb51code">
<pre class="brush:php;">
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',$regs) ) { $state = $regs[1]; } if( $city!='' && $state!='' ){ $location = $city . ',' . $state; return $location; }else{ return $default; } }

5.设置密码强度

<div class="jb51code">
<pre class="brush:php;">
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')

<div class="jb51code">
<pre class="brush:php;">
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,2);
if(in_array($choice,$availableLanguages)){
return $choice;

}

}
}
return $default;
}

7.创建数据URL

<div class="jb51code">
<pre class="brush:php;">
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

<div class="jb51code">
<pre class="brush:php;">
function make_seo_name($title) {
return pregreplace('/[^a-z0-9-]/i',strtolower(str_replace(' ','-',trim($title))));
}

9.终极加密功能

<div class="jb51code">
<pre class="brush:php;">
// 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名,可在任意页面上加载用户资源。

<div class="jb51code">
<pre class="brush:php;">
pversion;
}
public function loadTimeline($user,$max = 20){
$this->twitURL .= 'statuses/user_timeline.xml?screen_name='.$user.'&count='.$max;
$ch = curl_init();
curl_setopt($ch,$this->twitURL);
curl_setopt($ch,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

getTweets(); foreach($feed as $time => $message){ echo "
".$twitter->formatTweet($message)."
At: ".$time."
"; }

直接拿来用,10个PHP代码片段,还犹豫什么,果断收藏吧

php代码片段php直接显示代码php直接输出代码php自定义代码片段

相关文章

如何选择合适的 C++ Web 开发框架?
利用 C++ 框架构建高并发 Web 应用的策略
用 C++ 框架开发跨平台图形应用程序
golang框架中安全编码实践的最佳指南是什么?
golang框架与其他语言框架在设计理念上的区别有哪些?
C++ 图形框架与其他语言框架的比较