Laravel 5.2 curl_init()抛出错误“调用未定义的函数”

时间:2016-12-20 04:23:48

标签: php curl laravel-5

我正在尝试使用curl在laravel中使用FCM,但我收到错误。首先,我在我的一个cotroller中写了一个PHP代码:

$first_name = $request->input('first_name');
      //FCM api URL
      $url = 'https://fcm.googleapis.com/fcm/send';
      //api_key available in Firebase Console -> Project Settings -> CLOUD MESSAGING -> Server key
      $server_key = 'AIzaSyA1RyuAGGPASh_flFCwiyd9ZHEMYlhQOho';
   $target = "r_token";
      $fields = array();
      $fields['data'] = $first_name;
      if(is_array($target)){
        $fields['registration_ids'] = $target;
      }else{
        $fields['to'] = $target;
      }
      //header with content_type api key
      $headers = array(
        'Content-Type:application/json',
        'Authorization:key='.$server_key
      );

      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_POST, true);
      curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
      $result = curl_exec($ch);
      if ($result === FALSE) {
        die('FCM Send Error: ' . curl_error($ch));
      }
      curl_close($ch);
      return $result;

我正在尝试使用laravel 5.2在我的控制器中运行此代码但是我收到此错误:

  FatalErrorException in WebKyoController.php line 52:
   Call to undefined function App\Http\Controllers\curl_init()

我试过:sudo apt-get install php-curl和apache restart,但我仍然收到错误。我只是想知道我需要做什么。

3 个答案:

答案 0 :(得分:3)

我偶然发现了这个答案,所以为了防止另一个倒霉的灵魂跟随,请尝试下面对我有用的。

  1. 找出运行的PHP版本
  2. # php -v PHP 7.0.28-0ubuntu0.16.04.1 (cli) ( NTS ) ...

    在这种情况下,我有PHP 7.0

    1. 为您的PHP版本安装Curl
    2. sudo apt install php7.0-curl

      1. 立即应用此安装运行
      2. sudo service apache2 restart

        1. 再次运行您的代码,看看它是否在Curl上不再出错。

答案 1 :(得分:0)

不知道php版本

sudo 服务 apache2 重启

sudo apt-get install php-curl

答案 2 :(得分:-1)

我找到了这个问题的解决方案我安装了php 7并且无法正常工作。但是我已经删除了php 7并安装了php 5然后我运行了这些命令:

 sudo apt-get install curl
 sudo service apache2 restart
 sudo apt-get install php5-curl
 sudo service apache2 restart

以上命令对我有用。我不知道为什么它不能用于php 7