php导出CSV格式文件的换行符问题

php导出csv格式比起来使用excel的其他导出插件效率要高很多,尤其是对那些没有特殊要求的数据导出,csv格式导出是最好的选择。
然而,有时候我们会碰到需要在csv文件中的行内换行需求,这时候,如果简单的使用\n之类的换行符不一定能起到应有的作用,而是会出现意外情况:
不是换行,而是换格了。 继续阅读“php导出CSV格式文件的换行符问题”

结合TP、CI等php框架做微擎模块开发

首先,我们要知道,使用框架可以让开发变得更加敏捷和迅速,因为框架给我们搭好了舞台,而作为程序猿,我们只需要在这个舞台上表演好自己的节目即可。
而作为微擎的开发者,使用微擎本身的框架也可以做开发,但是微擎的框架有很多不成熟的地方,而且和有些人的开发习惯相悖,所以,选用自己的开发框架是一个不错的选择,尤其是考虑到以后的移植,更是要考虑一下怎么摆脱平台的套路。

小程序无法获取昵称和头像的解决办法

最近一个小程序的项目,做到一半的时候突然发现新用户无法正常获取到用户的昵称、头像等开放数据,非常郁闷,虽然只是开发版,但是遇到这种情况上线肯定不行,只能找解决办法。
无意中在微信开发工具的控制台看到这样一段话:

VM7110:1 获取 wx.getUserInfo 接口后续将不再出现授权弹窗,请注意升级

好吧,微信这么重大的升级,尽然不知道,看文档:

wx.getUserInfo(OBJECT)

注意:此接口有调整,使用该接口将不再出现授权弹窗,请使用 <button open-type=”getUserInfo”></button> 引导用户主动进行授权操作

  1. 当用户未授权过,调用该接口将直接报错
  2. 当用户授权过,可以使用该接口获取用户信息

现在,聪明人都知道是什么问题了,话说官方这样做真的提高用户体验了吗?

解决办法:

1.在页面中检查用户是不是授权,如果没有授权,那么引导授权,最好的办法是跳转到一个新的专门授权的页面中,示例代码如下。

<!--wxml-->
<!-- 如果只是展示用户头像昵称,可以使用 <open-data /> 组件 -->
<open-data type="userAvatarUrl"></open-data>
<open-data type="userNickName"></open-data>
<!-- 需要使用 button 来授权登录 -->
<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button>
<view wx:else>请升级微信版本</view>

2.在页面的js文件的onload中,检查是不是授权,没有授权,跳转到授权页授权:

Page({
  data: {
    canIUse: wx.canIUse('button.open-type.getUserInfo')//检查有没有使用权限
  },
  onLoad: function() {
    // 查看是否授权
    wx.getSetting({
      success: function(res){
        if (res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称
          wx.getUserInfo({
            success: function(res) {
              console(res.userInfo)
            }
          })
        }
      }
    })
  },
  bindGetUserInfo: function(e) {
    console.log(e.detail.userInfo)
  }
})

3.授权之后,就可以正常使用wx.getUserInfo获取用户数据了,获取成功后,跳转回之前的页面。

使用onShareAppMessage小程序自定义页面分享内容

今天做一个小程序,碰到了自定义分享内容(标题、图片,甚至于自定义页面)的问题,因为是第一次做,还是碰到不少坑,这里分享一下。
首先,只有在页面的Page中定义了 onShareAppMessage 函数,才能使用右上角分享菜单按钮,该函数的参数如下:

onShareAppMessage: function (res) {
    return {
      title: '自定义转发标题',
      path: '/page/index/index/',
      imageUrl:'图片链接',//本地或线上的都可以
      success: function(res) {
        // 转发成功
      },
      fail: function(res) {
        // 转发失败
      }
    }
  }

当然,一般我们都不希望分享的内容写死的,所以,最好是在页面中用分享按钮的点击事件来异步请求分享信息。
最后,如果要启用右上角的分享菜单,需要在onload中加入

wx.showShareMenu({
  withShareTicket: true
})

让你的网站整站变灰,使用css的filter滤镜属性

今天是512,大家都知道是什么日子,一般情况下,在这样的日子里,大一点的网站都会做一些小改动以纪念逝者,例如,将整站变成灰色。

其实,这不是什么特别难的事情,只需要一行CSS代码就够了。

filter: grayscale(0);

当然,为了兼容主流的其他浏览器,还应该加上

-webkit-filter:grayscale(0);/* Chrome, Safari, Opera */

完美众筹系统,支持你能想到的所有众筹

一款可以支持联合众筹、商品众筹、公益众筹等所有众筹的众筹系统。

1、本众筹支持联合众筹、普通众筹(公益、产品等);
2、支持设置多回报项,并自定义回报字段;
3、众筹支持微信支付及通过管理后台直接退款给支持者;
4、后台管理支持多用户分权限设置,如:财务只允许操作财务相关内容等;
5、更多详情可以联系客服QQ:17205628 继续阅读“完美众筹系统,支持你能想到的所有众筹”

做这两件事情将改变你的一生

上帝给每一个人一套不同的技巧和能力——你不相信上帝?但是世界上不会出现同一片树叶,所以你依然是独特的。

现在我们要说的是如何让自己变得不一样,无论是变成一个拯救别人的英雄还是自己梦想中的其他人物,总之让别人记住你甚至崇拜你。 继续阅读“做这两件事情将改变你的一生”