php7兼容spilit_解决yii2不兼容php7的地方

1.正则不支持/e模式

如果用/e模式,会抛出以下异常信息:PHP Warning 'yii\base\ErrorException' with message 'preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead'

in E:\project\basic\extensions\html_safe\HTML_Safe.php:356

可以改为:$tempval = preg_replace('/(\d+);?/me', "chr('\\1')", $value);

//可以改为:

$tempval = preg_replace_callback('/(\d+);?/m', function($matches){

return chr($matches[1]);

}, $value);

2、发送邮件报错

如果用ssl加密的端口,会报以下错误:

Exception 'Swift_TransportException' with message 'Connection could not be established with host mail.daixiaorui.com [ #0]'

解决办法:

1、将port改为25;

2、注释“encryption”。

完整配置如下:'mailer' => array(

'class' => 'yii\swiftmailer\Mailer',

'transport' => array(

'class' => 'Swift_SmtpTransport',

'host' => 'mail.daixiaorui.com',

'username' => 'test@daixiaorui.com',

'password' => '************',

'port' => '25',

//            'encryption' => 'ssl'

),

'messageConfig'=>[

'charset'=>'UTF-8',

'from'=>['test@daixiaorui.com'=>'test']

]

),

3、附加一点:以下写法不支持(不过这不属于yii框架本身的问题)

$dealAfterObj->$dealCallbackAfter[1]($param);

解决办法://将以下

$dealAfterObj->$dealCallbackAfter[1]($param);

//改成

$dealFuncName = $dealCallbackAfter[1];

$dealAfterObj->$dealFuncName($param);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值