php使用crontab

<?php
namespace Crontab;

class Base
{

    use \CommonTrait\Base;

    private $domain = '';

    private $path = '';

    private $data = [];

    private $method = 'get';

    private $key = '';

    private $sign = 1;

    public function sendPostByCurl($url, $data)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $this->makeData($data));
        $return = curl_exec($ch);
        curl_close($ch);
        return $return;
    }

    public function sendGetByCurl($url, $data)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "{$url}?" . $this->makeData($data));
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $return = curl_exec($ch);
        curl_close($ch);
        return $return;
    }

    public function makeData($data)
    {
        $serviceSign = $this->get(SERVICE_SIGN);
        if($this->sign){
            if(!isset($data['timestamp'])){
                $data['timestamp'] = time();
            }
            if(!isset($data['rand'])){
                $data['rand'] = mt_rand(100000, 999999);
            }
            if(empty($this->key)){
                $sign = $serviceSign->getSign($data);
            }
            else{
                $sign = $serviceSign->getSign($data, $this->key);
            }
            $data['sign'] = $sign;
        }
        $data = http_build_query($data);
        return $data;
    }

    public function setMethod($method = 'get')
    {
        $this->method = $method;
        return $this;
    }

    public function setSignAppKey($key = '')
    {
        $this->key = $key;
        return $this;
    }

    public function setSign($sign = 1)
    {
        $this->sign = $sign;
        return $this;
    }

    public function setDomain($domain = '')
    {
        $this->domain = $domain;
        return $this;
    }

    public function setPath($path = 'Api/Feedback/getType')
    {
        $this->path = $path;
        return $this;
    }

    public function setData($data = [])
    {
        $this->data = $data;
        return $this;
    }

    public function getResponse()
    {
        $domain = $this->domain;
        if(empty($domain)){
            $domain = getDomain();
        }
        $path = $this->path;
        $path = ltrim($path, '/');
        $path = rtrim($path, '/');
        $url = "{$domain}/{$path}";
        if($this->method == 'get'){
            return $this->sendGetByCurl($url, $this->data);
        }
        return $this->sendPostByCurl($url, $this->data);
    }

    public function print_r_ln($data)
    {
        print_r($data);
        echo PHP_EOL;
    }

}

练习:

<?php
namespace Crontab;

class Demo extends Base
{


    /*
        /usr/bin/php -d display_error /app/cli.php local Demo.api
    */
    public function api()
    {
        $data = [
            'key' => 'status'
        ];
        $response = $this->setPath('Api/Choice/getListByKey')->setData($data)->setSign(1)->setMethod('get')->getResponse();
        $this->print_r_ln($response);
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值