顺丰BSP订单号查询接口SOAP的请求示例

 更新时间:2016年11月25日 15:38  点击:1662
下面来看一个关于顺丰BSP订单号查询接口SOAP的请求示例,这个例子能帮助到各位同学哦。

在一些接口的设计中有时用到了SOAP方式的请求,比如顺丰BSP的接口。
我尝试不同方式的POST方式请求,要么完全请求不到东西,要么接收到乱码,均以失败告终。

针对顺丰接口的SOAP请求的核心代码分享如下:

 代码如下复制代码

/**
* 发送soap请求
*/
private function _soap()
{
$client = new SoapClient($this->serviceUrl);
$info = new stdClass();
$info->arg0 = $this->xml;
$param = array($info);
$response = $client->__call(“sfexpressService”,$param);
return $response->return ;
}

/**
* 拼接出请求的xml
*/
public function createXml()
{
$xml = ‘
’.$this->user.’,’.$this->passWord.’

invoice_no.’” />

’;
$this->xml = $xml;
}

提示:
1.$this->serviceUrl 顺丰分配的BSP请求地址,注意是?wsdl的地址
2.$this->user,$this->passWord 即是顺丰分配的ID和校验码
3.返回的return是一个XML的String,你可能需要simplexml_load_string来解析。

 

原文来自:http://www.jxm.cc/blogs/498.html

标题有点说不清楚了就是否PHP获取指定日期所在月的第一天和最后一天几个段程序了了,下文给各位总结一下吧。

示例代码

 代码如下 复制代码

//获取指定日期所在月的第一天和最后一天
 function GetTheMonth($date){
 $firstday = date("Y-m-01",strtotime($date));
 $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day"));
 return array($firstday,$lastday);
}

示例代码

//PHP获得指定日期所在星期的第一天和最后一天

 代码如下 复制代码

function getdays($day){
$lastday=date('Y-m-d',strtotime("$day Sunday"));
$firstday=date('Y-m-d',strtotime("$lastday -6 days"));
return array($firstday,$lastday);
}
print_r(getdays('2012-06-2'));

示例代码

 代码如下 复制代码

$date= 要处理的日期 
* $step  0= 本月   ,正负表示得到本月前后的月份日期
 * $date= 要处理的月份
 * Enter description here ...
 */
function AssignTabMonth($date,$step){
$date= date("Y-m-d",strtotime($step." months",strtotime($date)));//得到处理后的日期(得到前后月份的日期) 
$u_date = strtotime($date);
$days=date("t",$u_date);// 得到结果月份的天数

//月份第一天的日期
$first_date=date("Y-m",$u_date).'-01';
for($i=0;$i<$days;$i++){
$for_day=date("Y-m-d",strtotime($first_date)+($i*3600*24));
}
return $first_date.'至'.$for_day;

下文整理了一段php管理nginx虚拟主机shell脚本,希望这段脚本能帮助到各位同学哦。

使用php作为shell脚本是一件很方便的事情。理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考

 代码如下 复制代码

#!/usr/bin/php -q
<?php
 
start: fwrite(STDOUT,"===========Vhost Script===========\n");
fwrite(STDOUT,"= Choose an operation \n");
fwrite(STDOUT,"= 1.Create 2.Delete 3.Exit\n");
fwrite(STDOUT,"==================================\n");
$operate = trim(fgets(STDIN));
if ( $operate == 1  ){
fwrite(STDOUT,"Please Enter a  Domain Name:");
$domain = trim(fgets(STDIN));
$path = "/home/sites/{$domain}";
$nginx_conf = "/etc/nginx/sites/{$domain}";
$nginx_template = "/etc/nginx/template/site_conf";
$apache_conf = "/etc/httpd/conf/httpd.conf";
$conf_str = "";
 
//变量初始化
 
if( file_exists($path ) ) exit ("Domain Existed!\n");
else mkdir($path,0700);
if(file_exists($nginx_conf)) exit ("Nginx Config file existed!\n");
else {
    $conf_str = file_get_contents( $nginx_template );
}
 
//目录检测及配置文件拷贝
 
eval ( "\$conf_str = \"$conf_str\";" );
 
$succes = file_put_contents($nginx_conf,$conf_str);
if( !$succes ) exit ("Write Config File Fauile!");
else echo "Create Vhost success!\n";
goto start;
//写入配置文件
}
else if ($operate == 2){
    $confs_dir = dir("/etc/nginx/sites");
    $confs_list = array();
    $count = 0;
    while ( false !== ( $conf_file = $confs_dir->read() ) ){
        if( $conf_file == "." ) continue;
        if( $conf_file == ".." ) continue;
        if ( is_file( $confs_dir->path ."/". $conf_file) ) {
            $confs_list[$count++] =  $conf_file;
        }
    }
    echo "Select a site by number which to delete:\n";
    if( count( $confs_list ) >0 )
        foreach ( $confs_list as $k=>$v ){
            echo "{$k}. $v\n";
        }
    $index = trim(fgets(STDIN));
    if( in_array ( $index,array_keys( $confs_list ) ) ){
        copy(  $confs_dir->path ."/". $confs_list[$index],"/etc/nginx/backup/{$confs_list[$index]}" );
        unlink ( $confs_dir->path ."/". $confs_list[$index] );
        exec("tar -zcf  /home/sites/{$confs_list[$index]}.tar.gz /home/sites/".$confs_list[$index] );
        exec("rm -Rf /home/sites/".$confs_list[$index]);
    }
    //删除指定配置,并保存备份
}
else if( $operate == 3 ) {
    exit;
}
else {
 exit ("No Operation Selected!");
}?>

下面是nginx的配置模版

 代码如下 复制代码

server {
listen 80;
server_name {$domain};
access_log /var/log/nginx/{$domain}_access_log;
error_log /var/log/nginx/{$domain}_error_log;

root {$path};

#不记录对站点图标访问
location = /favicon.ico {
log_not_found off;
access_log off;
}

#不记录对robots.txt的访问
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location = / {
try_files @proxy;
}

location / {
index index.htm index.html index.php;
try_files \$uri @proxy;
}

#匹配html
location ~* \.(html|htm)$ {
expires 30s;
gzip off;
add_header Content-Encoding gzip;
try_files \$uri \$uri/ /wp-content/cache/supercache/\$http_host/\$request_uri/index.html.gz @proxy;
}

#匹配图片、脚本文件等
location ~* \.(jpe?g|gif|png|ico|css|js|flv|swf|avi|zip|rar|svg|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mp3)$ {
expires 30d;
}

#传递给apache
location @proxy {
index index.htm index.html index.php;
proxy_pass   http://127.0.0.1:81;
include /etc/nginx/proxy.conf;
}
}

清除缓存我们只需要设置页面为no-cache就可以了,当然像asp,php这种只需要设置Expires操作即可,具体如下。
 代码如下 复制代码


HTML网页
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">

ASP网页
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"

PHP网页
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

JSP网页
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 1);

