热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分享几个非常有用的PHP代码片段

1.发送短信调用TextMagic++API。//IncludetheTextMagicPHPlibrequire('textmagic-sms-api-php/TextMagicAPI.php');//Settheusernameandpa

  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 == &#39;127.0.0.1&#39; || $ip == &#39;localhost&#39;)

  $ip = &#39;8.8.8.8&#39;;

  $curlopt_useragent = &#39;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)&#39;;

  $url = &#39;http://ipinfodb.com/ip_locator.php?ip=&#39; . 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 => &#39;http://&#39; . $_SERVER[&#39;HTTP_HOST&#39;],

  );

  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(&#39;{

  City : ([^<]*)

  }i&#39;, $content, $regs) ) {

  $city = $regs[1];

  }

  if ( preg_match(&#39;{

  State/Province : ([^<]*)

  }i&#39;, $content, $regs) ) {

  $state = $regs[1];

  }

  if( $city!=&#39;&#39; && $state!=&#39;&#39; ){

  $location = $city . &#39;, &#39; . $state;

  return $location;

  }else{

  return $default;

  }

  }

 

  3. 显示网页的源代码

  $lines = file(&#39;http://google.com/&#39;);

  foreach ($lines as $line_num => $line) {

  // loop thru each line and prepend line numbers

  echo "Line #{$line_num} : " . htmlspecialchars($line) . "
\n";

  }

  4. 检查服务器是否使用HTTPS

  if ($_SERVER[&#39;HTTPS&#39;] != "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

  for ($y=0;$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&#39;s use up some memory

  for ($i = 0; $i <100000; $i++) {

  $array []= md5($i);

  }

  // let&#39;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(&#39;/^http:\/\//i&#39;, &#39;&#39;, $domain);

  $domain = preg_replace(&#39;/^www\./i&#39;, &#39;&#39;, $domain);

  $domain = explode(&#39;/&#39;, $domain);

  $domain = trim($domain[0]);

  // split the TLD from domain name

  $_domain = explode(&#39;.&#39;, $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(&#39;Error: No matching nic server found!&#39;);

  }

  $nic_server = $servers[$ext];

  $output = &#39;&#39;;

  // 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(&#39;Error: Could not connect to &#39; . $nic_server . &#39;!&#39;); }

  return $output;

  }

 

  10. 通过Email发送PHP错误

  // Our custom error handler

  function nettuts_error_handler($number, $message, $file, $line, $vars){

  $email = "

  

An error ($number) occurred on line

  $line and in the file: $file.

  

$message

";

 

  $email .= "

" . print_r($vars, 1) . "

";

 

  $headers = &#39;Content-type: text/html; charset=iso-8859-1&#39; . "\r\n";

  // Email the error to someone...

  error_log($email, 1, &#39;you@youremail.com&#39;, $headers);

  // Make sure that you decide how to respond to errors (on the user&#39;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(&#39;nettuts_error_handler&#39;);

  // Trigger an error... (var doesn&#39;t exist)

  echo $somevarthatdoesnotexist;


推荐阅读
  • 为了在Fragment中直接调用Activity的方法,可以通过定义一个接口并让Activity实现该接口来实现。具体步骤包括:首先在Fragment中声明一个接口,并在Activity中实现该接口。接着,在Fragment中通过类型转换检查Activity是否实现了该接口,如果实现了则调用相应的方法。这种方法不仅提高了代码的解耦性,还增强了模块间的通信效率。此外,还可以通过ViewModel或LiveData等现代Android架构组件进一步优化这一过程,以实现更加高效和可靠的通信机制。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 在我们使用爬虫的过程中,很容易遇到反爬机制是禁用ip的,可以使用代理ip解决ip被封的问题。但是网上ip代理有很多家,到底选哪家好呢&#x ... [详细]
  • 在ASP.NET MVC项目中,通过实战解决了Ajax请求500错误及多表数据查询的问题。具体而言,将页面分为两个部分,用户点击右侧导航栏时,通过Ajax请求动态加载数据,并在右侧显示相应的页面内容。最初尝试使用Partial Action方法,但遇到了500错误。通过详细排查和调试,最终成功解决了这一问题,并实现了预期功能。此外,还优化了多表数据查询的性能,确保系统的高效运行。 ... [详细]
  • 通过自定义 `TextView`,实现了在用户点击或焦点变化时动态调整字体颜色的效果。该方法利用了 `ColorStateList` 和 `Selector` 资源文件,确保了界面交互的流畅性和视觉效果的提升。具体实现中,通过重写 `onTouchEvent` 和 `onFocusChanged` 方法,精确控制了颜色变化的时机和状态。此外,还对性能进行了优化,确保在高频率操作下依然保持高效响应。 ... [详细]
  • 尽管许多人认为跑步是一项简单的运动,但实际上它涉及诸多专业知识。不正确的跑步方式不仅会降低锻炼效果,还可能引发伤害。例如,穿着不合脚或过于陈旧的跑鞋,会导致足部支撑不足,增加受伤风险。此外,跑步姿势不当、热身不足、过度训练等问题也同样值得关注。本文将详细介绍七大常见跑步误区,并提供专业的改进建议,帮助跑者避免这些问题,提高运动效率和安全性。 ... [详细]
  • 在第六章中,我们将深入探讨MySQL中的多表查询技术,包括联结查询和子查询。联结查询通过将两个或多个表进行连接,基于连接条件生成结果集。常见的联结类型有内联结、外联结和全外联结。交叉联结(CROSS JOIN)虽然使用较少,但其原理是生成所有可能的组合,类似于笛卡尔积的概念。此外,子查询则是在一个查询语句中嵌套另一个查询,用于获取更复杂的数据集。本章将通过实例详细讲解这些查询方法的应用和优化技巧。 ... [详细]
  • 如何在PHP中提取数字的特定位数值
    本文将详细介绍如何在PHP中提取数字的特定位置的数值。这一技巧对于数据处理和算法实现具有重要意义,通过实例代码和详细解析,帮助读者掌握该方法的应用场景和实现方式。 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 在 HihoCoder 1505 中,题目要求从给定的 n 个数中选取两对数,使这两对数的和相等。如果直接对所有可能的组合进行遍历,时间复杂度将达到 O(n^4),因此需要考虑优化选择过程。通过使用哈希表或其他高效的数据结构,可以显著降低时间复杂度,从而提高算法的效率。具体实现中,可以通过预处理和存储中间结果来减少重复计算,进一步提升性能。 ... [详细]
  • 在探讨如何高效处理大规模数据报表的分页展示之前,首先需要明确导致报表加载缓慢的主要原因。通常情况下,这主要是由于两个方面:一是查询条件过于宽泛,使得数据库返回的结果集包含数百万甚至更多的记录;二是前端渲染性能不足,无法高效处理大量数据。为了优化这一过程,可以从以下几个方面入手:优化查询条件,减少不必要的数据返回;采用分页查询技术,每次仅加载所需的数据;利用缓存机制,减少对数据库的频繁访问;提升前端渲染效率,使用虚拟滚动等技术提高用户体验。 ... [详细]
  • 本文深入探讨了原型模式在软件设计中的应用与实现。原型模式通过使用已有的实例作为原型来创建新对象,而不是直接通过类实例化。这种方式不仅简化了对象的创建过程,还提高了系统的灵活性和效率。具体来说,原型模式涉及一个支持克隆功能的接口或基类,子类通过实现该接口来提供具体的克隆方法,从而实现对象的快速复制。此外,文章还详细分析了原型模式的优缺点及其在实际项目中的应用场景,为开发者提供了实用的指导和建议。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
author-avatar
爱你116564
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有