PHP如何从GitHub API返回的JSON数组中提取所有仓库的full_name字段
实现代码
修正后可直接提取所有full_name的代码
$curl1 = curl_init(); curl_setopt($curl1, CURLOPT_URL, $userdata->repos_url); curl_setopt($curl1, CURLOPT_HEADER, 0); curl_setopt($curl1, CURLOPT_HTTPHEADER, array( 'User-Agent: MY_WEBSITE_HERE Addon Developer OAuth' )); curl_setopt($curl1,CURLOPT_USERAGENT,'User-Agent: MY_WEBSITE_HERE Addon Developer OAuth'); curl_setopt($curl1, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl1, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl1, CURLOPT_SSL_VERIFYHOST, 0); $cont1 = curl_exec($curl1); // 修正原代码错误:需要关闭的是curl句柄而非返回内容 curl_close($curl1); // 解析返回的JSON为关联数组 $repoList = json_decode($cont1, true); // 遍历输出所有full_name foreach ($repoList as $repo) { echo $repo['full_name'] . "<br>"; }
生成下拉选择框的代码
如果要直接生成可供用户选择的下拉选项,把遍历部分替换为以下逻辑即可:
<select name="github_repo"> <?php foreach ($repoList as $repo): ?> <option value="<?php echo htmlspecialchars($repo['full_name']); ?>"> <?php echo htmlspecialchars($repo['full_name']); ?> </option> <?php endforeach; ?> </select>
可选容错补充
如果需要处理异常场景,可增加以下判断:
- curl请求失败判断:
if($cont1 === false) { // 处理请求错误逻辑 } - JSON解析失败判断:
if(json_last_error() !== JSON_ERROR_NONE) { // 处理返回内容不合法逻辑 }
内容的提问来源于stack exchange,提问作者user16886640
相关产品推荐
相关产品推荐

