会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132990个问题
WEB前端全系列/第三阶段:jQuery编程模块/jQuery基础知识(旧) 28546楼
JAVA 全系列/第六阶段:项目管理与SSM框架/RBAC实战 28547楼
JAVA 全系列/第六阶段:项目管理与SSM框架/RBAC实战 28548楼
JAVA 全系列/第八阶段:Linux入门到实战/Git 28550楼

package com.bjsxt.array;

import java.util.Arrays;

public class Test04 {
/*    @Override
    public String toString() {
        return "Test04{}";
    }*/

    public static void main(String[] args) {
        //每一个一位数组代表一行数据
        Object[] emp0 = {1001,"高小一",18,"程序员","2019-9-9"};
        Object[] emp1 = {1001,"高小二",19,"程序员","2019-10-9"};
        Object[] emp2 = {1001,"高小三",20,"程序员","2019-11-9"};

        Object[][] emps = new Object[3][];
        emps[0] = emp0;
        emps[1] = emp1;
        emps[2] = emp2;

        //打印二维数组的内容(表格数据打印)
        for (int i = 0; i < emps.length ; i++) {
            System.out.println(Arrays.toString(emps[i]));
        }

        //使用嵌套循环打印二维数组(表格数据打印)
        for (int i = 0; i < emps.length; i++) {
            for (int j = 0; j < emps[i].length; j++) {
                System.out.println(emps[i][j]+"\t");
            }
            System.out.println();
        }
    }
}
 for (int i = 0; i < emps.length; i++) {
            for (int j = 0; j < emps[i].length; j++) {
                System.out.println(emps[i][j]+"\t");
            }
            System.out.println();


这里面的

for (int j = 0; j < emps[i].length; j++)

这句话是什么意思,尤其是

emps[i].length

第一次=0的时候是不是不打印

JAVA 全系列/第一阶段:JAVA 快速入门/数组和数据存储 28551楼
JAVA 全系列/第六阶段:项目管理与SSM框架/Spring 28556楼
Python 全系列/第七阶段:网页编程基础/JavaScript 28559楼

<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
   public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
           echo $echoStr;
           exit;
        }
    }

    public function responseMsg()
    {
      //get post data, May be due to the different environments
      $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

       //extract post data
      if (!empty($postStr)){
                /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                   the best way is to check the validity of xml by yourself */
                libxml_disable_entity_loader(true);
               $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $textTpl = "<xml>
                     <ToUserName><![CDATA[%s]]></ToUserName>
                     <FromUserName><![CDATA[%s]]></FromUserName>
                     <CreateTime>%s</CreateTime>
                     <MsgType><![CDATA[%s]]></MsgType>
                     <Content><![CDATA[%s]]></Content>
                     <FuncFlag>0</FuncFlag>
                     </xml>";             
            if(!empty( $keyword ))
                {
                  $msgType = "text";
                   $contentStr = "我是你爸爸";
                   $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                   echo $resultStr;
                }else{
                   echo "Input something...";
                }

        }else {
           echo "";
           exit;
        }
    }
      
   private function checkSignature()
   {
        // you must define TOKEN by yourself
        if (!defined("TOKEN")) {
            throw new Exception('TOKEN is not defined!');
        }
        
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
              
      $token = TOKEN;
      $tmpArr = array($token, $timestamp, $nonce);
        // use SORT_STRING rule
      sort($tmpArr, SORT_STRING);
      $tmpStr = implode( $tmpArr );
      $tmpStr = sha1( $tmpStr );
      
      if( $tmpStr == $signature ){
         return true;
      }else{
         return false;
      }
   }
}

?>


老师,我在用阿里云服务器对接我的微信订阅号,服务器是lamp环境,域名是我用来练习的域名charles666.xyz,已备案,可以正常访问。

在微信公众号后台-基本配置-服务器配置时,将服务器和微信公众号对接,注释掉上面代码中的“

$wechatObj->responseMsg()

”,解除下面这个方法调用的注释,

$wechatObj->valid()

提示“提交成功”,已经将服务器配置好了。接下来解除

$wechatObj->responseMsg()

的注释,并注释掉下面这个方法的调用,

$wechatObj->valid()

这时候我在公众号中输入任意文字时,公众号应该弹出“我是你爸爸”的回复消息,但实际上提示的是“该公众号提供的服务出现故障,请稍后再试”。

想问下老师,这个故障怎么解决?我哪一步写错了?

WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 28560楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637