都是说php编码是个坑,果然不假。今天没事,研究微信公众号开发,在查询天气这个功能上,我看好了新浪和阿凡达的这两个api(在这里强烈推荐一下 阿凡达 网站的api,多而全,还有很多都免费的)。

好了,废话不多说了,坑在哪儿?主要是urlencode()上,因为很多时候发送http请求需要携带中文参数,这几涉及到了url编码的问题!这个函数就是其实主要就是把中文参数转成十六进制,然后填写到url中。

直接说问题:如果源字符串的编码编码方式不同,那用urlencode()转完的结果也不同。如下:

$src1 =' 北京'(utf-8)

echo urlencode($src); //结果:%E5%8C%97%E4%BA%AC

$src2 =' 北京'(gb2312)

echo urlencode($src2);//结果%B1%B1%BE%A9

新浪的api需要gb2313的,阿凡达的需要utf-8的,连个都没有说明,因为的IDE默认是utf-8的,新浪的死活不成功,突然想到这个问题,试了下,果然!(白白浪费了我2个小时)

PS:要注意,要把utf-8的编码转成gb2132的,要$content = iconv("utf-8","gb2312//IGNORE","北京");这样,否则会出错

这是调用阿凡达的天气api代码,不谢

$ch = curl_init();
$this_header = array(
    "content-type: application/x-www-form-urlencoded;
 charset=UTF-8"
);

curl_setopt($ch,CURLOPT_HTTPHEADER,$this_header);

//$content = iconv("utf-8","gb2312//IGNORE","北京");
//echo $content;
//$url = "http://php.weather.sina.com.cn/xml.php?city=".urlencode($content)."&password=DJOYnieT8234jlsK&day=0";
$url = "http://api.avatardata.cn/Weather/Query?key=“你申请的key”&cityname=".urlencode("北京");
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$outPut = curl_exec($ch);
curl_close($ch);
var_dump($outPut);

php编码小坑之调用新浪天气api和阿凡达天气api相关推荐

  1. 用WebService实现调用新浪的天气预报功能

    用WebService实现调用新浪的天气预报功能 用WebService实现天气预报的查询 这是获取天气Web服务代码,转自书上. 1.请在网站根目录下添加一个"Web服务",命名 ...

  2. 关于调用新浪支付接口

    最近公司要做一个新浪支付接口的应用. 首先你得确认已成功申请到应用appkey 及appSecret. 要想调用新浪的支付接口还得申请一个支付key.这些都准备完毕了.接下来调用新浪官方的接口 接口一 ...

  3. api.php t.cn,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解

    本文实例讲述了PHP通过调用新浪API生成t.cn格式短网址链接的方法.分享给大家供大家参考,具体如下: 新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接. A ...

  4. php新浪api,php调用新浪短链接API的方法,php调用新浪api_PHP教程

    php调用新浪短链接API的方法,php调用新浪api 本文实例讲述了php调用新浪短链接API的方法.分享给大家供大家参考.具体方法如下: 复制代码 代码如下: //Sina App_Key def ...

  5. 新浪短链api java_php调用新浪短链接API的方法

    本文实例讲述了php调用新浪短链接API的方法.分享给大家供大家参考.具体方法如下: //Sina App_Key define('SINA_APPKEY', '31641035'); functio ...

  6. php短链接api,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解

    本文实例讲述了PHP通过调用新浪API生成t.cn格式短网址链接的方法.分享给大家供大家参考,具体如下: 新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接. A ...

  7. php查询ip归属地api接口_php调用新浪接口查询ip获取地理位置(ip归属地查询)

    php调用新浪接口查询ip获取地理位置(ip归属地查询) 发布于 2014-11-17 08:35:58 | 115 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: ...

  8. php调用新浪短链接API转短链接

    调用新浪短链api,长链接可转为http://t.cn/RX7mLZh这种t.cn短链,同时可转回原链接! //新浪的App_Key const SINAAPPKEY = '291**161014'; ...

  9. Linux上的服务器无法调用新浪邮箱发送邮件

    问题背景: 在web网站开发中,有许多功能的实现需要发送邮件,比如用户的密码找回功能,可能就需要通过服务器向用户的注册邮箱发送验证码邮件来实现.而发送邮件功能可以通过很多方式实现,比如HTML中的ma ...

  10. PHP调用新浪API 生成短链接

    我们经常收到类似于这样的短信(如下图),发现其中的链接并不是常规的网址链接,而是个短小精悍的短链接,产品中经常需要这样的需求,如果在给用户下发的短信中是一个很长的连接,用户体验肯定很差,因此我们需要实 ...

最新文章

  1. 开源模式反击之后,白嫖服务商竟然大叫“你不讲武德!”
  2. python语言百分号的含义_python【百分号】
  3. TCP的困境与解决方案
  4. c语言经典算法——查找一个整数数组中第二大数
  5. 深搜DFS\广搜BFS 图初步入门
  6. 14位顶级哲学家对生命的经典感悟!若能领悟受益终生!
  7. 共享单车当废铁卖 ofo回应:已达报废年限
  8. sqlite的交叉编译及移植 -转
  9. 平均聚类系数_聚类方法排除CPU用量误报警
  10. 关于Oracle表访问方式的总结
  11. 正交匹配追踪算法(OMP)
  12. 单径瑞利信道的BPSK相干解调的理论误码率推导与MATLAB分析(1)
  13. 游戏模型提取_腾讯手Q游戏中心的个性化推荐实战
  14. 极客星球 | Unity3D插件模板化探索
  15. openssl密码套件详解
  16. 微信支付-----扫码支付,统一下单
  17. Python爬虫学习简单入门(第四含scrapy安装)
  18. Oracle 日志解析ogg,对一段OracleGoldenGate(OGG)传输进程日志(.rpt文件)的解释
  19. 批量自定义裁剪多张图片,可以按固定像素值或比例批量裁剪图片
  20. bailian.openjudge 2712:细菌繁殖

热门文章

  1. 数据库表,excel,cvs 联系人转vcf
  2. 自定义异常 extends Exception
  3. python中chr()和ord()函数的用法
  4. Apache shiro 官方API (中文版)(承蒙大佬们看重 小弟整理了下 无需积分 编辑的不好 希望帮到你们)
  5. 打开应用商店显示服务器出错了,Win10应用商店提示“我们这边出错了”的三种解决方法...
  6. delphi显示jpg、png、gif图片
  7. 服务器配置高点网站打开速度,网站打开速度慢,你必须要解决的事?
  8. Python绘制用于学术论文投稿的黑白图片
  9. 详细讲解电脑怎么录屏 电脑录制视频的方法
  10. 一篇小文入门 Python