10个经常用的php片段
Jun 13, 2016 am 09:42 AM
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. "" ;
}
|
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heißer Artikel
Repo: Wie man Teamkollegen wiederbelebt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Wie lange dauert es, um Split Fiction zu schlagen?
3 Wochen vor
By DDD
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌

Hot-Tools-Tags

Heißer Artikel
Repo: Wie man Teamkollegen wiederbelebt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Wie lange dauert es, um Split Fiction zu schlagen?
3 Wochen vor
By DDD
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)
