当前位置:  编程技术>php
本页文章导读:
    ▪php快递查询API类(支持各种快递的查询)      以下是一个封装好的快递查询类,分享给大家。 代码如下: <?php /** * Express.class.php 快递查询类 * * @copyright widuu * @license http://www. * @lastmodify 2013-7-22 */ class Express { .........
    ▪防止sql注入与跨站攻击的代码分享(初级实用型)      以下代码实现: 对所有POST提交的参数数据,对参数中的内容进行校验,对包含非法字符的参数进行处理。 代码如下:   代码示例: <?php //防注入函数 function inject_check($sql_str){  $check = e.........
    ▪php printf输出格式用法分享      在php中,printf的格式控制的完整格式如下: % - 0 m.n l或h 格式字符 以下为详细的格式说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 .........

[1]php快递查询API类(支持各种快递的查询)
    来源: 互联网  发布时间: 2013-12-24

以下是一个封装好的快递查询类,分享给大家。

代码如下:

<?php
/**
 *  Express.class.php           快递查询类
 *
 * @copyright   widuu
 * @license   http://www.
 * @lastmodify   2013-7-22
 */
class Express {  
 private $expressname =array(); //封装快递名称 
 function __construct(){
  $this->expressname = $this->expressname();
 }
 
 /*
  * 采集网页内容的方法
  */
 private function getcontent($url){
  if(function_exists("file_get_contents")){
   $file_contents = file_get_contents($url);
  }else{
   $ch = curl_init();
   $timeout = 5;
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
   $file_contents = curl_exec($ch);
   curl_close($ch);
  }
  return $file_contents;
 }
 /*
  * 获取对应名称和对应传值的方法
  */
 private function expressname(){
  $result = $this->getcontent("http://www.kuaidi100.com/");
  preg_match_all("/data\-code\=\"(?P<name>\w+)\"\>\<span\>(?P<title>.*)\<\/span>/iU",$result,$data);
  $name = array();
  foreach($data['title'] as $k=>$v){
   $name[$v] =$data['name'][$k];
  }
  return $name;
 }
 
 /*
  * 解析object成数组的方法
  * @param $json 输入的object数组
  * return $data 数组
  */
 private function json_array($json){
  if($json){
   foreach ((array)$json as $k=>$v){
    $data[$k] = !is_string($v)?$this->json_array($v):$v;
   }
   return $data;
  }
 }
 
 /*
  * 返回$data array      快递数组
  * @param $name         快递名称
  * 支持输入的快递名称如下
  * (申通-EMS-顺丰-圆通-中通-如风达-韵达-天天-汇通-全峰-德邦-宅急送-安信达-包裹平邮-邦送物流
  * DHL快递-大田物流-德邦物流-EMS国内-EMS国际-E邮宝-凡客配送-国通快递-挂号信-共速达-国际小包
  * 汇通快递-华宇物流-汇强快递-佳吉快运-佳怡物流-加拿大邮政-快捷速递-龙邦速递-联邦快递-联昊通
  * 能达速递-如风达-瑞典邮政-全一快递-全峰快递-全日通-申通快递-顺丰快递-速尔快递-TNT快递-天天快递
  * 天地华宇-UPS快递-新邦物流-新蛋物流-香港邮政-圆通快递-韵达快递-邮政包裹-优速快递-中通快递)
  * 中铁快运-宅急送-中邮物流
  * @param $order        快递的单号
  * $data['ischeck'] ==1   已经签收
  * $data['data']        快递实时查询的状态 array
  */
 public  function getorder($name,$order){
  $keywords = $this->expressname[$name];
  $result = $this->getcontent("http://www.kuaidi100.com/query?type={$keywords}&postid={$order}");
  $result = json_decode($result);
  $data = $this->json_array($result);
  return $data;
 }
}
$a = new Express();
$result = $a->getorder("全一快递",111309582915);
var_dump($result);
?>

    
[2]防止sql注入与跨站攻击的代码分享(初级实用型)
    来源: 互联网  发布时间: 2013-12-24

以下代码实现:
对所有POST提交的参数数据,对参数中的内容进行校验,对包含非法字符的参数进行处理。

代码如下:
 

代码示例:
<?php
//防注入函数
function inject_check($sql_str){
 $check = eregi('select|insert|update|delete|\*|\/\*|\'|\.\.\/|\.\/|UNION|into|load_file|outfile',$sql_str);
 if($check){    
    page_href("http://".$_SERVER['HTTP_HOST']."/home/sitemap.php");
    exit();    
    }else{
    return $sql_str;
 }
}
//防跨站攻击
function inject_check2($sql_str){
 $check =
 eregi('javascript|vbscript|expression|applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|
frameset|ilayer|layer
|bgsound|title|base|onabort|onact
 ivate|onafterprint|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus
|onbeforepaste|onbeforeprint|onbeforeunload|onb
 eforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|oncontrolselect|oncopy|oncut|
ondataavailable
|ondatasetchanged|ondatasetcomplete|ondblc
 lick|ondeactivate|ondrag|ondragend|ondragenter|ondragleave|ondragover|ondragstart|
ondrop|onerror|onerrorupdate
|onfilterchange|onfinish|onfocus|onfocusin|onfoc
 usout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture
|onmousedown|onmouseenter|
onmouseleave|onmousemove|onmouseout|onmouseover|onmou
 seup|onmousewheel|onmove|onmoveend|onmovestart|onpaste|onpropertychange|onreadystatechange|onreset|
onresize|onresizeend|onresizestart|onrowenter|onrowexit|onr
 owsdelete|onrowsinserted|onscroll|onselect|onselectionchange|onselectstart|onstart|onstop|
onsubmit|onunload',$sql_str);
 if($check){    
    page_href("http://".$_SERVER['HTTP_HOST']."/home/sitemap.php");
    exit();    
    }else{
    //return $sql_str;
 }
} //by www.
?>

您可能感兴趣的文章:

PHP安全过滤代码(360提供 安全系数高)
PHP过滤post,get敏感数据的实例代码
php 过滤非法与特殊字符串的方法
php 防注入的一段代码(过滤参数)
php正则过滤html标签、空格、换行符等的代码示例
php实现过滤IP黑白名单的方法
很好用的php防止sql注入漏洞过滤函数的代码
php防止sql注入正则过滤一例
一段php过滤危险html的代码

    
[3]php printf输出格式用法分享
    来源: 互联网  发布时间: 2013-12-24

在php中,printf的格式控制的完整格式如下:
% - 0 m.n l或h 格式字符

以下为详细的格式说明:
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

格式字符
格式字符用以指定输出项的数据类型和输出格式。
①d格式:用来输出十进制整数。有以下几种用法:
 

%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld:输出长整型数据。

②o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。

例子:
 

代码示例:
main()
{ int a = -1;
printf("%d, %o", a, a);
}

运行结果:-1,177777
程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。
③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。
④u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。
⑤c格式:输出一个字符。
⑥s格式:用来输出一个串。有几中用法
 

%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。
%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。
 

⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:
 

%f:不指定宽度,整数部分全部输出并输出6位小数。
%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

⑧e格式:以指数形式输出实数。可用以下形式:
 

%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。
%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

printf函数进阶:
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:
 

代码示例:
printf("%f%%", 1.0/3);

输出0.333333%。

有关单精度与双精度的说明:
1,单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位。
2,双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3