淘宝API返回的json数据无法用json_decode的问题

 更新时间:2016年11月25日 17:38  点击:1997
本文章来给各位介绍我在使用淘宝 API 返回的json数据无法用json_decode的问题的一些解决办法介绍,大家可参考。

如题,这个问题困扰我已久。。。经过自己的多次尝试,和到网上搜索,我已大概猜测到是字符的问题,论坛上的朋友说,PHP的json_decode对json数据要求非常严格,必须是{“key”:”value”}的双引号包围才行,而且,对一些特殊符号不兼容。。。例如UTF-8的 BOM头,或者是C++字符的结束符等等。。。

经过排查,我发现。。。淘宝API返回的json数据(特别是taobao.taobaoke.items.detail.get),之所以json_decode后,结果为null,原因就是返回的数据含有回车符。。。这可能是一些店主在装修时,或者填写店铺描述,商品描述不规范所留下的。。。所以用

 代码如下 复制代码

$json = str_replace(array(“rn”,”n”,”r”,”t”,chr(9),\n),”,$json );      
$json = json_decode($json,true);    

这样就可以解决这个问题了。

本文章来给各位同学详细介绍关于uchome中模糊搜索的实现与分页bug的修复的一些具体方法,有需要了解的朋友可参考本文章来设置。

在默认uchome中好友的搜索是无法模糊搜索的,不知为何,有的人无法记住好友的全名便不可能从搜索中找到该好友了,这对用户体验是非常不好的。

经过研究改动如下代码就可以实现uchome的模糊搜索功能了。

在source中cp_friend.php的文件中找到如下代码修改$wherearr[]中的语句如下即可:

 代码如下 复制代码
 
if($searchkey = stripsearchkey($_GET['searchkey'])) {
            $wherearr[] = "(s.name like '%"."$searchkey"."%' OR s.username like '%"."$searchkey"."%')";
        } else {
            foreach (array('uid','username','name','videostatus','avatar') as $value) {
                if($_GET[$value]) {
                    $wherearr[] = "s.$value='{$_GET[$value]}'";
                }
            }
}

搜索分页bug的修复

使用中发现ucenter的用户搜索如果加时间去搜索的话,列表中的分页是错误的,ucenter1.5和1.6均有这个错误,不知道官方为什么不解决这个问题。经过研究,解决方法如下:
打开control/admin下的user.php
寻找代码

 代码如下 复制代码

$multipage = $this->page($num, UC_PPP, $_GET['page'], ‘admin.php?m=user&a=ls&srchname=’.$srchname.’&srchregdate=’.$srchregdate);

将其改成

 代码如下 复制代码

$multipage = $this->page($num, UC_PPP, $_GET['page'], ‘admin.php?m=user&a=ls&srchname=’.$srchname.’&srchregdatestart=’.$srchregdatestart.’&srchregdateend=’.$srchregdateend);

即可完成修复。

本文章晋级人大家介绍phpword中文字符乱码解决办法,希望此文章对各位所有帮助哦。

最近领导要求用php生成word,网上找了很多类啊,函数啊。最终相中phpword。无奈不是国人开发,对中文支持很不友好。经过研究,终于解决了中文乱码,分享出来。

1、用模板word生成word中文乱码解决方案:

打开phpword/Template.php文件,找到$replace = utf8_encode($replace);将其改为$replace =iconv('gbk', 'utf-8', $replace); 即可。

2、直接生成word文档,调用addText对象时中文乱码解决方案:

打开phpword/Section.php文件,找到$givenText = utf8_encode($text);将其改为$givenText = iconv('gbk', 'utf-8', $text);即可。

3、貌似其他方法也类似第解决。

4、注意php文件采用gbk哦。反正我的显示中文了。在网上找了好久,研究了半天才搞定。

本文章来给各位同学介绍file_get_contents不能获取带端口的网址解决办法,有需要了解的同学可参考。


先们来了解file_get_contents() 函数,官方介绍说它是把整个文件读入一个字符串中。


例子

<?php
echo file_get_contents("test.txt");
?>

输出:

This is a test file with test text.

同样此函数还可以用于获取远程服务器上的内容


file_get_contents('http://www.111cn.net');

这样也是没有问题,但是如果我带了端口了就有问题了


例如:


file_get_contents('http://localhost:12345');


没有任何获取。

解决方法是 :关闭selinux

1 永久方法 – 需要重启服务器

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

2 临时方法 – 设置系统参数

使用命令setenforce 0

附:

setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式

php的allow_url_fopen选项是关闭了

原因是我们php.ini中把php的allow_url_fopen选项是关闭了,我们只要把它打开即可。

如果你没有权限打开allow_url_fopen的话我们可使用curl函数的来替换,也是很方法的。

在php中file_get_contents函数可直接采集远程服务器内容,然后保存到一个变量中了,介理一般都会把file_get_contents、fsockopen等一些IO操作的函数禁用掉,因为它们怕被 DDOS

那么一般情况下,我们改不了服务器的 inc.php,只能自己写一套IO来代替上面的PHP函数了。

 代码如下 复制代码


$url = file_get_contents('http://www.111cn.net/');

我们可以用下面的代码代替

 代码如下 复制代码

//禁用file_get_contents的解决办法
$ch = curl_init();
$timeout = 10; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL,'http://www.111cn.net/');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$url = curl_exec($ch);


curl是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等,它不会被服务器禁用,所以我们可以用来模拟file_get_contents一样打开一条URL。

利用function_exists函数来判断php是否支持一个函数可以轻松写出下面函数

 

 代码如下 复制代码
< ?php
 function vita_get_url_content($url) {
 if(function_exists('file_get_contents')) {
 $file_contents = file_get_contents($url);
 } else {
 $ch = curl_init();
 $timeout = 5; 
 curl_setopt ($ch, CURLOPT_URL, $url);
 curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
 $file_contents = curl_exec($ch);
 curl_close($ch);
 }
 return $file_contents;
 }
 ?>
[!--infotagslink--]

相关文章

  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • js中flexible.js实现淘宝弹性布局方案

    这篇文章主要介绍了js中flexible.js实现淘宝弹性布局方案,需要的朋友可以参考下...2015-12-25
  • Postgresql 解决pg掉电后无法重启的问题

    这篇文章主要介绍了Postgresql 解决pg掉电后无法重启的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-18
  • 通过jsonp获取json数据实现AJAX跨域请求

    JSON 可通过 JavaScript 进行解析,JSON 数据可使用 AJAX 进行传输,这篇文章主要介绍了通过jsonp获取json数据(实现AJAX跨域请求),有兴趣的可以了解一下。...2017-01-26
  • Web技术:易趣 vs 淘宝

    这两个月来,因为工作的需要,对 Web 相关的技术做了一点研究,经过在自己的 站点 上一点实践。觉得自己还算略有心得[实际上是刚刚入门的啦:)]。 本着学以致用的原则...2016-09-20
  • php返回json数据函数例子

    json_encode()函数是一个在php中可以把数组转换成json格式的函数了,但json_encode函数对于英文是没有任何问题,如果碰到中文或编码有不致情况时会出现中文转换之后变空...2016-11-25
  • php 通过curl post发送json数据实例

    利用php curl发送json数据与curl post其它数据是一样的,下面我来给大家总结几个关于curl post发送json数据实例,希望能加深各位对curl post json数据的理解吧。 例...2016-11-25
  • photoshop化妆品瓶子类淘宝美工教程分享

    今天小编在这里就来给各位photoshop的这一款软件的使用者们来说一说化妆品瓶子类淘宝美工的教程,各位想知道具体教程的使用者们,那么大家就快来跟着小编来看下吧。 ...2016-09-14
  • 雷军双11将做客淘宝头条官方问答节目 现场送小米MIX F码

    今天,小米公司宣布,雷军将于11月11日下午3点做客淘宝头条官方问答节目,和大家聊一聊新品手机小米Note2和全面屏概念手机小米MIX背后的“黑科技”。在活动中,雷军还将现场派送小米MIX的F码,拿到之后无需抢购即可入手小米MIX...2016-12-15
  • photoshop淘宝化妆品修图实例教程

    今天小编在这里就来给各位photoshop的这一款软件的使用者们来说一说淘宝化妆品修图的实例教程,各位想知道具体修图教程的使用者们,那么大家就快来跟着小编来看看教程吧...2016-09-14
  • C#如何通过匿名类直接使用访问JSON数据详解

    这篇文章主要给大家介绍了关于C#如何通过匿名类直接使用访问JSON数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。...2020-06-25
  • 解决无法加载php_oci8.dll的问题:

    后来考虑可能是系统path环境变量设置的问题,于是就参考安装了oracle的Winnt下的path变量值,发现W2K的path变量值中无“%driver%:oracleora81in;”(可能是操作系统不同造...2016-11-25
  • python淘宝准点秒杀抢单的实现示例

    为了想要抢到想要的商品,想了个用Python实现python淘宝准点秒杀抢单方案,需要的朋友们下面随着小编来一起学习学习吧...2021-05-14
  • Photoshop制作淘宝产品主背景图教程

    今天小编在这里就来给Photoshop的这一款软件的使用者们来说一说制作淘宝产品主背景图的教程,各位想知道具体方法的使用者们,那么大家就快来看看教程吧。 给各位Pho...2016-09-14
  • 解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法

    下面小编就为大家带来一篇解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-05-09
  • 使用淘宝ip地址库查ip的示例

    这篇文章主要介绍了使用淘宝ip地址库查ip的示例,需要的朋友可以参考下...2020-06-25
  • Photoshop制作淘宝宣传促销海报教程

    今天小编在这里就来给Photoshop的这一款软件的使用者们来说说制作淘宝宣传促销海报的教程,各位想知道具体制作方法的使用者们,那么下面就快来跟着小编一起看看吧。 ...2016-09-14
  • ASP.NET中实现把Json数据转换为ADO.NET DataSet对象

    这篇文章主要介绍了ASP.NET中实现把Json数据转换为ADO.NET DataSet对象,本文讲解设计及实现方法,相关代码托管到GITHUB,需要的朋友可以参考下...2021-09-22
  • php如何判断是否为json数据(格式)

    下面我来给各位朋友总结了几篇关于php如何判断是否为json数据的文章,这里整理了一下也能让你知道如何利用php判断json了,希望例子对你带来帮助。 首先要记住json_en...2016-11-25
  • 淘宝API返回的json数据无法用json_decode的问题

    本文章来给各位介绍我在使用淘宝 API 返回的json数据无法用json_decode的问题的一些解决办法介绍,大家可参考。 如题,这个问题困扰我已久。。。经过自己的多次尝试,...2016-11-25