10个经常用的php片段
1.查找Longitudes与Latitudes之间的距离
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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.清理用户输入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
]*?>.*?@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(城市、国家)检测地理位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
function detect_city($ip)
{
$ default = 'Hollywood,
CA' ;
if (!is_string($ip)
|| strlen($ip) <code class="js string">'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 : ([^
<code class="js string">}i' , $content, $regs) ) { $city = $regs[1]; } if (
preg_match( '{
State/Province : ([^
<code class="js string">}i' , $content, $regs) ) { $state = $regs[1]; } if (
$city!= '' && $state!= '' ){
$location = $city . ', ' . $state; return $location;
} else { return $ default ;
} }
|
5.设置密码强度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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’)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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
1 2 3 4 5 |
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
1 2 3 |
function make_seo_name($title)
{
return preg_replace( '/[^a-z0-9_-]/i' , '' ,
strtolower(str_replace( ' ' , '-' ,
trim($title))));
}
|
9.终极加密功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 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名,可在任意页面上加载用户资源。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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;
}
}
|
1 2 3 4 |
loadTimeline( "phpsnips" )->getTweets();
foreach($feed as $time => $message){
echo " .$twitter->formatTweet($message). " .$time. "" ;
}
|
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago
By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago
By 尊渡假赌尊渡假赌尊渡假赌
How Long Does It Take To Beat Split Fiction?
3 weeks ago
By DDD
R.E.P.O. Save File Location: Where Is It & How to Protect It?
3 weeks ago
By DDD

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)
