如何用循环将PHP CURL获取的数据以表格形式输出到网页
实现方案:将API数据转为HTML表格展示
修改后的完整代码
<?php $user_curl = curl_init(); curl_setopt_array($user_curl, array( CURLOPT_URL => "https://gorest.co.in/public-api/users", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 60, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_POSTFIELDS => "", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", ), )); $user_curl_response = curl_exec($user_curl); $user_curl_err = curl_error($user_curl); if ($user_curl_response) { $result = json_decode($user_curl_response, true); // 检查是否存在有效数据 if (!empty($result['data']) && is_array($result['data'])) { // 开始生成HTML表格 echo '<table border="1" cellpadding="8" cellspacing="0">'; // 生成表头:取第一条数据的键作为表头 $headers = array_keys($result['data'][0]); echo '<thead><tr>'; foreach ($headers as $header) { // 将键转为更友好的显示文本 $displayHeader = ucwords(str_replace('_', ' ', $header)); echo "<th>{$displayHeader}</th>"; } echo '</tr></thead>'; // 生成表格内容行 echo '<tbody>'; foreach ($result['data'] as $user) { echo '<tr>'; foreach ($user as $value) { // 对status字段添加样式区分 if ($value === 'active') { echo "<td style='color: green; font-weight: bold;'>{$value}</td>"; } elseif ($value === 'inactive') { echo "<td style='color: red;'>{$value}</td>"; } else { echo "<td>{$value}</td>"; } } echo '</tr>'; } echo '</tbody></table>'; } else { echo '没有获取到有效用户数据'; } } else { echo '请求失败:' . $user_curl_err; } curl_close($user_curl); // 释放CURL资源 ?>
关键说明
- 表头生成:通过
array_keys($result['data'][0])提取第一条用户数据的键名,转成更友好的表头文本(比如id转为Id,status转为Status)。 - 数据遍历:循环
$result['data']中的每个用户数组,逐行渲染表格内容。 - 样式优化:给
active和inactive状态添加颜色区分,提升页面可读性。 - 异常处理:增加数据有效性判断,避免空数组引发错误;同时捕获CURL请求错误并给出提示。
- 资源管理:添加
curl_close($user_curl)释放CURL资源,规范代码逻辑。
内容的提问来源于stack exchange,提问作者Ajay Tiwari
相关产品推荐
相关产品推荐

