您好,欢迎访问一九零五行业门户网

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

在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ php 代码片段,可以帮助你开发php 项目。 之前已经为大家分享了《必须收藏的23个php实用代码片段》。
这些php 片段对于php 初学者也非常有帮助,非常容易学习,让我们开始学习吧~
24. 从 php 数据创建 csv 文件
function generatecsv($data, $delimiter = ',', $enclosure = '') { $handle = fopen('php://temp', 'r+'); foreach ($data as $line) { fputcsv($handle, $line, $delimiter, $enclosure); } rewind($handle); while (!feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); return $contents;}
语法:

25. 解析 xml 数据
$xml_string= ben a h2o k ; //load the xml string using simplexml function$xml = simplexml_load_string($xml_string); //loop through the each node of moleculeforeach ($xml->molecule as $record){ //attribute are accessted by echo $record['name'], ' '; //node are accessted by -> operator echo $record->symbol, ' '; echo $record->code, '';}
26. 解析 json 数据
$json_string='{id:1,name:rolf,country:russia,office:[google,oracle]} ';$obj=json_decode($json_string);//print the parsed dataecho $obj->name; //displays rolfecho $obj->office[0]; //displays google
27. 获取当前页面 url
这个 php 片段可以帮助你让用户登录后直接跳转到之前浏览的页面
function current_url(){$url = http:// . $_server['http_host'] . $_server['request_uri'];$validurl = str_replace(&, &, $url);return validurl;}
语法:

28. 从任意的 twitter 账号获取最新的 tweet
function my_twitter($username){ $no_of_tweets = 1; $feed = http://search.twitter.com/search.atom?q=from: . $username . &rpp= . $no_of_tweets; $xml = simplexml_load_file($feed); foreach($xml->children() as $child) { foreach ($child as $value) { if($value->getname() == link) $link = $value['href']; if($value->getname() == content) { $content = $value . ; echo ''.$content.'
'; } } } }
语法:

29. 转发数量
使用这个 php 片段可以检测你的页面 url 有多少转发数量
function tweetcount($url) { $content = file_get_contents(http://api.tweetmeme.com/url_info?url=.$url); $element = new simplexmlelement($content); $retweets = $element->story->url_count; if($retweets){ return $retweets; } else { return 0; }}
语法:

30. 计算两个日期的差
diff($date2);echo difference . $interval->y . years, . $interval->m. months, .$interval->d. days ;// shows the total amount of days (not divided into years, months and days like above)echo difference . $interval->days . days ;-------------------------------------------------------- or /** * calculate differences between two dates with precise semantics. based on phps datetime::diff() * implementation by derick rethans. ported to php by emil h, 2011-05-02. no rights reserved. * * see here for original code: * http://svn.php.net/viewvc/php/php-src/trunk/ext/date/lib/tm2unixtime.c?revision=302890&view=markup * http://svn.php.net/viewvc/php/php-src/trunk/ext/date/lib/interval.c?revision=298973&view=markup */function _date_range_limit($start, $end, $adj, $a, $b, $result){ if ($result[$a] = $end) { $result[$b] += intval($result[$a] / $adj); $result[$a] -= $adj * intval($result[$a] / $adj); } return $result;}function _date_range_limit_days($base, $result){ $days_in_month_leap = array(31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); $days_in_month = array(31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); _date_range_limit(1, 13, 12, m, y, &$base); $year = $base[y]; $month = $base[m]; if (!$result[invert]) { while ($result[d]
31. 删除文件夹内容
function delete($path){ if (is_dir($path) === true) { $files = array_diff(scandir($path), array('.', '..')); foreach ($files as $file) { delete(realpath($path) . '/' . $file); } return rmdir($path); } else if (is_file($path) === true) { return unlink($path); } return false;}
语法:

32. 搜索和高亮字符串中的关键字
function highlighter_text($text, $words){ $split_words = explode( , $words ); foreach($split_words as $word) { $color = #4285f4; $text = preg_replace(|($word)|ui , $1 , $text ); } return $text;}
语法:

33. 写入文件

34. 根据 url 下载图片
function imagefromurl($image,$rename){$ch = curl_init($image);curl_setopt($ch, curlopt_header, 0);curl_setopt($ch, curlopt_returntransfer, 1);curl_setopt($ch, curlopt_binarytransfer,1);$rawdata=curl_exec ($ch);curl_close ($ch);$fp = fopen($rename,'w');fwrite($fp, $rawdata);fclose($fp);}
语法:

35. 检测 url 是否有效
function isvalidurl($url){$check = 0;if (filter_var($url, filter_validate_url) !== false) { $check = 1;}return $check;}
语法:

36. 生成二维码
function qr_code($data, $type = txt, $size ='150', $ec='l', $margin='0') { $types = array(url =--> http://, tel => tel:, txt=>, email => mailto:); if(!in_array($type,array(url, tel, txt, email))) { $type = txt; } if (!preg_match('/^'.$types[$type].'/', $data)) { $data = str_replace(\\, , $types[$type]).$data; } $ch = curl_init(); $data = urlencode($data); curl_setopt($ch, curlopt_url, 'http://chart.apis.google.com/chart'); curl_setopt($ch, curlopt_post, true); curl_setopt($ch, curlopt_postfields, 'chs='.$size.'x'.$size.'&cht=qr&chld='.$ec.'|'.$margin.'&chl='.$data); curl_setopt($ch, curlopt_returntransfer, true); curl_setopt($ch, curlopt_header, false); curl_setopt($ch, curlopt_timeout, 30); $response = curl_exec($ch); curl_close($ch); return $response;}
语法:

37. 计算两个地图坐标之间的距离
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');}
语法:
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).'';}?>
38. 获取一个特定话题标签的所有 tweets
function gettweets($hash_tag) { $url = 'http://search.twitter.com/search.atom?q='.urlencode($hash_tag) ; echo connecting to $url ...
; $ch = curl_init($url); curl_setopt ($ch, curlopt_returntransfer, true); $xml = curl_exec ($ch); curl_close ($ch); //if you want to see the response from twitter, uncomment this next part out: //echo response:
; //echo .htmlspecialchars($xml).
; $affected = 0; $twelement = new simplexmlelement($xml); foreach ($twelement->entry as $entry) { $text = trim($entry->title); $author = trim($entry->author->name); $time = strtotime($entry->published); $id = $entry->id; echo tweet from .$author.: .$text. posted .date('n/j/y g:i a',$time).
; } return true ;}
39. 添加 th,st,nd 或者 rd 作为数字的后缀
friday the 13thfunction ordinal($cdnl){ $test_c = abs($cdnl) % 10; $ext = ((abs($cdnl) %100 4) ? 'th' : (($test_c < 4) ? ($test_c < 3) ? ($test_c save as):\n\t\t; echo flv\n\t\t; echo hq flv (if available)\n\t\t; echo mp4\n\t\t; echo 3gp\n;}
46. facebook 样式的时间戳
facebook (x mins age, y hours ago etc)function nicetime($date){ if(empty($date)) { return no date provided; } $periods = array(second, minute, hour, day, week, month, year, decade); $lengths = array(60,60,24,7,4.35,12,10); $now = time(); $unix_date = strtotime($date); // check validity of date if(empty($unix_date)) { return bad date; } // is it future date or past date if($now > $unix_date) { $difference = $now - $unix_date; $tense = ago; } else { $difference = $unix_date - $now; $tense = from now; } for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) { $difference /= $lengths[$j]; } $difference = round($difference); if($difference != 1) { $periods[$j].= s; } return $difference $periods[$j] {$tense};}
语法:

以上就是本文的全部内容,希望对大家的学习有所帮助。
其它类似信息

推荐信息