又十个超级有用的PHP代码片段


Posted in PHP onSeptember 24, 2015

好东西要大家一起分享,上次分享了十个,这次再来十个超级有用的PHP代码片段。

1. 发送短信

调用 TextMagic API。

// Include 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 )

2. 根据IP查找地址

function detect_city($ip) { 
 
  $default = 'UNKNOWN'; 
 
  if (!is_string($ip) || strlen($ip) < 1 || $ip == '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('{<li>City : ([^<]*)</li>}i', $content, $regs) ) { 
   $city = $regs[1]; 
  } 
  if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) ) { 
   $state = $regs[1]; 
  } 
 
  if( $city!='' && $state!='' ){ 
   $location = $city . ', ' . $state; 
   return $location; 
  }else{ 
   return $default; 
  } 
 
 }

3. 显示网页的源代码

<?php // display source code 
$lines = file('http://google.com/'); 
foreach ($lines as $line_num => $line) { 
    // loop thru each line and prepend line numbers 
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n"; 
}
4. 检查服务器是否使用HTTPS

if ($_SERVER['HTTPS'] != "on") { 
 echo "This is not HTTPS"; 
}else{ 
 echo "This is HTTPS"; 
}

5. 显示Facebook粉丝数量

function fb_fan_count($facebook_name){ 
 // Example: https://graph.facebook.com/digimantra 
 $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name)); 
 echo $data->likes; 
}

6. 检测图片的主要颜色

$i = imagecreatefromjpeg("image.jpg"); 
 
for ($x=0;$x<imagesx($i);$x++) { 
 for ($y=0;$y<imagesy($i);$y++) { 
  $rgb = imagecolorat($i,$x,$y); 
  $r = ($rgb >> 16) & 0xFF; 
  $g = ($rgb >> & 0xFF; 
  $b = $rgb & 0xFF; 
 
  $rTotal += $r; 
  $gTotal += $g; 
  $bTotal += $b; 
  $total++; 
 } 
} 
 
$rAverage = round($rTotal/$total); 
$gAverage = round($gTotal/$total); 
$bAverage = round($bTotal/$total);

7. 获取内存使用信息

echo "Initial: ".memory_get_usage()." bytes \n"; 
/* prints 
Initial: 361400 bytes 
*/ 
 
// let's use up some memory 
for ($i = 0; $i < 100000; $i++) { 
 $array []= md5($i); 
} 
 
// let's remove half of the array 
for ($i = 0; $i < 100000; $i++) { 
 unset($array[$i]); 
} 
 
echo "Final: ".memory_get_usage()." bytes \n"; 
/* prints 
Final: 885912 bytes 
*/ 
 
echo "Peak: ".memory_get_peak_usage()." bytes \n"; 
/* prints 
Peak: 13687072 bytes 
*/

8. 使用 gzcompress() 压缩数据

$string = 
"Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. Nunc ut elit id mi ultricies 
adipiscing. Nulla facilisi. Praesent pulvinar, 
sapien vel feugiat vestibulum, nulla dui pretium orci, 
non ultricies elit lacus quis ante. Lorem ipsum dolor 
sit amet, consectetur adipiscing elit. Aliquam 
pretium ullamcorper urna quis iaculis. Etiam ac massa 
sed turpis tempor luctus. Curabitur sed nibh eu elit 
mollis congue. Praesent ipsum diam, consectetur vitae 
ornare a, aliquam a nunc. In id magna pellentesque 
tellus posuere adipiscing. Sed non mi metus, at lacinia 
augue. Sed magna nisi, ornare in mollis in, mollis 
sed nunc. Etiam at justo in leo congue mollis. 
Nullam in neque eget metus hendrerit scelerisque 
eu non enim. Ut malesuada lacus eu nulla bibendum 
id euismod urna sodales. "; 
 
$compressed = gzcompress($string); 
 
echo "Original size: ". strlen($string)."\n"; 
/* prints 
Original size: 800 
*/ 
 
echo "Compressed size: ". strlen($compressed)."\n"; 
/* prints 
Compressed size: 418 
*/ 
 
// getting it back 
$original = gzuncompress($compressed);

9. 使用PHP做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; 
}

10. 通过Email发送PHP错误

<?php 
 
// Our custom error handler 
function nettuts_error_handler($number, $message, $file, $line, $vars){ 
 $email = " 
  <p>An error ($number) occurred on line 
  <strong>$line</strong> and in the <strong>file: $file.</strong> 
  <p> $message </p>"; 
 
 $email .= "<pre>" . print_r($vars, 1) . "</pre>"; 
 
 $headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
 
 // Email the error to someone... 
 error_log($email, 1, 'you@youremail.com', $headers); 
 
 // Make sure that you decide how to respond to errors (on the user's side) 
 // Either echo an error message, or kill the entire project. Up to you... 
 // The code below ensures that we only "die" if the error was more than 
 // just a NOTICE. 
 if ( ($number !== E_NOTICE) && ($number < 2048) ) { 
  die("There was an error. Please try again later."); 
 } 
} 
 
// We should use our custom function to handle errors. 
set_error_handler('nettuts_error_handler'); 
 
// Trigger an error... (var doesn't exist) 
echo $somevarthatdoesnotexist;

是不是也很精彩,和之前的一起收藏吧

PHP 相关文章推荐
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
PHP多文件上传类实例
Mar 07 PHP
PHP实现事件机制实例分析
Jun 26 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
PHP getName()函数讲解
Feb 03 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 PHP
PHP易混淆知识整理笔记
Sep 24 #PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 #PHP
PHP生成条形码大揭秘
Sep 24 #PHP
php商品对比功能代码分享
Sep 24 #PHP
php实现简易聊天室应用代码
Sep 23 #PHP
利用PHP如何实现Socket服务器
Sep 23 #PHP
10个超级有用的PHP代码片段果断收藏
Sep 23 #PHP
You might like
php中创建和调用webservice接口示例
2014/07/25 PHP
PHP7.0版本备注
2015/07/23 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
PHP的mysqli_select_db()函数讲解
2019/01/23 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
基于jquery的tab切换 js原理
2010/04/01 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
6种javascript显示当前系统时间代码
2015/12/01 Javascript
javascript如何写热点图
2015/12/08 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
Python字符串详细介绍
2015/05/09 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
Python中字符串List按照长度排序
2019/07/01 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
银行学习十八大感想
2014/01/11 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
小学一年级学生评语
2014/04/22 职场文书
2014年教师工作总结
2014/11/10 职场文书
Python开发五子棋小游戏
2022/05/02 Python