不确定为什么会出现以下错误:
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();
?>
我做错了什么以及如何解决它?
根据 aynber 的建议,我能够通过将 foreach 循环更新为如下所示来解决问题:
foreach($decoded as $key => $val) {
foreach($val as $key2 => $val2) {
echo $key2 . ': ' . $val2 . '<br>';
}
}
我正在尝试使用 PHP 获取 YouTube 字幕,但遇到了困难。具体来说,我无法使用典型方法(例如 file_get_contents 或 curl_init)检索字幕。我想知道如何在 PHP 中有效地管理这个过程而不依赖这些函数。
此外,我已在 Google Cloud Console 中创建了一个项目并设置了必要的凭据,但我仍然无法从 YouTube 检索字幕。如果您能提供有关如何正确配置 PHP 代码以成功获取 YouTube 字幕的指导,以及我可能需要在 Google Cloud Console 中执行的任何步骤以确保一切设置正确,我将不胜感激。
谢谢您的帮助!