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

RSS转JSON转换器偶发失效,PHP调用API获取Medium内容异常求助

排查Medium RSS转JSON无输出的问题

首先可以确定:API本身是正常的(你直接访问接口能拿到数据),问题大概率出在你的PHP代码逻辑里,我帮你拆解几个关键问题点:

1. 最核心的问题:没有输出逻辑!

看你的代码,循环里只是对$mediumPostTitle做了截取处理,但从头到尾没有把这个变量(或者任何内容)输出到页面的代码!比如你没写echo $mediumPostTitle;或者相关HTML输出语句,哪怕数据正常获取到了,浏览器也不会显示任何内容。

2. 缺失错误处理,无法定位问题

你的代码里没有对file_get_contents和json_decode的执行结果做错误检查:

  • 如果file_get_contents因为服务器配置(比如allow_url_fopen未开启)、网络问题或者API限流失败,会返回false,这时候json_decode(false)会得到null,导致if ($data)判断不成立,直接跳过循环,自然没输出。
  • 如果JSON解析失败,也会得到null,同样进入不了后续逻辑。

3. 冗余的字符串截取&变量重复使用

  • 你连续调用了两次mb_strimwidth,其实一次就够:$mediumPostTitle = mb_strimwidth($item['title'], 0, 57, '...');,第一次截到60再截到57完全没必要。
  • 初始的$data变量(存储Medium主页地址)和后面存储JSON解析结果的$data重名,虽然语法没问题,但容易混淆调试。

修复后的示例代码

<?php
// 重命名变量避免混淆
$medium_profile_url = "https://medium.com/@idrawcharts"; 
$whatIWant = substr($medium_profile_url, strpos($medium_profile_url, "@") + 1); 
$rss_url = 'https://medium.com/feed/@' . $whatIWant; 
$api_endpoint = 'https://api.rss2json.com/v1/api.json?rss_url='; 

$full_api_url = $api_endpoint . urlencode($rss_url);
$response = file_get_contents($full_api_url);

// 检查接口请求是否成功
if ($response === false) {
    die("无法获取API数据,请检查服务器allow_url_fopen配置或网络连接");
}

$data = json_decode($response, true);

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

if ($data) { 
    foreach ($data['items'] as $item) { 
        // 简化字符串截取
        $mediumPostTitle = mb_strimwidth($item['title'], 0, 57, '...'); 
        // 添加输出逻辑,这里用简单的标题示例,你可以改成自己需要的HTML结构
        echo "<div class='medium-post'><h3>{$mediumPostTitle}</h3><p><a href='{$item['link']}' target='_blank'>查看原文</a></p></div>";
    } 
} else {
    echo "没有获取到文章数据";
}
?>

调试建议

  1. 先运行修复后的代码,看是否能正常输出内容。
  2. 如果还是报错,根据页面显示的错误信息(比如allow_url_fopen未开启)去调整服务器配置。
  3. 可以先var_dump($data)看看解析后的JSON结构是否符合预期,确保$data['items']是存在的数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:22:39