A、ThinkPHP CURD操作时条件判断where的不同写法
在早期查看ThinkPHP3.2的在线开发文档时发现所有的where()中判定的条件都是直接写入的,但是后期参与开发工作时发现where中的判定条件也可以使用数组array的形式来进行描述,array的使用对于多条件多数值的判断来说会大大的减少代码的编写量。
a、where中直接写入判定条件
$data = $User->where('status =1 AND name="thinkphp"' )->find();
b、where中使用array写入判定条件
$post = $postview->where(array('postinfo_type' => array('in',array(0,2))))->order('id desc')->select();
B、ThinkPHP 的 C()函数
在ThinkPHP的项目框架中的Conf目录下为配置目录,在开发过程中可先将事先定义好的array写入config.php,然后用C('XXXX')来直接调取数组。
a、获取参数
$userId = C('USER_ID') ;
$userType = C('USER_TYPE') ;
b、保存设置
$config['user_id'] = 1 ;
$config['user_type'] = 1 ;
C($config,'name') ;
C、ThinkPHP中使用CURL请求API响应
a、手动编写
$ch = curl_init();
$post_data =array(
"access_token"
=> $tokenn,
"channel_id"
=> $flag,
"price"
=> $price,
"category_id"
=> $part,
"post_image"
=> $photo,
"post_description" => $des,
"map_type" => 2,
"lat" => 40.024572,
"lon" => 116.300885
);
$header = array();
curl_setopt ( $ch , CURLOPT_URL, "http://121.43.xxx.xx/xxxxx/xxx/xxxxx" ) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$result = curl_exec($ch);
curl_close($ch);
b、但是手动编写实在是太麻烦了,个人感觉这些函数自己封装在一个类里,使用的时候直接实例化类然后传入参数即可,但是目前还没有自己封装过类,从度娘上拔一个下来先。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<?php class
my_curl { public
function
__construct() { !
extension_loaded
( 'curl'
) && exit
( 'CURL扩展未加载,程序终止运行'
); header
( 'Content-Type:
text/html; charset=utf-8'
); } public
function
go( $url ,
$vars
= '' )
{ $ch
= curl_init (); $array
[CURLOPT_URL] = $url ; $array
[CURLOPT_HEADER] = false; $array
[CURLOPT_RETURNTRANSFER] = true; $array
[CURLOPT_FOLLOWLOCATION] = true; if
(! empty
( $vars
)) { $postfields
= $this ->render_postfields
( $vars
); //生成urlcode的url $array
[CURLOPT_POST] = true; $array
[CURLOPT_POSTFIELDS] = $postfields ; } //判断是否有cookie,有的话直接使用 if
( $_COOKIE
[ 'cookie_jar' ]
|| is_file
( $_COOKIE
[ 'cookie_jar' ]
)) { $array
[CURLOPT_COOKIEFILE] = $_COOKIE
[ 'cookie_jar' ];
//这里判断cookie }
else
{ $cookie_jar
= tempnam ( '/tmp' ,
'cookie'
); //产生一个cookie文件 $array
[CURLOPT_COOKIEJAR] = $cookie_jar ;
//写入cookie信息 setcookie
( 'cookie_jar' ,
$cookie_jar
); //保存cookie路径 } curl_setopt_array
( $ch ,
$array
); //传入curl参数 $content
= curl_exec ( $ch
); //执行 curl_close
( $ch
); //关闭 return
$content ;
//返回 } protected
function
render_postfields( $vars )
{ foreach
( $vars
as
$key
=> $values
) { $postdata
.= urlencode ( $key
) . "="
. urlencode ( $values
) . "&" ; } return
$postdata ; } } ?>
|