AI编程助手
AI免费问答

10个经常用的php片段_PHP教程

  2016-07-13 10:37   1390浏览 原创

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 <code class="js keyword">function <code class="js plain">getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) { <code class="js spaces"> <code class="js plain">$theta = $longitude1 - $longitude2; <code class="js spaces"> <code class="js plain">$miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); <code class="js spaces"> <code class="js plain">$miles = acos($miles); <code class="js spaces"> <code class="js plain">$miles = rad2deg($miles); <code class="js spaces"> <code class="js plain">$miles = $miles * 60 * 1.1515; <code class="js spaces"> <code class="js plain">$feet = $miles * 5280; <code class="js spaces"> <code class="js plain">$yards = $feet / 3; <code class="js spaces"> <code class="js plain">$kilometers = $miles * 1.609344; <code class="js spaces"> <code class="js plain">$meters = $kilometers * 1000; <code class="js spaces"> <code class="js keyword">return <code class="js plain">compact(<code class="js string">'miles'<code class="js plain">,<code class="js string">'feet'<code class="js plain">,<code class="js string">'yards'<code class="js plain">,<code class="js string">'kilometers'<code class="js plain">,<code class="js string">'meters'<code class="js plain">); <code class="js plain">} <code class="js plain">$point1 = array(<code class="js string">'lat' <code class="js plain">=> 40.770623, <code class="js string">'long' <code class="js plain">=> -73.964367); <code class="js plain">$point2 = array(<code class="js string">'lat' <code class="js plain">=> 40.758224, <code class="js string">'long' <code class="js plain">=> -73.917404); <code class="js plain">$distance = getDistanceBetweenPointsNew($point1[<code class="js string">'lat'<code class="js plain">], $point1[<code class="js string">'long'<code class="js plain">], $point2[<code class="js string">'lat'<code class="js plain">], $point2[<code class="js string">'long'<code class="js plain">]); <code class="js plain">foreach ($distance as $unit => $value) { <code class="js spaces"> <code class="js plain">echo $unit.<code class="js string">': '<code class="js plain">.number_format($value,4).<code class="js string">' <code class="js string">'<code class="js plain">; <code class="js plain">} <code class="js plain">The example returns the following: <code class="js plain">miles: 2.6025 <code class="js plain">feet: 13,741.4350 <code class="js plain">yards: 4,580.4783 <code class="js plain">kilometers: 4.1884 <code class="js plain">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 <code class="js keyword">function <code class="js plain">xcurl($url,$ref=<code class="js keyword">null<code class="js plain">,$post=array(),$ua=<code class="js string">"Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre"<code class="js plain">,$print=<code class="js keyword">false<code class="js plain">) { <code class="js spaces"> <code class="js plain">$ch = curl_init(); <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_AUTOREFERER, <code class="js keyword">true<code class="js plain">); <code class="js spaces"> <code class="js keyword">if<code class="js plain">(!empty($ref)) { <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_REFERER, $ref); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_URL, $url); <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_HEADER, 0); <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); <code class="js spaces"> <code class="js keyword">if<code class="js plain">(!empty($ua)) { <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_USERAGENT, $ua); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js keyword">if<code class="js plain">(count($post) > 0){ <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_POST, 1); <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_POSTFIELDS, $post); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">$output = curl_exec($ch); <code class="js spaces"> <code class="js plain">curl_close($ch); <code class="js spaces"> <code class="js keyword">if<code class="js plain">($print) { <code class="js spaces"> <code class="js plain">print($output); <code class="js spaces"> <code class="js plain">} <code class="js keyword">else <code class="js plain">{ <code class="js spaces"> <code class="js keyword">return <code class="js plain">$output; <code class="js spaces"> <code class="js plain">} <code class="js plain">}



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 <code class="js plain">]*?>.*?@si<code class="js string">', // Strip out javascript <code class="js spaces"> <code class="js string">'<code class="js plain">@]*?>@si<code class="js string">', // Strip out HTML tags <code class="js spaces"> <code class="js string">'<code class="js plain">@]*?>.*?@siU<code class="js string">', // Strip style tags properly <code class="js spaces"> <code class="js string">'<code class="js plain">@@<code class="js string">' // Strip multi-line comments <code class="js spaces"> <code class="js string">); <code class="js spaces"> <code class="js string">$output = preg_replace($search, '<code class="js plain">', $input); <code class="js spaces"> <code class="js keyword">return <code class="js plain">$output; <code class="js spaces"> <code class="js plain">} <code class="js plain">?> <code class="js plain">$val) { <code class="js spaces"> <code class="js plain">$output[$<code class="js keyword">var<code class="js plain">] = sanitize($val); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js keyword">else <code class="js plain">{ <code class="js spaces"> <code class="js keyword">if <code class="js plain">(get_magic_quotes_gpc()) { <code class="js spaces"> <code class="js plain">$input = stripslashes($input); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">$input = cleanInput($input); <code class="js spaces"> <code class="js plain">$output = mysql_real_escape_string($input); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js keyword">return <code class="js plain">$output; <code class="js plain">} <code class="js plain">?>



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 <code class="js keyword">function <code class="js plain">detect_city($ip) { <code class="js spaces"> <code class="js plain">$<code class="js keyword">default <code class="js plain">= <code class="js string">'Hollywood, CA'<code class="js plain">; <code class="js spaces"> <code class="js keyword">if <code class="js plain">(!is_string($ip) || strlen($ip) <code class="js string">'127.0.0.1' <code class="js plain">|| $ip == <code class="js string">'localhost'<code class="js plain">) $ip = <code class="js string">'8.8.8.8'<code class="js plain">; $curlopt_useragent = <code class="js string">'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)'<code class="js plain">; $url = <code class="js string">'http://ipinfodb.com/ip_locator.php?ip=' <code class="js plain">. urlencode($ip); $ch = curl_init(); $curl_opt = array( CURLOPT_FOLLOWLOCATION => 1, <code class="js spaces"> <code class="js plain">CURLOPT_HEADER => 0, <code class="js spaces"> <code class="js plain">CURLOPT_RETURNTRANSFER => 1, <code class="js spaces"> <code class="js plain">CURLOPT_USERAGENT => $curlopt_useragent, <code class="js spaces"> <code class="js plain">CURLOPT_URL => $url, <code class="js spaces"> <code class="js plain">CURLOPT_TIMEOUT => 1, <code class="js spaces"> <code class="js plain">CURLOPT_REFERER => <code class="js string">'http://' <code class="js plain">. $_SERVER[<code class="js string">'HTTP_HOST'<code class="js plain">], <code class="js spaces"> <code class="js plain">); <code class="js spaces"> <code class="js plain">curl_setopt_array($ch, $curl_opt); <code class="js spaces"> <code class="js plain">$content = curl_exec($ch); <code class="js spaces"> <code class="js keyword">if <code class="js plain">(!is_null($curl_info)) { <code class="js spaces"> <code class="js plain">$curl_info = curl_getinfo($ch); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">curl_close($ch); <code class="js spaces"> <code class="js keyword">if <code class="js plain">( preg_match(<code class="js string">'{ <code class="js spaces"> <code class="js string">City : ([^ <code class="js string">}i'<code class="js plain">, $content, $regs) ) { $city = $regs[1]; } <code class="js keyword">if <code class="js plain">( preg_match(<code class="js string">'{ <code class="js spaces"> <code class="js string">State/Province : ([^ <code class="js string">}i'<code class="js plain">, $content, $regs) ) { $state = $regs[1]; } <code class="js keyword">if<code class="js plain">( $city!=<code class="js string">'' <code class="js plain">&& $state!=<code class="js string">'' <code class="js plain">){ $location = $city . <code class="js string">', ' <code class="js plain">. $state; <code class="js keyword">return <code class="js plain">$location; }<code class="js keyword">else<code class="js plain">{ <code class="js keyword">return <code class="js plain">$<code class="js keyword">default<code class="js plain">; } }



5.设置密码强度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <code class="js plain">100){ <code class="js spaces"> <code class="js plain">$strength = 100; <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js keyword">return <code class="js plain">$strength; <code class="js plain">} <code class="js plain">var_dump(password_strength(<code class="js string">"Correct Horse Battery Staple"<code class="js plain">)); <code class="js plain">echo <code class="js string">" <code class="js string">"<code class="js plain">; <code class="js plain">var_dump(password_strength(<code class="js string">"Super Monkey Ball"<code class="js plain">)); <code class="js plain">echo <code class="js string">" <code class="js string">"<code class="js plain">; <code class="js plain">var_dump(password_strength(<code class="js string">"Tr0ub4dor&3"<code class="js plain">)); <code class="js plain">echo <code class="js string">" <code class="js string">"<code class="js plain">; <code class="js plain">var_dump(password_strength(<code class="js string">"abc123"<code class="js plain">)); <code class="js plain">echo <code class="js string">" <code class="js string">"<code class="js plain">; <code class="js plain">var_dump(password_strength(<code class="js string">"sweet"<code class="js plain">));



6.检测浏览器语言,只提供可用的$availableLanguages作为数组(‘en’, ‘de’, ‘es’)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <code class="js keyword">function <code class="js plain">get_client_language($availableLanguages, $<code class="js keyword">default<code class="js plain">=<code class="js string">'en'<code class="js plain">){ <code class="js spaces"> <code class="js spaces"> <code class="js keyword">if <code class="js plain">(isset($_SERVER[<code class="js string">'HTTP_ACCEPT_LANGUAGE'<code class="js plain">])) { <code class="js spaces"> <code class="js spaces"> <code class="js plain">$langs=explode(<code class="js string">','<code class="js plain">,$_SERVER[<code class="js string">'HTTP_ACCEPT_LANGUAGE'<code class="js plain">]); <code class="js spaces"> <code class="js comments">//start going through each one <code class="js spaces"> <code class="js plain">foreach ($langs as $value){ <code class="js spaces"> <code class="js spaces"> <code class="js plain">$choice=substr($value,0,2); <code class="js spaces"> <code class="js keyword">if<code class="js plain">(in_array($choice, $availableLanguages)){ <code class="js spaces"> <code class="js keyword">return <code class="js plain">$choice; <code class="js spaces"> <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js keyword">return <code class="js plain">$<code class="js keyword">default<code class="js plain">; <code class="js plain">}



7.创建数据URL
1 2 3 4 5 <code class="js keyword">function <code class="js plain">data_uri($file, $mime) { <code class="js spaces"> <code class="js plain">$contents=file_get_contents($file); <code class="js spaces"> <code class="js plain">$base64=base64_encode($contents); <code class="js spaces"> <code class="js plain">echo <code class="js string">"data:$mime;base64,$base64"<code class="js plain">; <code class="js plain">}



8.创建更加友好的页面标题SEO URL 输入示例:$title = “This foo’s bar is rockin’ cool!”; echo makeseoname($title); //RETURNS: //this-foos-bar-is-rockin-cool
1 2 3 <code class="js keyword">function <code class="js plain">make_seo_name($title) { <code class="js spaces"> <code class="js keyword">return <code class="js plain">preg_replace(<code class="js string">'/[^a-z0-9_-]/i'<code class="js plain">, <code class="js string">''<code class="js plain">, strtolower(str_replace(<code class="js string">' '<code class="js plain">, <code class="js string">'-'<code class="js plain">, trim($title)))); <code class="js plain">}



9.终极加密功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <code class="js comments">// f(ucking) u(ncrackable) e(ncryption) function by BlackHatDBL (www.netforme.net) <code class="js keyword">function <code class="js plain">fue($hash,$times) { <code class="js spaces"> <code class="js comments">// Execute the encryption(s) as many times as the user wants <code class="js spaces"> <code class="js keyword">for<code class="js plain">($i=$times;$i>0;$i--) { <code class="js spaces"> <code class="js comments">// Encode with base64... <code class="js spaces"> <code class="js plain">$hash=base64_encode($hash); <code class="js spaces"> <code class="js comments">// and md5... <code class="js spaces"> <code class="js plain">$hash=md5($hash); <code class="js spaces"> <code class="js comments">// sha1... <code class="js spaces"> <code class="js plain">$hash=sha1($hash); <code class="js spaces"> <code class="js comments">// sha256... (one more) <code class="js spaces"> <code class="js plain">$hash=hash(<code class="js string">"sha256"<code class="js plain">, $hash); <code class="js spaces"> <code class="js comments">// sha512 <code class="js spaces"> <code class="js plain">$hash=hash(<code class="js string">"sha512"<code class="js plain">, $hash); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js comments">// Finaly, when done, return the value <code class="js spaces"> <code class="js keyword">return <code class="js plain">$hash; <code class="js plain">}



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 <code class="js plain">pversion; <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">public <code class="js keyword">function <code class="js plain">loadTimeline($user, $max = 20){ <code class="js spaces"> <code class="js plain">$<code class="js keyword">this<code class="js plain">->twitURL .= <code class="js string">'statuses/user_timeline.xml?screen_name='<code class="js plain">.$user.<code class="js string">'&count='<code class="js plain">.$max; <code class="js spaces"> <code class="js plain">$ch = curl_init(); <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_URL, $<code class="js keyword">this<code class="js plain">->twitURL); <code class="js spaces"> <code class="js plain">curl_setopt($ch, CURLOPT_RETURNTRANSFER, <code class="js keyword">true<code class="js plain">); <code class="js spaces"> <code class="js plain">$<code class="js keyword">this<code class="js plain">->xml = curl_exec($ch); <code class="js spaces"> <code class="js keyword">return <code class="js plain">$<code class="js keyword">this<code class="js plain">; <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">public <code class="js keyword">function <code class="js plain">getTweets(){ <code class="js spaces"> <code class="js plain">$<code class="js keyword">this<code class="js plain">->twitterArr = $<code class="js keyword">this<code class="js plain">->getTimelineArray(); <code class="js spaces"> <code class="js plain">$tweets = array(); <code class="js spaces"> <code class="js plain">foreach($<code class="js keyword">this<code class="js plain">->twitterArr->status as $status){ <code class="js spaces"> <code class="js plain">$tweets[$status->created_at->__toString()] = $status->text->__toString(); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js keyword">return <code class="js plain">$tweets; <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">public <code class="js keyword">function <code class="js plain">getTimelineArray(){ <code class="js spaces"> <code class="js keyword">return <code class="js plain">simplexml_load_string($<code class="js keyword">this<code class="js plain">->xml); <code class="js spaces"> <code class="js plain">} <code class="js spaces"> <code class="js plain">public <code class="js keyword">function <code class="js plain">formatTweet($tweet){ <code class="js spaces"> <code class="js plain">$tweet = preg_replace(<code class="js string">"/(http(.+?))( |$)/"<code class="js plain">,<code class="js string">"$1$3"<code class="js plain">, $tweet); <code class="js spaces"> <code class="js plain">$tweet = preg_replace(<code class="js string">"/#(.+?)(\h|\W|$)/"<code class="js plain">, <code class="js string">"#$1$2"<code class="js plain">, $tweet); <code class="js spaces"> <code class="js plain">$tweet = preg_replace(<code class="js string">"/@(.+?)(\h|\W|$)/"<code class="js plain">, <code class="js string">"@$1$2"<code class="js plain">, $tweet); <code class="js spaces"> <code class="js keyword">return <code class="js plain">$tweet; <code class="js spaces"> <code class="js plain">} <code class="js plain">}
10b. Tweeter Feed Runner——用于在主题中创建文件,比如:example.php
1 2 3 4 <code class="js plain">loadTimeline(<code class="js string">"phpsnips"<code class="js plain">)->getTweets(); <code class="js plain">foreach($feed as $time => $message){ <code class="js spaces"> <code class="js plain">echo <code class="js string">"<div class="tweet">"<code class="js plain">.$twitter->formatTweet($message).<code class="js string">"<br>At: "<code class="js plain">.$time.<code class="js string">" "<code class="js plain">; <code class="js plain">}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/735898.htmlTechArticle1.查找Longitudes与Latitudes之间的距离 12345678910111213141516171819202122232425262728 function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2)...

php免费学习视频:立即学习
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。