PHP yii2 rules验证 URL是否可以访问 get_headers

PHP yii2 rules验证 URL是否可以访问
在模型rules 方法里面 添加

 public function rules()
    {
        return [

            [['id', 'status', 'created_at', 'updated_at'], 'integer'],
            [['src'], 'string'],
            ['src', 'unique' , 'targetClass' => '\common\models\ncs\Baidu', 'message' => '此推广链接存在 !!!'], //判断存在
            ['src', 'IsGet'], //定义验证方法
        ];
    }

IsGet 方法内容 get_headers 函数 要开启 fileinfo扩展 和OpenSSL

 public function IsGet($attribute){
        $temp = get_headers($this->src,true);
        if(!preg_match('/200/',$temp[0])){
            $this->addError($attribute,'该链接无效, 无法访问');
        }else{
            return true;
        }
    }

在控制器中加入 验证

if (Yii::$app->request->isAjax && !Yii::$app->request->isPjax) {
     if ($model->load(Yii::$app->request->post())) {
         Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
         Yii::$app->response->data = \yii\widgets\ActiveForm::validate($model);
         Yii::$app->end();
     }
 }

视图form 开启ajax 验证

$form = ActiveForm::begin([
    'id' => $model->formName(),
    'enableAjaxValidation' => true, //开启验证
    'validationUrl' => Url::to(['ajax-edit', 'id' => $model['id']]),
    'fieldConfig' => [
        // 'template' => "<div class='col-sm-2 text-right'>{label}</div><div class='col-sm-10'>{input}\n{hint}\n{error}</div>",
    ]
]);

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值