php中将xml转成json

在做底层接口,php对接一个老项目,对方返回的是xml,解析起来还是很麻烦的。还是转成json简单易用。

SimpleXML 函数是 PHP 核心的组成部分,它允许我们把 XML 转换为对象。

假定对方http返回的内容是 utf-8 编码的$response,我们返回的json格式给上层使用

$body = $response->body;

$xml = simplexml_load_string($body);
$result = json_decode(json_encode($xml, JSON_UNESCAPED_UNICODE), true);

return response()->json($result, $response->status);

参考资料:


几个微信公众号开发时的错误代码

开发公众号也有好一段时间了,说起来开发是蛮简单的。很久没看了,最近遇到了一些问题,小小总结一下。

客服接口65400错误

很久没有动过一个微信公众号了,今天发信息的时候发现发不通。看了日志,发现了这个错误——[Wechat][65400] please enable new custom service, or wait for a while if you have enabled hint: [0Lx7ja0168e303]。

想了一下,应该是没有添加客服吧(虽然之前使用没问题,貌似最近公众号升级了导致出现问题)。试着添加了一下客服,稍等5分钟左右,就好了。嗯嗯。

客服接口45015错误

{  
    "errcode":45015,  
    "errmsg":"response out of time limit or subscription is canceled hint: [ZE1Uxa0498age8]"  
}  

原因是当用户微信不活跃时间超过24小时(此时间当前是多少由腾讯定),不会将信息推送到用户微信公众号。

原先我们给用户发送的消息都是使用客服消息发送的,就会导致这种情况。如果是网站的服务通知,可以使用模板进行发送,这个没有时间限制。

当然模板功能也是要申请的,大概需要2天时间。每个账号可以同时使用15个模板。当前每个模板的日调用上限为 10 万次。

参考资料:


使用git@oschina时存储密码

最近使用了oschina的git服务,虽然不那么稳定(一星期抽风一到两次),应该已经是国内最好的git服务了吧。小团队不需要部署自己的git服务器,减少了不少维护成本。

然而,在服务器上每一次拉取代码都要输入密码,比较烦人。

不过为了方便部署,我还是把记住密码的功能打开了。下面是解决办法。

  • 设置基本的git信息:

      $ git config --global user.name "John Doe"
      $ git config --global user.email johndoe@example.com
    
  • 进行一次git操作,pull或者fetch都ok
  • 储存密码

      git config --global credential.helper store # 长期存储密码
      git config --global credential.helper cache # 设置记住密码(默认15分钟)
      git config credential.helper 'cache --timeout=3600' # 自己设置时间
    

参考资料:


军哥的lnmp一键安装包

我自己部署的话,一般用的是debian+openresty+postgres+php。虽然如此,为别人快速安装一键部署环境的时候,lnmp依然是最简便易行的选择。

基本的操作在官网上都有,lnmp一键安装包。今天仅仅记录一些容易忘记的操作,避免每次都上官网去找。

我使用的版本是1.2,发现mysql和pureftp会有些问题,因为网站已经开放使用了,也就懒得换了。

安装

按照官网的提示,安装使用下面的命令,再输入些相关的信息,即可安装完成。

wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp

常用命令

LNMP 1.2输入lnmp命令即可看到常用命令。

LNMP 1.1及之前的版本采用/root/vhost.sh 进行添加虚拟主机。

Usage: lnmp {start|stop|reload|restart|kill|status}
Usage: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
Usage: lnmp vhost {add|list|del}
Usage: lnmp database {add|list|del}
Usage: lnmp ftp {add|list|del}

虚拟主机管理

直接使用lnmp命令即可

lnmp vhost add
lnmp vhost list
lnmp vhost del

虚拟主机配置文件在:

/usr/local/nginx/conf/vhost/域名.conf

执行:/etc/init.d/nginx restart 重启生效

上传网站后执行:chown www:www -R /path/to/dir 对网站目录进行权限设置

链接

插件

FTP服务器: PureFTPd,执行:./pureftpd.sh 安装,http://yourIP/ftp/ 进行管理。

缓存加速: LNMP1.2下统一使用./addons.sh 进行安装和卸载。

使用方法:./addons.sh {install uninstall} {eaccelerator xcache memcached opcache redis imagemagick ioncube}

安装目录

LNMP相关软件安装目录

Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/

LNMP相关配置文件位置

Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
/root/vhost.sh添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.conf

转载自: