You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP的file_get_contents提取API页面<pre>标签内的原始数据为数组?

提取API页面
标签内数据并转为PHP数组 

你当前拿到的是完整的HTML页面内容,要提取底部

标签里的数据并转成数组,按以下步骤操作:

1. 解析HTML提取
标签内容 

使用PHP的DOMDocument类解析HTML结构,定位到

标签并取出其文本内容:

// 屏蔽HTML解析时的警告(避免页面格式不规范导致报错)
libxml_use_internal_errors(true);

$dom = new DOMDocument();
$dom->loadHTML($response);
libxml_clear_errors();

// 查找所有<pre>标签,取第一个(若页面有多个可调整索引)
$preTags = $dom->getElementsByTagName('pre');
if ($preTags->length > 0) {
    $rawData = $preTags->item(0)->nodeValue;
} else {
    die('未找到目标<pre>标签');
}

2. 将原始数据转为PHP数组

假设

标签内的内容是JSON格式(这类API通常返回JSON),用json_decode将其转为关联数组:

// 第二个参数设为true,把JSON对象转为PHP关联数组
$dataArray = json_decode($rawData, true);

// 检查JSON解析是否成功
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解析失败:' . json_last_error_msg());
}

完整代码示例

替换你原来的代码,整合后的完整版本:

$search = mysqli_real_escape_string($db_conx, $_POST['search']);

$api_key = 'xxxxxxxx';
$api_url = 'https://www.kbo.party/api/v1/enterprise/' . $search . '?key=' . $api_key;

$response = file_get_contents($api_url);

if (!$response) {
    die('无法获取API响应');
}

// 解析HTML提取<pre>内容
libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->loadHTML($response);
libxml_clear_errors();

$preTags = $dom->getElementsByTagName('pre');
if ($preTags->length === 0) {
    die('未找到目标<pre>标签');
}
$rawData = $preTags->item(0)->nodeValue;

// 转成数组
$dataArray = json_decode($rawData, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解析失败:' . json_last_error_msg());
}

// 输出数组(或进行后续业务处理)
http_response_code(200);
print_r($dataArray);

内容的提问来源于stack exchange,提问作者Senne Vandenputte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:32:41