聚合内容展示 / PHP XML 踩坑

2020-09-21 · 周一开心中雨

我想要在小程序中展示我首页中的聚合内容,但是原来的聚合内容采用的是 HTML 形式进行缓存的,所以说我要把这个格式改成 JSON,这样才可以保证多端的共用性。

聚合里面原来的文章缓存功能还存在着一个没解决的问题,由于 XML 标签 <content:encoded> 里面含有 :,就导致 PHP 的解析程序跳过了这个标签,无法通过文章内容提取里面的图片。

我想到了一招,就是先把 content:encoded 批量替换成 content,简单粗暴,再通过函数 simplexml_load_string 进行解析,就解决这个问题了。

$file = file_get_contents("https://paugram.com/feed");
$file = str_replace("content:encoded", "content", $file);
$file = simplexml_load_string($file, 'SimpleXMLElement', LIBXML_NOCDATA) -> channel -> item;

第二个问题是,这个函数返回的形式比较特殊,是个 Object 类型。如果直接打印结果,得到的是第一条,可通过索引值遍历,却可以得到里面的 1-4 条,为什么呢?而且获取里面的内容,却一样是数组形式,例如原有的 title 应该是 String,他却变成了 [0] => "标题" 这样的奇葩结构。而且这种类似 Array 的结构,却可以直接 echo 输出,而一般的 Array 都是直接报错无法输出的啊!

看到这种问题我一般会直接选择 Object 转 Array,变成 Array 不就正常进行遍历了么。

$result = "";
$file = file_get_contents("https://paugram.com/feed");
$file = str_replace("content:encoded", "content", $file);
$file = simplexml_load_string($file, 'SimpleXMLElement', LIBXML_NOCDATA) -> channel -> item;

// 用于缓存的 JSON 数据
$json = array();

for($i = 0; $i < 4; $i++){
  if(isset($file[$i])){
    // 这里必须转数组,不然插入进去的就是 [0] => "" 这样的了
    $iii = (array)$file[$i];

    array_push($json, array(
      "title" => $iii["title"],
      "link"  => $iii["link"]
    ));
    // 用于输出 HTML
    $result .= self::getTemplate($iii["title"], $img, $iii["link"]);
  }
  else{
    break;
  }
}

这种奇葩问题“暂时”解决之后,终于可以搞定数据接口了!于是小程序的主页也很快搞了出来,可是这种「网页链接」是不能在微信小程序跳转出去的吧?我看了下下面的逼站视频链接,小程序之间跳转小程序,是只能绑定在同一个公众号下的才行,不允许跳别人家的小程序来实现播放的操作!那可咋办哦?复制到剪贴板然后再用浏览器打开?

09.21-多年份日记.jpg09.21-新聚合.jpg
Paint It Black

Paint It Black

The Rolling Stones
Paul

Paul

特立独行的一只前端菜狗。这篇日记编写大概耗时了 0 分钟,内容均为个人原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!如本站内容对你有所帮助的话,不妨 捐助支持 一下?

近期评论

鲍小螺: 前辈多多指教!ahu: 后生可畏寻梦xunm: 真不错,板子很好看。timochan: 太惨了( ,更新暴毙,如果恢复没成功,数据也 dump 不出来鲍小螺: 在这部分对话中,广树和保罗继续讨论生活的不同方面。保罗提到了技术更新和国内的优秀 IT 技术。广树解释了在国内积累的经验如何在日本产生穿越的感觉,并表达了对于日本生活节奏的喜爱。他还提到了医疗水平的差异和对于生活方式的感受。保罗表示,通过动漫和现实的对比,艺术来源于现实,日本生活的确有着独特之处。他们讨论了国内的生活节奏和就医等方面的压力,以及个人选择的自由。最后,他们也谈到了不结婚不买房的选择和对于房价的困扰。鲍小螺: 该对话进一步讨论了房地产和税收的问题。保罗提到了国内的房地产税和增值税以及日本的固定资产税。广树解释了日本房地产税的收取方式,以及房产税对于国内房产的影响。他认为,与国内相比,日本的房子质量和服务更好。保罗提出疑问,为什么自己拥有的地也要交税。广树解释了类似增值税的原理,并指出在日本拥有房产是稳定安全的。最后,保罗表示从广树的角度来看,情况确实是如此。鲍小螺: 这篇文章的聊天记录也尝试过用 GPT 总结,结果并不是太好,不知道是不是 Prompt 的问题,实际出来的内容过于简练了,于是又耗费了半小时写完,呼~
奇趣音乐盒技术源于 Kico Player
Emmm,这里是歌词君