php返回json数据函数例子
json_encode()函数用法。
echo json_encode(array('a'=>'bbbb','c'=>'ddddd');
这样就会生成一个标准的json格式的数据
代码如下 | 复制代码 |
<?php //需要执行的SQL语句 //调用conn.php文件进行数据库操作 //提示操作成功信息,注意:$result存在于conn.php文件中,被调用出来 // $array=mysql_fetch_array($result,MYSQL_ASSOC); $users=array(); echo $row['id'].'-----------'.$row['name'].'</br>'; } */ /*单条数据*/ $row=mysql_fetch_row($result,MYSQL_ASSOC); mysql_free_result($result); ?> |
上面是数据库生成json数据了
单条数据:{"jsonObj":{"id":"1","name":"lmw"}}
多条数据:{"dataList":[{"id":"1","name":"lmw"},{"id":"2","name":"xxj"},{"id":"3","name":"xxxj"}]}
现在很多情况下,我们需要程序返回一个Json格式的结果,比如:
代码如下 | 复制代码 |
{ 可以将结果写成这样的数组形式: |
代码
代码如下 | 复制代码 |
function arrayRecursive(&$array, $function, $apply_to_keys_also = false) |
g:
$error_respon = array('code' => 'ERROR_MSG_MISS', 'msg' => '消息不存在');
echo JSON($array);
结果为:
{"code":"ERROR_MSG_MISS","msg":"消息不存在"}
客户端就可以解析这个结果了,当然错误码要用数字代替。
这样就好多了我们显示的直接是中文了,当然显示那个16进制的编码也是没有问题的哦。
下面来简单的介绍在php中get_meta_tags()、CURL与user-agent信息对比情况,如果你对于这篇文章有兴趣可进入参考学习。get_meta_tags()函数用于抓取网页中<meta name="A" content="1"><meta name="B" content="2">形式的标签,并装入一维数组,name为元素下标,content为元素值,上例中的标签可以获得数组:array('A'=>'1', 'b'=>'2')。其他<meta>标签不处理,并且此函数只处理到</head>标签时截止,之后的<meta>也不再继续处理,不过<head>之前的<meta>还是会处理。
user-agent是浏览器在向服务器请求网页时,提交的不可见的头信息的一部分。头信息是一个数组,包含多个信息,比如本地缓存目录,cookies等,其中user-agent是浏览器类型申明,比如IE、Chrome、FF等。
今天在抓取一个网页的<meta>标签的时候,总是得到空值,但是直接查看网页源代码又是正常的,于是怀疑是否服务器设置了根据头信息来判断输出。先尝试使用get_meta_tags()来抓取一个本地的文件,然后这个本地文件将获取的头信息写入文件,结果如下(其中替换成了/,方便查看):
代码如下 | 复制代码 |
array ( |
果然在数组中没有HTTP_USER_AGENT这个元素,apache在向另外一台服务器发送请求的时候是没有UA的。之后查了一下资料,get_meta_tags()函数没有伪造UA的能力,所以只能使用其他办法解决了。
后来使用CURL来获取,就获取到了网页,不过使用上稍微麻烦一点,首先伪造UA,获取之后在使用正则表达式分析<meta>
伪造办法:
代码如下 | 复制代码 |
// 初始化一个 cURL // 设置你需要抓取的URL // 设置是否将文件头输出到浏览器,0不输出 // 设置UA,这里是将浏览器的UA转发到服务器,也可以手动指定值 // 设置cURL 参数,要求结果返回到字符串中还是输出到屏幕上。0输出屏幕并返回操作结果的BOOL值,1返回字符串 // 运行cURL,请求网页 // 关闭URL请求 // 处理获得的数据 |
我先是使用trim() rtrim() ltrim() 来删除空格
代码如下 | 复制代码 |
<?php |
这样结果不是我们想要的中间空格无法删除,后来仔细查看了这三个函数的用法
trim() 去除一个字符串两端空格,
rtrim() 是去除一个字符串右部空格,
ltrim() 是去除一个字符串左部空格。
明白人看出没有删除中间空格的能力啊,那怎么办百度一下吧,人有说用正则替换函数,我们就试一下吧
看到有人这么说
代码如下 | 复制代码 |
$str = ” This line contains\tliberal \r\n use of whitespace.\n\n”; |
使用上面的例子可以去掉所有多余的空格,这样就搞写了哦。。
php查找文件大小的原理是遍历目录然后再利用filesize来计算文件大小,然后我们再加一判断就可以了,下面整理了一些例子。我们先来看遍历目录
代码如下 | 复制代码 |
function tree($directory) echo "<h2>目录为粉红色</h2><br>n"; |
这样只是把所有目录下的文件显示了,但我们要判断大小需加上round(filesize($cpath)/1024,1)函数了,这样我们获取大小之后就可以显示文件大小了。
代码如下 | 复制代码 |
<?php |
最后给大家附一个字节计算函数,这个可以转换
代码如下 | 复制代码 |
//字节数转换成带单位的 /* 原理是利用对数求出欲转换的字节数是1024的几次方。 * 其实就是利用对数的特性确定单位。 */ function size2mb($size,$digits=2){ //digits,要保留几位小数 $unit= array('','K','M','G','T','P');//单位数组,是必须1024进制依次的哦。 $base= 1024;//对数的基数 $i = floor(log($size,$base));//字节数对1024取对数,值向下取整。 return round($size/pow($base,$i),$digits).' '.$unit[$i] . 'B'; } |
设置静态内容缓存时间
代码如下 | 复制代码 |
$interval = 60 * 60 * 6; // 6 hours |
我们把上面这段代码加到php文件开头处,下面来给大家详解说有一下这四行代码
如我的代码
代码如下 | 复制代码 |
$interval = 60 * 60 * 6; // 6 hours header ("Last-Modified: " . gmdate ('r', $max)); header ("Expires: " . gmdate ("r", ($max + $interval))); header ("Cache-Control: max-age=$interval"); $aid = intval( isset( $_POST['aid'] )?$_POST['aid']:0 ); if( ! $aid ) { echo '未定义广告'; } else if( $aid ==1 ) { echo '加载广告内容'; } |
第一行:$interval 告诉你设置6个小时了,这里大家可自定哦。
第二行:向客户端浏览器发送一个Last-Modified请求,这个会根据gmdate的参数r来调用对应的日期。
第三行:设置Expires过期时间了
第四行:设置Cache-Control 的 max-age=$interval日期了。
再测试结果为优秀了
相关文章
- 安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
- 在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
- floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
- 下面我们来看一篇关于纯Css实现下拉菜单的简单例子,希望这篇文章能够给各位同学带来帮助,具体步骤如下. 大家可能会经常用到hover这属性,用hover实现鼠标经过的颜...2017-01-22
- 在php中日期对比用得比较多了,还有一个日期加减也用到不少,下面我拿两个例子来给大家介绍在php中日期操作方法吧,希望文章能给你带来帮助 功能需求 文章发布时段操...2016-11-25
- 本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25
- 正则提取图片中的地址我们介绍过很多的相关文章了,下面再来给各位介绍一个可以提取内容中第一张图片的例子,希望对各位有帮助。 代码如下 复制代码 ...2016-11-25
- 最近看到博客留言的头像有点别扭,因为游客的头像都是同一个头像,看着不是很舒服。虽然现在绝大多数的主题集成了Gavatar头像功能,先不说gavatar被墙的问题,我自己现在都没...2016-11-25
- php判断字符串是否包含另一个字符串的实现方法有许多的办法,像我们在网上一搜索可看到大量关于字符是否包含指定字符的方法,下面我把这些实用的例子整理一起与大家分享...2016-11-25
- date函数是php中一个非常好用的日期获取函数了,我们可以使用它来获取指定日期或者当前日期了,下面我来简单的介绍一下date函数用法与常用用法吧。 PHP星期几获取代...2016-11-25
- 音乐动画在css3中可以直接实现了不需要使用js了,下面我们来看一篇关于css3实现音乐动画播放的例子吧,具体的如下所示。 刚刚做了一个项目,涉及到音乐播放动画的效果,...2016-10-10
- JSON 可通过 JavaScript 进行解析,JSON 数据可使用 AJAX 进行传输,这篇文章主要介绍了通过jsonp获取json数据(实现AJAX跨域请求),有兴趣的可以了解一下。...2017-01-26
- 对于cookie path很多的朋友不以为燃了这样会发现就是因为一个小点或一个路径问题测试了一天发现读取不了cookie值了,今天我就来给大家介绍cookie中路径的一些例子与注...2016-11-25
- 文件锁可以防止文件读写时多人访问时出现共享问题或数据不准确的问题,下面我们来看一篇关于php文件锁类防止并发的例子,具体如下. 工作间隙写了个文件锁的类,用于...2016-11-25
- 404状态代码在php中可以使用header输出但不能使用echo或print输出哦,许多的朋友把这个给搞混了,下面我们来看一篇关于php输出404状态码的例子 例子 代码如...2016-11-25
- json_encode()函数是一个在php中可以把数组转换成json格式的函数了,但json_encode函数对于英文是没有任何问题,如果碰到中文或编码有不致情况时会出现中文转换之后变空...2016-11-25
- 利用php curl发送json数据与curl post其它数据是一样的,下面我来给大家总结几个关于curl post发送json数据实例,希望能加深各位对curl post json数据的理解吧。 例...2016-11-25
- Listing 4. simplemovie.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:VBox...2016-11-25
- 数组转xml用到不多用数组转json比较多了,但今天有一个功能就是必须要把数组转换成xml了,下面小编人网上找到了一段关于php 数组转xml的代码测试了都可以使用,下面整理分...2016-11-25
- 在php中我们要查看mysql数据库的信息我们可以直接连接mysql之后再调用mysql相关语句就可以实现了,下面给各位整理了一篇文章希望对大有帮助。 首先我们需要了解下...2016-11-25