PHP字符串截取

这段代码好像是Tp的,也不记得了,作用是字符串截取,很多同学在抄的过程中把16进制的\弄丢了,于是好多人拷贝回去的代码都是x01-x7f这样的。这样是不能正常截取的。。。

 

PayPal REST 支付开发

PayPal 类似于国内的支付宝,财付通属于第三方支付公司主要是经营付款/收款业务。以前有老的api,看了一下我觉得不太好懂,新出的REST API看上去没有那么难。公司新出了一款产品,需要在国外出售,第一支付方式我们选用PayPal。

Paypal收款开发分为三步:

1.创建一个订单

2.跳转到Paypal让用户确认支付此订单

3.回调页执行一个执行扣款即可

下载Paypal官方SDK:https://github.com/paypal/PayPal-PHP-SDK

下载SDK后,仔细阅读github上 SDK主页上的说明,我之前就是因为没有仔细阅读这些,自己走了些弯路,SDK里有一些支付的示例,像使用Paypal支付,信用卡支付常用的都有了,可以支付copy一份出来然后稍微改动一下就可以实现支付。

理论上PayPal支持以下三种收款方式:

Sale,适用于马上发货的商品,如虚拟物品销售,这类网站集成EC,通常选sale

Authorization:买家付款后需要你进行确认,然后钱才进你的pp账户

Order:普通物品销售,买家一付款,钱就到你账户,不需确认

 

PHP5.4 以下 json_decode 不支持BigInt

在PHP中,json_decode函数经常会用到,特别是写一些api的时候 ,数据格式一般不是XML就是JSON

json_decode当遇到长整形,且超过14个字节的时,会使得decode后的值不正确

比如:

正常情况下会输出:

但是,输出却是:

这时候不管是入库,还是判断啥的好像都不好使…

解决办法如下:

 

Zend framework 2 常用查询

基本上单表查询条件都能满足,只有像Left Join这些查询有时候会有两个Bug出现

查询主要用的对象

来个简单的先:

这个很简单的,只是实现了一个简单的查询:

也可以用以下代码实现:

那么写我只是为了可以添加更复杂的查询条件

稍后再写。。。

 

 

在字段查询时使用函数:

 

Zend framework 2 实现__construct一样的功能

在php中,构造方法有两种形式:

  1. 与类同名的方法,此种已经在新版里被废弃,所以我们不考虑使用这种
  2. __construct()魔术方法,此方法表示在类声明时调用,亦称为PHP的构造方法,

在php中,若手动添加了__construct时,父类的__construct方法不会被自动调用,需要手动使用parent::__construct()调用父类的构造方法,在zf2中,主要依赖的是事件驱动,所以使用__construct是不管用的。

如果只是普通的需要,添加__construct再调用parent__construct,但一般我们需要在构造方法里写一些事件调用,比如非常常用的:$this->getServiceLocator()->get()。所以我们需要在事件管理器注册好了,再调用

如下所示:

此时的init()方法,就相当于__construct方法,此方法的执行是在其它的方法之前。

其实很简单,就是事件驱动的作用

Mac PHP开发集成环境MAMP Pro

Mac没有找到好一点的集成环境,XAMPP在Windows下用用还行,Mac下我就觉得不太好用了。后来找到一个叫MAMP的集成环境,说实话还不错,用起来也挻方便的。推荐大家使用
现在MAMP已经出到3了,前段时间下载下来用过,发现Bug有点多,就没继续使用,转而使用稳定的老版本2.4.1,这个版本也是不错了,支持到php5.4.10,对PHP的支持也不算是老,就算是对php版本要求很高的Zend Framework 2也是可以使用这个集成环境来开发。

这玩意儿集成得很不错,没有任何副作用,运行良好。PHP包含多个版本可以选择,支持PHP的一些Cache扩展比如:XCache,APC等。支持PHP,Apache参数自定义。本地使用起来极为方便

mamp-pro-php-cache

放一个2.4.1版本的下载:

下载:MAMP_MAMP_PRO_2.1.4

本来想传网盘,传了一下午,百度和微云都出错。。。放弃了

Zend framework 2 多语言配置

Zend Framework 2 默认支持国际化I18n,直接在Zend Studio里建的工程,也是默认就开启了多语言配置,只需要更改 ‘locale’ => ‘en_US’ 就可以修改网站显示language目录下面的.mo里的语言。但是没有找到语言切换相关的配置,比如根据浏览器的语言自动切换语言显示,或者根据用户指定的语言显示…

配置 module.config.php:

语言初始化在框架加载的时就可以做了,所以可以直接在 Module.php bootstrap里写。这里有一个优先级的问题:

语言可以通过三种途径方式获得:

  1. 用户主动设置时
  2. 用户主动设置过,已保存在Session中
  3. 用户未主动设置,Session中也未保存语言,此时可从 Http协议头里拿到 Accept-Language 的值作为首选语言项

优先级别最高的是用户主动设置,其次是Session中已保存的语言,当前两者都没有的时候才选择 协议头里的值作为语言参考项。而当这三项都拿不到的时候,则会使用默认配置 local 填写的值。

当这里配置完成,在URL上使用?language=zh-CN或者 ?language=zh-TW即可切换语言。切换失败也就是传入参数无法与配置里的匹配时,默认使用配置 local 的值

Zend Framework 2 \Zend\Http\Client\Adapter\Curl 使用示例

curl是非常容易使用,也是很常用的网络工具之一。要使用curl需要在编译时使用参数–with-curl打开。windows下需要加载php_curl.dll库。
关curl的使用不管是Get还是Post网上一搜,一大把哦,比如下面这段就是我在Baidu上随便搜索的:

Zend Framework 2对Curl进行了一个封装,\Zend\Http\Client\Adapter\Curl,其实我觉得这个封装有点过了,一点也不好使,最后还是使用原生的来得快