树形菜单是很多应用中会碰到的一个算法,下文小编就为大家介绍php树形菜单实现方法。

数据库结果

 

php多级树形菜单代码


打印如下:

 代码如下 复制代码
array(7) {
  [0] => array(5) {
    ["id"] => string(1) "4"
    ["fzname"] => string(12) "山猫小号"
    ["userid"] => string(2) "12"
    ["pid"] => string(1) "0"
    ["time"] => string(10) "1413359977"
  }
  [1] => array(5) {
    ["id"] => string(1) "5"
    ["fzname"] => string(12) "山猫一组"
    ["userid"] => string(2) "12"
    ["pid"] => string(1) "4"
    ["time"] => string(10) "1413361206"
  }
  [2] => array(5) {
    ["id"] => string(1) "6"
    ["fzname"] => string(12) "山猫二组"
    ["userid"] => string(2) "12"
    ["pid"] => string(1) "4"
    ["time"] => string(10) "1413361225"
  }
  [3] => array(5) {
    ["id"] => string(1) "7"
    ["fzname"] => string(15) "山猫一组子"
    ["userid"] => string(2) "12"
    ["pid"] => string(1) "5"
    ["time"] => string(10) "1413361388"
  }
  [4] => array(5) {
    ["id"] => string(1) "8"
    ["fzname"] => string(15) "山猫一组子"
    ["userid"] => string(2) "12"
    ["pid"] => string(1) "5"
    ["time"] => string(10) "1413361409"
  }
  [5] => array(5) {
    ["id"] => string(1) "9"
    ["fzname"] => string(16) "山猫一组子3"
    ["userid"] => string(2) "12"
    ["pid"] => string(1) "5"
    ["time"] => string(10) "1413361460"
  }
  [6] => array(5) {
    ["id"] => string(2) "10"
    ["fzname"] => string(15) "山猫二组子"
    ["userid"] => string(2) "12"
    ["pid"] => string(1) "6"
    ["time"] => string(10) "1413361506"
  }
}

结果:

 

php多级树形菜单代码


 打印如下:

 代码如下 复制代码
array(1) {
  [0] => array(5) {
    ["id"] => string(1) "4"
    ["fzname"] => string(12) "山猫小号"
    ["userid"] => string(2) "12"
    ["pid"] => array(2) {
      [0] => array(5) {
        ["id"] => string(1) "5"
        ["fzname"] => string(12) "山猫一组"
        ["userid"] => string(2) "12"
        ["pid"] => array(3) {
          [0] => array(5) {
            ["id"] => string(1) "7"
            ["fzname"] => string(15) "山猫一组子"
            ["userid"] => string(2) "12"
            ["pid"] => string(0) ""
            ["time"] => string(10) "1413361388"
          }
          [1] => array(5) {
            ["id"] => string(1) "8"
            ["fzname"] => string(15) "山猫一组子"
            ["userid"] => string(2) "12"
            ["pid"] => string(0) ""
            ["time"] => string(10) "1413361409"
          }
          [2] => array(5) {
            ["id"] => string(1) "9"
            ["fzname"] => string(16) "山猫一组子3"
            ["userid"] => string(2) "12"
            ["pid"] => string(0) ""
            ["time"] => string(10) "1413361460"
          }
        }
        ["time"] => string(10) "1413361206"
      }
      [1] => array(5) {
        ["id"] => string(1) "6"
        ["fzname"] => string(12) "山猫二组"
        ["userid"] => string(2) "12"
        ["pid"] => array(1) {
          [0] => array(5) {
            ["id"] => string(2) "10"
            ["fzname"] => string(15) "山猫二组子"
            ["userid"] => string(2) "12"
            ["pid"] => string(0) ""
            ["time"] => string(10) "1413361506"
          }
        }
        ["time"] => string(10) "1413361225"
      }
    }
    ["time"] => string(10) "1413359977"
  }
}

工用到两个函数1生成树形代码:

 代码如下 复制代码
function getTree($data, $pId)
{
$tree = '';
foreach($data as $k => $v)
{
   if($v['pid'] == $pId)
   {
    $v['pid'] = $this->getTree($data, $v['id']);
    $tree[] = $v;
    //unset($data[$k]);
   }
}
return $tree;
}

函数2转化为html代码:

 代码如下 复制代码
function procHtml($tree)
{
$html = '';
foreach($tree as $t)
{
   if($t['pid'] == '')
   {
    $html .= "<li>{$t['fzname']}</li>";
   }
   else
   {
    $html .= "<li>".$t['fzname'];
    $html .= $this->procHtml($t['pid']);
    $html = $html."</li>";
   }
}
return $html ? '<ul>'.$html.'</ul>' : $html ;
}
[!--infotagslink--]

相关文章

  • Mybatis Plus select 实现只查询部分字段

    这篇文章主要介绍了Mybatis Plus select 实现只查询部分字段的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-01
  • Java如何发起http请求的实现(GET/POST)

    这篇文章主要介绍了Java如何发起http请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
  • MyBatisPlus-QueryWrapper多条件查询及修改方式

    这篇文章主要介绍了MyBatisPlus-QueryWrapper多条件查询及修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2022-06-27
  • 解决Java处理HTTP请求超时的问题

    这篇文章主要介绍了解决Java处理HTTP请求超时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
  • Oracle使用like查询时对下划线的处理方法

    这篇文章主要介绍了Oracle使用like查询时对下划线的处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-16
  • 解决mybatis-plus 查询耗时慢的问题

    这篇文章主要介绍了解决mybatis-plus 查询耗时慢的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-04
  • C#模拟http 发送post或get请求的简单实例

    下面小编就为大家带来一篇C#模拟http 发送post或get请求的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • MySQL中在查询结果集中得到记录行号的方法

    如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数。 Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的 ROWNUM ; MS SQL...2015-03-15
  • Node实现搜索框进行模糊查询

    这篇文章主要为大家详细介绍了Node实现搜索框进行模糊查询,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-28
  • Element-ui 自带的两种远程搜索(模糊查询)用法讲解

    这篇文章主要介绍了Element-ui 自带的两种远程搜索(模糊查询)用法讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-29
  • Mybatis用注解写in查询的实现

    这篇文章主要介绍了Mybatis用注解写in查询的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-13
  • PHP+Mysql+jQuery查询和列表框选择操作实例讲解

    本文讲解如何通过ajax查询mysql数据,并将返回的数据显示在待选列表中,再通过选择最终将选项加入到已选区,可以用在许多后台管理系统中。本文列表框的操作依赖jquery插件。HTML <form id="sel_form" action="post.php" me...2015-10-23
  • Mybatis和Mybatis-Plus时间范围查询方式

    这篇文章主要介绍了Mybatis和Mybatis-Plus时间范围查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-06
  • Select下拉框模糊查询功能实现代码

    这篇文章主要介绍了Select下拉框模糊查询功能实现代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-07-29
  • mysql like查询字符串示例语句

    MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式 一、SQL模式SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL...2013-10-04
  • JPA如何使用nativequery多表关联查询返回自定义实体类

    这篇文章主要介绍了JPA如何使用nativequery多表关联查询返回自定义实体类,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-11-18
  • spring cloud gateway中如何读取请求参数

    这篇文章主要介绍了spring cloud gateway中如何读取请求参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-15
  • C#百万数据查询出现超时问题的解决方法

    这篇文章主要介绍了C#百万数据查询出现超时问题的解决方法,是非常实用的技巧,需要的朋友可以参考下...2020-06-25
  • postgresql的jsonb数据查询和修改的方法

    这篇文章主要介绍了postgresql的jsonb数据查询和修改的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-03
  • 使用Feign消费服务时POST/GET请求方式详解

    这篇文章主要介绍了使用Feign消费服务时POST/GET请求方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-25