json对象的遍历
在写内容管理框架时,需要实现根据当前路由 url 自动对导航栏特定项目予以高亮。由于,原有 cmf 是使用 json 结合 laytpl 模版引擎生成导航栏。
这个过程中需要使用到 json 对象遍历,下面简单学习下对如何对json数据遍历。
这里主要使用到 for ( var d in data ) 语句,对于复杂结构的 json 数据比较好用。
在写内容管理框架时,需要实现根据当前路由 url 自动对导航栏特定项目予以高亮。由于,原有 cmf 是使用 json 结合 laytpl 模版引擎生成导航栏。
这个过程中需要使用到 json 对象遍历,下面简单学习下对如何对json数据遍历。
这里主要使用到 for ( var d in data ) 语句,对于复杂结构的 json 数据比较好用。
某些情况下,我们需要查询json对象特定属性值下的结果,通过JSONPath可以很方便我们查询。
关于
JsonPath的介绍,http://goessner.net/articles/JsonPath/,JsonPath对于JSON来说相当于XPATH对于XML。这是一个简单的从文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript,Java,Python和PHP等。
这里我要演示的是 javascript 实现版本,使用的 jsonpath 类库来自 GitHub 上 jQuery-JSONPath ,注意该类库依赖于 jQuery 。
安全研究人员近日曝出一个名为幽灵(GHOST)的严重安全漏洞,这个漏洞可以允许攻击者远程获取操作系统的最高控制权限,影响市面上大量Linux操作系统及其发行版。该漏洞CVE编号为CVE-2015-0235。
glibc 是 GNU 发布的 libc 库,即c运行库。glibc 是 linux 系统中最底层的api,几乎其它任何运行库都会依赖于glibc 。glibc 除了封装 linux 操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。glibc 囊括了几乎所有的 UNIX 通行的标准。
代码审计公司 Qualys 的研究人员在 glibc 库中的 __nss_hostname_digits_dots() 函数中发现了一个缓冲区溢出的漏洞,这个 bug 可以经过 gethostbyname*() 函数被本地或者远程的触发。
应用程序主要使用 gethostbyname*() 函数发起 DNS 请求,这个函数会将主机名称转换为ip地址。
该漏洞影响 glibc 库版本 2.2-2.17 的 Linux操作系统
操作系统类型包括 CentOS 6 & 7、 Debian 7、 Red Hat Enterprise Linux 6 & 7 与 Ubuntu 10.04 & 12.04 各 Linux 发行版。
在使用 Laravel Eloquent 模型时,我们可能要判断取出的结果集是否为空,但我们发现直接使用 is_null 或 empty 是无法判段它结果集是否为空的。
var_dump 之后我们很容易发现,即使取到的空结果集, Eloquent 仍然会返回 Illuminate\Database\Eloquent\Collection 对象实例。
其实,Eloquent 已经给我们封装几个判断方法。
$result = Model::where(...)->get();
//不为空则
if ($result->first()) { }
if (!$result->isEmpty()) { }
if ($result->count()) { }参考网站:http://stackoverflow.com/questions/20563166/eloquent-collection-counting-and-detect-empty
最近在使用 Laravel 单元测试 phpunit ,发现在命令行下,打印某些网页字符串会显示乱码,经搜索后,知晓这是因为命令行代码页与网页编码不一致造成的。
Windows 简体中文系统,默认命令行代码页为936(简体中文),而网页编码一般为UTF-8(65001)。
可以尝试在命令行下输入以下命令,切换代码页:
rem utf-8
chcp 65001如需切换回简体中文,请输入
rem 简体中文
chcp 936