php taobao api开发入门篇

 更新时间:2016年11月25日 17:40  点击:2070

看到taobao api挺有意思的,顺便学习php教程

http://open.taobao.com/

看了下api的调用方式,就是拼装url然后发送http请求,与服务器进行交互

具体原理看这里:http://open.taobao.com/dev/index.php/快速上手指南

 

看看官方demo,分使用与不使用sdk两种,本人不喜欢sdk,看不到后台实现的机制

看一下php不使用sdk的代码:http://open.taobao.com/dev/index.php/php%e8%b0%83%e7%94%a8%e7%a4%ba%e4%be%8b%e4%bb%a3%e7%a0%81

 

util.php

里面有两个函数,一个生成md5签名的,一个组装url的

然后根据参数调用这两个函数,发送http请求,处理返回结果

 

原理大概弄懂了,复制粘贴运行一下吧

粘好代码,运行。。。http 500错误。。。

 

这可为难了,我php也是初学啊,硬着头皮找错误吧

1. util.php中两个函数的这句:if ($key != ' ' && $val != ' ') 少了其中的引号

2. 主文件这句注释://沙箱环境调用地址 前面的空格有问题,删掉就可以了

。。。这官方demo也太搞笑了吧

 

终于能运行了,返回一堆乱七八糟的东西,跟api工具返回的完全不一样啊

http://my.open.taobao.com/apitools/apitools.htm

这里我们可以修改它的登录模式为http。这样,只要浏览器不关闭就可以继续使用。
以ubuntu环境,通过apt-get方式安装的php教程myadmin为例。
文档位置在 /etc/phpmyadmin/config.inc.php
如下修改文档:
代码如下:

if (!empty($dbname)) {
/* authentication type */
// $cfg['servers'][$i]['auth_type'] = 'cookie';
//重新设定登录模式
$cfg['servers'][$i]['auth_type'] = 'http';

ps教程:其实网上很多地方都有提到,改为http模式就可以了,但为什么我一直没成功呢?因为 phpmyadmin 有3个config.inc.php文档,而我一直以来都只是修改了phpmyadmin文件夹下的文档。正确的文档在/etc/phpmyadmin/config.inc.php

程序中添加时间的初始化语句:“date_default_timezone_set("asia/shanghai");

定义和用法

the date_default_timezone_set() function sets the default timezone used by all date/time functions.
date_default_timezone_set()函数的作用是:设定用于一个脚本中所有日期时间函数的默认时区。

syntax
语法

date_default_timezone_set(timezone)

parameter
参数
description
描述
timezone required. the timezone identifier, like "utc" or "europe/paris". list of valid timezones: http://www.php教程.net/manual/en/timezones.php
必要参数,时区确认器,如“utc”或“europe/paris”。下面列出了有效的时区:http://www.php.net/manual/en/timezones.php


tips教程 and notes
注意点

note: this function always returns true (even if the timezone parameter isn't valid).
注意:这个函数总是返回true(即使时区参数无效的情况下)。


example
案例

<?phpecho(date_default_timezone_set("europe/paris"));?>

the output of the code above will be:
上述代码将输出下面的结果:

thinkphp教程在控制器里的网页特效代码不能执行解决方法
就拿“退出”这一项来说吧。
我的“退出系统”链接是写到左边的框架里的,用js动态生成的。也就是说,没法通过链接里的target来指定。

view sourceprint?1 $this->assign('jumpurl',__url__.'/login');<br>$this->success("注销成功!");<br>

这样写的话,要跳转的页面就显示在了右框架里了。
把js代码写到url里面不行。
我把这两行代码注释掉了。直接用


view sourceprint?1 echo "<script>window.top.location.href='$url';</script>";


这样也不行,一方面url里面没法用__app__这些常量。另一方面,最后执行出来的结果是竟是把<script>标签去掉,剩下的直接输出!(window.top.location.href='index/login';)
我查了action类里的success函数,没有找到相关的参数。

 

星期天在朋友那吃饭的时候,突然想到一个问题,tp里的标签都是以尖括号(<>)来包含的,我在控制器里写的<script>是不是被当作标签给解析了呢?于是我就重新写了第二段代码:


view sourceprint?1 echo '<literal><script>alert("退出成功");top.location.href="login";</script></literal>';

这样就行了。

经过我的测试表单textarea换行符,在windows下是rn,在linux才是n(这个没实

测),另外,在win下,r,n均有换行的功能

表格 6-1. 转义字符

序列
含义

n
换行(lf 或 ascii 字符 0×0a(10))

r
回车(cr 或 ascii 字符 0×0d(13))

t
水平制表符(ht 或 ascii 字符 0×09(9))


反斜线

$
美元符号


双引号

[0-7]{1,3}
此正则表达式序列匹配一个用八进制符号表示的字符

x[0-9a-fa-f]{1,2}
此正则表达式序列匹配一个用十六进制符号表示的字符


总结:很多朋友都说在textarea换行代码n都是这样str_replace(“n”,”<br

/>”),殊不知其实这种不是window标准换行,我们应该改成str_replace

("nr","<br />")这样就ko了。

[!--infotagslink--]

相关文章

  • 轻松学习C#的基础入门

    轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
  • photoshop画斜线/直线/虚线的入门级教程

    这篇文章算是超级入门级别的了,我们下面来给各位介绍在photoshop画斜线/直线/虚线的教程了,希望下面这篇文章给你入门来帮助。 PS怎么画斜线 选择铅笔工具,或者画笔...2016-09-14
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • vscode搭建STM32开发环境的详细过程

    这篇文章主要介绍了vscode搭建STM32开发环境的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-02
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • 安卓开发之Intent传递Object与List教程

    下面我们一起来看一篇关于 安卓开发之Intent传递Object与List的例子,希望这个例子能够为各位同学带来帮助。 Intent 不仅可以传单个的值,也可以传对象与数据集合...2016-09-20
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • 20分钟MySQL基础入门

    这篇文章主要为大家分享了20分钟MySQL基础入门教程,快速掌握MySQL基础知识,真正了解MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-12-02
  • 微信开发生成带参数的二维码的讲解

    在微信公众号平台开发者那里,在“账号管理”那里,有一项功能是“生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微...2016-05-19
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • 如何设计一个安全的API接口详解

    在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • react hooks入门详细教程

    这篇文章主要介绍了react hooks入门详细教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-06
  • PHP如何使用cURL实现Get和Post请求

    这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11