每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当php开发者花费数个小时为网页编码或创建应用时,他们更知道这些代码的重要性。为了节约编码时间,小编收集了一些较为实用的代码片段,帮助开发者提高工作效率
1) whois query using php ——利用php获取whois请求 利用这段代码,在特定的域名里可获得whois信息。把域名名称作为参数,并显示所有域名的相关信息。 代码如下:function whois_query($domain) { // fix the domain name: $domain = strtolower(trim($domain)); $domain = preg_replace('/^http:\/\//i', '', $domain); $domain = preg_replace('/^www\./i', '', $domain); $domain = explode('/', $domain); $domain = trim($domain[0]); // split the tld from domain name $_domain = explode('.', $domain); $lst = count($_domain)-1; $ext = $_domain[$lst]; // you find resources and lists // like these on wikipedia: // // http://de.wikipedia.org/wiki/whois // $servers = array( biz => whois.neulevel.biz, com => whois.internic.net, us => whois.nic.us, coop => whois.nic.coop, info => whois.nic.info, name => whois.nic.name, net => whois.internic.net, gov => whois.nic.gov, edu => whois.internic.net, mil => rs.internic.net, int => whois.iana.org, ac => whois.nic.ac, ae => whois.uaenic.ae, at => whois.ripe.net, au => whois.aunic.net, be => whois.dns.be, bg => whois.ripe.net, br => whois.registro.br, bz => whois.belizenic.bz, ca => whois.cira.ca, cc => whois.nic.cc, ch => whois.nic.ch, cl => whois.nic.cl, cn => whois.cnnic.net.cn, cz => whois.nic.cz, de => whois.nic.de, fr => whois.nic.fr, hu => whois.nic.hu, ie => whois.domainregistry.ie, il => whois.isoc.org.il, in => whois.ncst.ernet.in, ir => whois.nic.ir, mc => whois.ripe.net, to => whois.tonic.to, tv => whois.tv, ru => whois.ripn.net, org => whois.pir.org, aero => whois.information.aero, nl => whois.domain-registry.nl ); if (!isset($servers[$ext])){ die('error: no matching nic server found!'); } $nic_server = $servers[$ext]; $output = ''; // connect to whois server: if ($conn = fsockopen ($nic_server, 43)) { fputs($conn, $domain.\r\n); while(!feof($conn)) { $output .= fgets($conn,128); } fclose($conn); } else { die('error: could not connect to ' . $nic_server . '!'); } return $output; } 2) text messaging with php using the textmagic api ——使用textmagic api 获取php test信息 textmagic引入强大的核心api,可轻松将sms发送到手机。该api是需要付费。 代码如下:the textmagic php lib require('textmagic-sms-api-php/textmagicapi.php'); // set the username and password information $username = 'myusername'; $password = 'mypassword'; // create a new instance of tm $router = new textmagicapi(array( 'username' => $username, 'password' => $password )); // send a text message to '999-123-4567' $result = $router->send('wake up!', array(9991234567), true); // result: result is: array ( [messages] => array ( [19896128] => 9991234567 ) [sent_text] => wake up! [parts_count] => 1 ) 3) get info about your memory usage——获取内存使用率 这段代码帮助你获取内存使用率。 代码如下:echo initial: .memory_get_usage(). bytes \n; /* prints initial: 361400 bytes */ // let's use up some memory for ($i = 0; $i $line) { // loop thru each line and prepend line numbers echo line #{$line_num} : . htmlspecialchars($line) . \n; } 5) create data uri's——创建数据uri 通过使用此代码,你可以创建数据uri,这对在html/css中嵌入图片非常有用,可帮助节省http请求。 代码如下:function data_uri($file, $mime) { $contents=file_get_contents($file); $base64=base64_encode($contents); echo data:$mime;base64,$base64; } 6) detect location by ip——通过ip检索出地理位置 这段代码帮助你查找特定的ip,只需在功能参数上输入ip,就可检测出位置。 代码如下:function detect_city($ip) { $default = 'unknown'; if (!is_string($ip) || strlen($ip) 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 : ([^ 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 11.完善curl功能 代码如下: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; } }12.清理用户输入 代码如下:.*?@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;}?>13.通过ip(城市、国家)检测地理位置代码如下:function detect_city($ip) { $default = 'hollywood, ca'; if (!is_string($ip) || strlen($ip) 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 : ([^ 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)); 15.检测浏览器语言,只提供可用的$availablelanguages作为数组(‘en', ‘de', ‘es')代码如下: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; } 16.创建数据url 代码如下:function data_uri($file, $mime) { $contents=file_get_contents($file); $base64=base64_encode($contents); echo data:$mime;base64,$base64; } 17.创建更加友好的页面标题seo url 输入示例:$title = “this foo's bar is rockin' cool!”; echo makeseoname($title); //returns: //this-foos-bar-is-rockin-cool 代码如下:function make_seo_name($title) { return preg_replace('/[^a-z0-9_-]/i', '', strtolower(str_replace(' ', '-', trim($title)))); }18.终极加密功能 代码如下:// 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; } 19a.tweeter feed runner——使用任意twitter名,可在任意页面上加载用户资源。 代码如下: 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; } 19b. tweeter feed runner——用于在主题中创建文件,比如:example.php代码如下:loadtimeline(phpsnips)->gettweets(); foreach($feed as $time => $message){ echo .$twitter->formattweet($message).
at: .$time.
; }
http://www.bkjia.com/phpjc/741819.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/741819.htmltecharticle每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当php开发者花费数个小时为网页编码或创建应用时,他们更知道这些代码的重...