• 微信开发源码注释

    2016-06-11 18:11:55
    本文用于解释微信开发中的中PHP代码意义,用于学习先关基础知识。

    本文用于解释微信开发中的中PHP代码意义,记录学习php基础知识。

    1、PHP代码开始与结束标记

        <?

        // PHP code

        >


    2、PHP注释信息使用双斜线//

         注释块使用/* ... ...*/


    3、PHP语句结束,使用分号(;)


    4、PHP常量定义 define

     

    <?php
    define("CONSTANT", "Hello world.");
    echo CONSTANT; // outputs "Hello world."
    echo Constant; // outputs "Constant" and issues a notice.
    
    define("GREETING", "Hello you.", true);
    echo GREETING; // outputs "Hello you."
    echo Greeting; // outputs "Hello you."
    
    ?> 

    5、php$符号是变量符号;把$符号加上字符串,这个字符串就是一个变量名或对象名。

    可以使用两个以及多个$,比如:

    可变变量
    $first ="hello";
    $hello ="world";
    echo $first." ".$$first;
    结果是 hello world
    
    $$first就是$hello,因为$first的值是hello

    6、php中类相关定义以及实例化,class 声明累,new实例化

          类中定义可以方法以及属性

          属性值需要使用$标示以及权限修饰关键字 public private

          类的继承使用extends

    7、实例化一个对象后,使用 -> 操作符来访问对象的成员属性和方法。比如:

    object->var_name;
    object->function_name; 

    8、在定义的类里面访问成员的属性或者方法,可以使用伪变量 $this 。$this 用于表示当前对象或对象本身 。

    <?php
    class Person {
    // 人的成员属性
    var $name; //人的名字
    var $age; //人的年龄
    
    //人的成员 say() 方法
    function say() {
    echo "我的名字叫:".$this->name."<br />";
    echo "我的年龄是:".$this->age;
    }
    }
    //类定义结束
    
    $p1 = new Person(); //实例化一个对象
    $p1->name = "Gonn"; //给 $p1 对象属性赋值
    $p1->age = 25;
    $p1->say(); //调用对象中的 say()方法
    ?> 

    9、PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

        $GLOBALS //在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
        $_SERVER  //保存关于报头、路径和脚本位置的信息。
        $_REQUEST  //用于收集 HTML 表单提交的数据。
        $_POST //广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
        $_GET  //用于收集提交 HTML 表单 (method="get") 之后的表单数据。也可以收集 URL 中的发送的数据。
        $_FILES
        $_ENV
        $_COOKIE
        $_SESSION
    

    PHP中全局变量
    元素/代码 描述
    $_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。
    $_SERVER['GATEWAY_INTERFACE'] 返回服务器使用的 CGI 规范的版本。
    $_SERVER['SERVER_ADDR'] 返回当前运行脚本所在的服务器的 IP 地址。
    $_SERVER['SERVER_NAME'] 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。
    $_SERVER['SERVER_SOFTWARE'] 返回服务器标识字符串(比如 Apache/2.2.24)。
    $_SERVER['SERVER_PROTOCOL'] 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
    $_SERVER['REQUEST_METHOD'] 返回访问页面使用的请求方法(例如 POST)。
    $_SERVER['REQUEST_TIME'] 返回请求开始时的时间戳(例如 1577687494)。
    $_SERVER['QUERY_STRING'] 返回查询字符串,如果是通过查询字符串访问此页面。
    $_SERVER['HTTP_ACCEPT'] 返回来自当前请求的请求头。
    $_SERVER['HTTP_ACCEPT_CHARSET'] 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
    $_SERVER['HTTP_HOST'] 返回来自当前请求的 Host 头。
    $_SERVER['HTTP_REFERER'] 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
    $_SERVER['HTTPS'] 是否通过安全 HTTP 协议查询脚本。
    $_SERVER['REMOTE_ADDR'] 返回浏览当前页面的用户的 IP 地址。
    $_SERVER['REMOTE_HOST'] 返回浏览当前页面的用户的主机名。
    $_SERVER['REMOTE_PORT'] 返回用户机器上连接到 Web 服务器所使用的端口号。
    $_SERVER['SCRIPT_FILENAME'] 返回当前执行脚本的绝对路径。
    $_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
    $_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 “80”。
    $_SERVER['SERVER_SIGNATURE'] 返回服务器版本和虚拟主机名。
    $_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。
    $_SERVER['SCRIPT_NAME'] 返回当前脚本的路径。
    $_SERVER['SCRIPT_URI'] 返回当前页面的 URI。

    $_GET传递参数实例

    假设我们有一张页面含有带参数的超链接:

    <html>
    <body>
    
    <a href="test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>
    
    </body>
    </html>
    

    当用户点击链接 "Test $GET",参数 "subject" 和 "web" 被发送到 "test_get.php",然后您就能够通过 $_GET 在 "test_get.php" 中访问这些值了。

    下面的例子是 "test_get.php" 中的代码:

    实例

    <html>
    <body>
    
    <?php 
    echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
    ?>
    
    </body>
    </html>
    

    10、PHP中用于输出信息,使用关键字echo

    11、function用于定义类中的方法;

    12、关键词解释:

            isset(var) ---检测变量是否设置,如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回FALSE

            empty(var)检查一个变量是否为空,当var存在,并且是一个非空非零的值时返回FALSE 否则返回 TRUE.

            echo输出一个或多个字符串

            exit输出一个消息并且退出当前脚本

            -> 是对象成员访问符号

            => 是数组成员访问符   

    微信开发第一课实例代码如下:

    <?php
    /*
        WeiXin 学习代码实例
    */
    
    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    if (isset($_GET['echostr'])) {
        $wechatObj->valid();
    }else{
        $wechatObj->responseMsg();
    }
    
    class wechatCallbackapiTest
    {
        public function valid()
        {
            $echoStr = $_GET["echostr"];
            if($this->checkSignature()){
                echo $echoStr;
                exit;
            }
        }
    
        private function checkSignature()
        {
            $signature = $_GET["signature"];
            $timestamp = $_GET["timestamp"];
            $nonce = $_GET["nonce"];
    
            $token = TOKEN;
            $tmpArr = array($token, $timestamp, $nonce);
            sort($tmpArr, SORT_STRING);
            $tmpStr = implode( $tmpArr );
            $tmpStr = sha1( $tmpStr );
    
            if( $tmpStr == $signature ){
                return true;
            }else{
                return false;
            }
        }
    
        public function responseMsg()
        {
            $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    
            if (!empty($postStr)){
                $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($keyword == "?" || $keyword == "?")
                {
                    $msgType = "text";
                    $contentStr = date("Y-m-d H:i:s",time());
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }
            }else{
                echo "";
                exit;
            }
        }
    }
    ?>

    1. 微信在接受信息后,通过$_GET方法请求是否设置了echostr
    2. 微信加密签名:signature--结合token参数以及timestamp、nonce参数等
    3. timestamp--时间戳
    4. nonce--随机数
    5. echostr-- 随机字符串

    微信信息构造XML类型如下:

    字符串类型

                          <xml>
                            <ToUserName><![CDATA[%s]]></ToUserName>
                            <FromUserName><![CDATA[%s]]></FromUserName>
                            <CreateTime>%s</CreateTime>
                            <MsgType><![CDATA[%s]]></MsgType>
                            <Content><![CDATA[%s]]></Content>
                            <FuncFlag>0</FuncFlag>
                          </xml>










    展开全文
  • 本人觉得微信微信开发者工具快捷键太low了为什么就不像其他编辑器学习呢,难受的要死,开一个编辑器还得把微信开发者工具打开,他特么麻烦了,支持的赞一个



                                                                                 格式调整                                                                            
      Ctrl+S:保存文件
      Ctrl+[, Ctrl+]:代码行缩进
      Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块
      Ctrl+C Ctrl+V:复制粘贴,如果没有选中任何文字则复制粘贴一行
      Shift+Alt+F:代码格式化
      Alt+Up,Alt+Down:上下移动一行
      Shift+Alt+Up,Shift+Alt+Down:向上向下复制一行
      Ctrl+Shift+Enter:在当前行上方插入一行
                                                                                 光标操作                                                                            

         Ctrl+End:移动到文件结尾

      Ctrl+Home:移动到文件开头
      Ctrl+i:选中当前行
      Shift+End:选择从光标到行尾
      Shift+Home:选择从行首到光标处
      Ctrl+Shift+L:选中所有匹配
      Ctrl+D:选中匹配
      Ctrl+U:光标回退

                                                                                 界面操作                                                                             

    - Ctrl + \:隐藏侧边栏 
    - Ctrl + m: 打开或者隐藏模拟器

                                             个人操作反馈(一直更新反应大家的心声                                         

    - Tab:像eclipse 一样在引号中间用 Tab键跳出引号后边;

     -ctrl +J 像sublime 一样可以压缩代码到一行(如果有这个简直是太棒了);


    还有就是界面为什么每次只能打开一个项目,多个项目同时打开不行吗?

    展开全文
  • 微信开发者工具的快捷键


    微信开发者工具的快捷键







    微信开发者工具的所有快捷键




    微信小程序教程系列

    相关连接:http://blog.csdn.net/michael_ouyang/article/details/54700871


    注册上线篇

    ------------------------------------------------------------

    微信小程序之如何注册微信小程序

    微信小程序之小程序上线


    基础篇

    ------------------------------------------------------------

    微信开发者工具的快捷键

    微信小程序的文件结构 —— 微信小程序教程系列(1)

    微信小程序的生命周期实例演示 —— 微信小程序教程系列(2)

    微信小程序的动态修改视图层的数据 —— 微信小程序教程系列(3)

    微信小程序的新建页面 —— 微信小程序教程系列(4)

    微信小程序的如何使用全局属性 —— 微信小程序教程系列(5)

    微信小程序的页面跳转 —— 微信小程序教程系列(6)

    微信小程序标题栏和导航栏的设置 —— 微信小程序教程系列(7)

    微信小程序的作用域和模块化 —— 微信小程序教程系列(8)

    微信小程序视图层的数据绑定 —— 微信小程序教程系列(9)

    微信小程序视图层的条件渲染 —— 微信小程序教程系列(10)

    微信小程序视图层的列表渲染 —— 微信小程序教程系列(11)

    微信小程序视图层的模板 —— 微信小程序教程系列(12)

    微信小程序之wxss —— 微信小程序教程系列(13)

    微信小程序的网络请求 —— 微信小程序教程系列(14)

    微信小程序的百度地图获取地理位置 —— 微信小程序教程系列(15)

    微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)

    微信小程序获取系统日期和时间 —— 微信小程序教程系列(17)

    微信小程序之上拉加载和下拉刷新 —— 微信小程序教程系列(18)

    微信小程序之组件 —— 微信小程序教程系列(19)

    微信小程序之微信登陆 —— 微信小程序教程系列(20)


    实战篇

    ------------------------------------------------------------

    微信小程序之顶部导航栏实例 —— 微信小程序实战系列(1)

    微信小程序之上拉加载(分页加载)实例 —— 微信小程序实战系列(2)

    微信小程序之轮播图实例 —— 微信小程序实战系列(3)

    微信小程序之仿android fragment之可滑动的底部导航栏实例 —— 微信小程序实战系列(4)

    微信小程序之登录页实例 —— 微信小程序实战系列(5)

    微信小程序之自定义toast实例 —— 微信小程序实战系列(6)

    微信小程序之自定义抽屉菜单(从下拉出)实例 —— 微信小程序实战系列(7)

    微信小程序之自定义模态弹窗(带动画)实例 —— 微信小程序实战系列(8)


    电商篇

    ------------------------------------------------------------

    微信小程序之侧栏分类 —— 微信小程序实战商城系列(1)

    微信小程序之仿淘宝分类入口 —— 微信小程序实战商城系列(2)

    微信小程序之购物数量加减 —— 微信小程序实战商城系列(3)

    微信小程序之商品属性分类 —— 微信小程序实战商城系列(4)

    微信小程序之购物车 —— 微信小程序实战商城系列(5)


    未完待续。。。


    更多小程序的教程:http://blog.csdn.net/column/details/14653.html



    展开全文
  • 上一篇文章中https://blog.csdn.net/u014650759/article/details/90701866,我们已经安装好了微信开发者工具,并导入了一个Demo项目,这篇文章,将就开发者工具进行简单的介绍,方便你开发实用编译器,更好的开发小...

    上一篇文章中https://blog.csdn.net/u014650759/article/details/90701866,我们已经安装好了微信开发者工具,并导入了一个Demo项目,这篇文章,将就开发者工具进行简单的介绍,方便你开发实用编译器,更好的开发小程序。

    1.机型选择:小程序以IPhone7的屏幕尺寸为设计标准,让UI以IPhone7屏幕尺寸来切图。
    2.预览界面:写好视图布局后点击编译,视图界面刷新显示
    3.编译:代码更改后刷新编译。
    4.预览界面:查看编译后的效果,仅限于登录开发工具的开发者本人可以扫码并预览,其他人无法扫码预览。
    5.真机调试:扫描生成的二维码,真机进行调试。
    6.资源文件:对应项目的文件目录,一般可以在这里进行断点调试。
    7.数据存储:显示的是本地存储的数据,对应的相关API是wx.setStorageSync(key,data)
    8.视图代码:标组件以子父层级结构呈现,方便查看调试。
    9.9-1:代码体积,微信限制 2M 以内。  5-2:ES语法转换,开发中一般不校验合法域名信息 。5-3:域名信息:小程序后台要做配置服务器域名,有request 域名,socket 域名以及uploadFile和downloadFile域名。注意:域名小程序要求必须是https
    10.项目信息:展示项目所包含的文件,以及进行相关操作
    11.代码区域:进行项目下具体文件的代码编辑

    接下来,通过上面打开的项目,可以看到小程序框架以及目录结构,下面开始对代码架构目录做简要介绍:app.js、app.json、app.wxss

    1. app.js是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量,调用框架提供的丰富的 API。例如上面的界面展示了该代码文件中,数据存储操作,跳转登录页面,以及获取用户信息。
    2. ​app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序的窗口、背景色,配置导航条样式,配置默认标题,添加新的页面后也要在此文件中添加新页面申明。注意该文件不可添加任何注释。
    3. app.wxss 是整个小程序的公共样式表。我们可以在页面组件的 class 属性上直接使用 app.wxss 中声明的样式规则。其格式和写法,类似于css,不过是css的一个子集,也就是说有些css写法是不支持的。
    4. project.config.json是小程序的工具配置文件,可以做一些个性化配置,例如界面颜色、编译配置等等。在工具上做的任何配置都会写入到这个文件,当重新安装时,只要载入同一个项目的代码包,开发者工具就会自动配置,通常无需修改。
    5. sitemap.json是用来配置小程序及其页面是否允许被微信索引,当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索词条触发该索引时,小程序的页面将可能展示在搜索结果中,通常无需修改。

    这里上面讲解了小程序的项目文件,而小程序的交互是通过页面来进行的,所以同时我们也需要知道,小程序的页面组成,查看page文件夹下的页面文件,可以发现

    总结,至此,我们已经大概知道了小程序的开发工具内部区域功能布局,及其项目结构文件介绍。

    展开全文
  • 填入我们在登入微信公众平台刚刚申请到的小程序的 AppID 如果不填appid创建的项目有些功能会无法使用,如果创建的时候忘了,我们可以在创建好之后配置文件里配置 在这里我选择的是不使用云服务 创建项目成功后,...

    开发者工具下载安装

    我们把开发者工具下载安装好后

    (1)打开扫码登入开发者工具 出现以下页面,点击加号创建项目
    在这里插入图片描述

    在这里插入图片描述
    填入我们在登入微信公众平台刚刚申请到的小程序的 AppID
    在这里插入图片描述
    如果不填appid创建的项目有些功能会无法使用,如果创建的时候忘了,我们可以在创建好之后配置文件里配置
    在这里插入图片描述
    在这里我选择的是不使用云服务
    在这里插入图片描述
    创建项目成功后,自动生成了这个框架
    在这里插入图片描述

    下面介绍一下框架的作用

    app.js是小程序的脚本代码
    app.json是微信小程序全局的配置文件,我们可以在这个文件中配置小程序是由哪些页面组成的。
    配置小程序的窗口背景色
    配置导航条样式
    配置默认标题
    注意:该文件不可以添加任何注释

    在这里插入图片描述
    backgroundTextStyle ?
    navigationBarBackgroundColor 导航条样式(这里是导航条的背景颜色)
    navigationBarTitleText 导航条标题(这里是导航条的文本内容)
    navigationBarTextStyle 导航条文本样式(这里是字体的颜色)

    app.wxss 是整个小程序的公共样式,是全局的,其他任何地方都可以用到此样式。
    在这里插入图片描述
    在这个例子中,我们有两个页面index和logs页面,即欢迎页面和小程序启动日志的展示页,它们都是pages目录下,微信小程序的每一个页面的【路径+页面名】都需写在app.json的pages中,且pages中的第一个页面是小程序的首页。

    在这里插入图片描述
    每一个小程序页面都由四个同路径下的同名文件组成:
    在这里插入图片描述

    展开全文
  • 常用快捷键 格式调整 Ctrl+S:保存文件Ctrl+[, Ctrl+]:代码行缩进Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块Ctrl+C Ctrl+V:复制粘贴,如果没有选中任何文字则复制粘贴一行Shift+Alt+F:代码格式化Alt+Up,...
  • 快捷键 格式调整- Ctrl+S:保存文件- Ctrl+[, Ctrl+]:代码行缩进- Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块- Ctrl+C Ctrl+V:复制粘贴,如果没有选中任何文字则复制粘贴一行- Shift+Alt+F:代码格式化- Alt+...
  • 微信小程序是腾讯于2017年1月9日推出的一种不需要下载安装即可在微信平台上使用的应用。小程序和微信原生功能应用在本质上都是——Web App 小程序优势 微信有海量用户,依赖性很强,微信开发的产品更容易触达用户 ...
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • Ctrl+F 查找 Ctrl +Shift +F 全局搜索 Ctrl+K+C 注释 Ctrl+K+U 取消注释 Shift+Alt+F 代码格式化 转载于:https://www.cnblogs.com/heyiping/p/11555318.html...
  • 编辑器区域 编辑器区域分为两部分: 项目文件目录和结构展示区:在项目目录或文件上单击右键可完成新建文件、删除、重命名目录或文件等。...编辑js文件时,会自动补全所有的API,并给出相关注释解释;编辑w...
  • 微信小程序代码编辑快捷键常用快捷键格式调整Ctrl+S:保存文件Ctrl+[, Ctrl+]:代码行缩进Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块Ctrl+C Ctrl+V:复制粘贴,如果没有选中任何文字则复制粘贴一行Shift+Alt+F:...
  • Ctrl+S:保存文件Ctrl+[, Ctrl+]:代码行缩进Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块Ctrl+C Ctrl+V:复制粘贴,如果没有选中任何文字则复制粘贴一行Shift+Alt+F:代码格式化Alt+Up,Alt+Down:上下移动一行...
  • 刚开始使用,先熟悉快捷键!!!!...注释/打开当前行: ctrl + / 移动到文件结尾:Ctrl+End 移动到文件开头:Ctrl+Home 选中当前行:Ctrl+i 选择从光标到行尾:Shift+End 选择从行首到光标处:Shift+...
  • 微信提供了小程序的官方开发工具—微信开发者工具,当然,这个微信开发者工具 还可以用来调试运行在微信上的网页以及微信JS-SDK。 微信开发者工具官方下载地址:...
  • 微信开发者模式demo

    2019-07-09 15:50:12
    官方demo文件:wx_sample.php <?php /** * wechat php test */ //define your token define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); ...class wechatCallbackap...
  • 本节书摘来自华章出版社《微信...2.2 微信开发者中心 2.2.1 配置和启用服务器 登录微信公众平台后台,微信公众平台地址:mp.weixin.qq.com,在左侧列表中最下方,找到“开发者中心”,如图2-19所示。 单击进...
  • 微信小程序已经跑起来了.快捷键设置找了好久没找到,完全凭感觉.图贴出来.大家看看. 我现在用的是0.10.101100的版本,后续版本更新快捷键也应该不会有什么变化. 现在貌似不能修改.如果有同学找到修改的方法,麻烦告诉...
  • 本节书摘来自华章计算机《微信公众平台开发:从零基础到ThinkPHP5高...3.3 微信开发者中心 3.3.1 配置和启用服务器 登录微信公众平台后台(微信公众平台地址为https://mp.weixin.qq.com),在左侧列表的最下方找到...
1 2 3 4 5 ... 20
收藏数 8,405
精华内容 3,362