【MindiaX实例】 PHP 在foreach 中获取JSON 单个数据
之前在开发MindiaX 主题的时候,遇到一个要解析远程JSON 文件的数据的问题。当时困扰我的是整型与数字字符串是否等价的问题。现在过年有时间,就记录回来。
PHP解析JSON 文件
这里的话就直接先讲结果,MindiaX 主题有一个定时自动更换背景的功能,调用的背景图是来自于http://dreamafar.qiniudn.com/destination.json,解析其中的几个名称/值组合成url。实现这部分的函数如下:
// get remote img date from json function mindiax_remote_img() { $json_api_src ='http://dreamafar.qiniudn.com/destination.json'; $json = file_get_contents($json_api_src); $obj = json_decode($json); foreach ($obj as $destinations => $value) { foreach ($value as $date) { $curren_id = date("d");//获取当前日期 if($date->id == $curren_id){ $file_pre = $date->alias; $count = $date->photoCount; $file_id = rand(1,$count); $url= 'http://mindiax.qiniudn.com/'.$file_pre.'_'.$file_id.'.jpg'; return $url; break; } } } } |
---|
根据我的设定,图片设置在当天多少号就调用id为多少的图片(你可以看上面的代码),核心判断的地方:
if($date->id == $curren_id){} |
---|
当初考虑到 $date->id
输出的是字符串,$curren_id
则为整型数据。比如今天为5 号,那么 '5'== 5
返回的是true 吗?原谅我一开头不懂事,理所当然认为不能成立,然后拼命去寻找PHP 中数据类型的转化等方法。后来咨询了一位师兄,给了PHP官方文档页面的说明。
在coderunner 里面敲了下确实是如此:
但要是 5 === "5"
则返回 false的结果了,因为两者属于数据类型不同。这个如果学PHP 的话上面这些都是基础问题了吧,原谅我现在才知道。
- mysql高可用架构设计,处理高并发,大流量!
- 零基础入门深度学习 | 第三章:神经网络和反向传播算法
- 微信企业付款到个人钱包引发的坑之反思~!
- Intellij idea创建javaWeb以及Servlet简单实现
- 设计模式之代理模式之读写分离!!!
- Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)
- Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)
- 深入浅出Redis-redis底层数据结构(上)
- Linux下自动化监控内存、存储空间!
- 深入浅出Redis-redis底层数据结构(下)
- Spring-boot:快速搭建微框架服务
- Mysql重要参数说明
- 深入Java虚拟机--判断对象存活状态
- 梯度下降法快速教程 | 第一章:Python简易实现以及对学习率的探讨
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法