cURL:未捕获错误:stdClass 类的对象无法转换为字符串

问题描述 投票:0回答:2

不确定为什么会出现以下错误:

Uncaught Error: Object of class stdClass could not be converted to string

我正在关注这里的教程:

https://www.youtube.com/watch?v=ZIsdbVOQJNc&t=20s

我现在所在的位置是 6 点 16 分左右。

这是我的代码:

<?php
  $url = "http://localhost/restapi/";

  $data_array = array(
    'username' => 'jbeasley',
    'fullname' => 'John Beasley',
    'email' => '[email protected]'
  );

  $data = http_build_query($data_array);

  $ch = curl_init($url);

  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  $resp = curl_exec($ch);

  if($e = curl_error($ch)) {
    echo $e;
  } else {
    $decoded = json_decode($resp);
    foreach($decoded as $key => $val) {
        echo $key . ': ' . $val . '<br>';  // <-- error is pointing here
    }
  }

  curl_close($ch);
?>

错误指向 foreach 循环中的 $val 变量。

实际的 API 如下所示:

<?php
  require_once __DIR__ . '/config.php';
  class API {
    function Select() {
        $db = new Connect;
        $users = array();
        $data = $db->prepare('SELECT * FROM users');
        $data->execute();
        while($OutputData = $data->fetch(PDO::FETCH_ASSOC)) {
            // $users[$OutputData['username']] = array(
            $users[] = array(
                'username' => $OutputData['username'],
                'fullname' => $OutputData['fullname'],
                'email' => $OutputData['email']
            );
        }

        return json_encode($users);
    }
  }

  $API = new API;
  header('Content-Type: application/json');
  echo $API->Select();
?>

我做错了什么以及如何解决它?

php api curl
2个回答
0
投票

根据 aynber 的建议,我能够通过将 foreach 循环更新为如下所示来解决问题:

foreach($decoded as $key => $val) {
  foreach($val as $key2 => $val2) {
    echo $key2 . ': ' . $val2 . '<br>';
  }
}

0
投票

我正在尝试使用 PHP 获取 YouTube 字幕,但遇到了困难。具体来说,我无法使用典型方法(例如 file_get_contents 或 curl_init)检索字幕。我想知道如何在 PHP 中有效地管理这个过程而不依赖这些函数。

此外,我已在 Google Cloud Console 中创建了一个项目并设置了必要的凭据,但我仍然无法从 YouTube 检索字幕。如果您能提供有关如何正确配置 PHP 代码以成功获取 YouTube 字幕的指导,以及我可能需要在 Google Cloud Console 中执行的任何步骤以确保一切设置正确,我将不胜感激。

谢谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.