今天拿到一款很“高端”的手表--GENIUS,看人家堂而皇之的在凤凰新闻客户端上打的广告,从做过精良的图片和刀划水淹的gif,你肯定联想不到这其实只是地摊上卖十几块钱的甩货! 今天有幸亲自见识到了从凤凰到野鸡的变化,举图做个留念,商家能将广告做到ifeng,也不知道花了多大的力气。今天到凤凰客户端上去看了看,广告还在头条栏里,标明原价2000多现在每块只要99(好大便宜啊..),能防水和防划,貌似 […]
作者: mowblog
php curl
看了一晚上的php基础,然后通过google的帮助用php curl成功调用了EMS的 Web Service接口,保存几个基本的function,或许以后还能用到:
|
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# 截取字符串中两个指定标记之间的内容,如果截取的内容还有空格,可以使用ltrim()和rtrim()分别提出左右空格 function str_between($src, $mark1, $mark2) { $index1=strpos($src, $mark1); $index2=strpos($src, $mark2); if(!$index1 || !$index2) return "error"; else{ $index1 += strlen($mark1); return substr($src, $index1, $index2-$index1); } } # post数据,header根据自己的要post的网站要求填写,cookie设置也有好处;注释掉的内容是为了测试 function php_curl_post($url, $postdata) { $c_post=curl_init(); $header = array('Content-Type: text/plain; charset=UTF-8'); curl_setopt($c_post, CURLOPT_URL, $url); curl_setopt($c_post, CURLOPT_RETURNTRANSFER,true); curl_setopt($c_post, CURLOPT_POST,true); curl_setopt($c_post, CURLOPT_HTTPHEADER, $header); curl_setopt($c_post, CURLOPT_POSTFIELDS, $postdata); #curl_setopt($c_post, CURLOPT_BINARYTRANSFER, true); //set cookie curl_setopt($c_post, CURLOPT_COOKIEJAR, 'c:\www\cookie.txt'); curl_setopt($c_post, CURLOPT_COOKIEFILE, 'c:\www\cookie.txt'); // /* $std_out=fopen('c:\www\stdout.txt','a+'); $std_err=fopen('c:\www\stderr.txt','a+'); curl_setopt($c_post, CURLOPT_FILE, $std_out); curl_setopt($c_post, CURLOPT_STDERR, $std_err); curl_setopt($c_post, CURLOPT_VERBOSE,true); */ $result = curl_exec($c_post); curl_close($c_post); /* fclose($std_out); fclose($std_err); */ return $result; } # PUT数据,因为EMS特殊原因,将header和body分开保存到array中,便于提取header和body里面各自所需的内容 function php_curl_put($url, $putdata) { $c_put=curl_init(); $header = array('Content-Type: text/plain; charset=UTF-8'); curl_setopt($c_put, CURLOPT_URL, $url); curl_setopt($c_put, CURLOPT_RETURNTRANSFER,true); curl_setopt($c_put, CURLOPT_HTTPHEADER, $header); curl_setopt($c_put, CURLOPT_POSTFIELDS, $putdata); curl_setopt($c_put, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($c_put, CURLOPT_HEADER, true); //curl_setopt($c_put, CURLINFO_HEADER_OUT, true); //curl_setopt($c_put, CURLOPT_FOLLOWLOCATION, true); //set cookie curl_setopt($c_put, CURLOPT_COOKIEJAR, 'c:\www\cookie.txt'); curl_setopt($c_put, CURLOPT_COOKIEFILE, 'c:\www\cookie.txt'); // /* $std_out=fopen('c:\www\stdout.txt','a+'); $std_err=fopen('c:\www\stderr.txt','a+'); curl_setopt($c_put, CURLOPT_FILE, $std_out); curl_setopt($c_put, CURLOPT_STDERR, $std_err); curl_setopt($c_put, CURLOPT_VERBOSE,true); */ $result = curl_exec($c_put); $headerSize = curl_getinfo($c_put, CURLINFO_HEADER_SIZE); $header = substr($result, 0 , $headerSize); $body = substr($result, $headerSize); $ret = array('header'=>$header,'body'=>$body); curl_close($c_put); /* fclose($std_out); fclose($std_err); */ return $ret; } # GET数据,没有特殊的地方 function php_curl_get($url) { $c_get=curl_init(); $header = array('Content-Type: text/plain; charset=UTF-8'); curl_setopt($c_get, CURLOPT_URL, $url); #curl_setopt($c_get, CURLOPT_BINARYTRANSFER, true); curl_setopt($c_get, CURLOPT_RETURNTRANSFER,1); curl_setopt($c_get, CURLOPT_HTTPGET,true); //set cookie curl_setopt($c_get, CURLOPT_COOKIEJAR, 'c:\www\cookie.txt'); curl_setopt($c_get, CURLOPT_COOKIEFILE, 'c:\www\cookie.txt'); $result = curl_exec($c_get); curl_close($c_get); return $result; } |
这里没有delete的函数,根据资料,只需改动CURLOPT_CUSTOMREQUEST为"DELETE"一个地方就可以实现delete的功能,所以也没有再写下去 c […]
转载:程序bug导致了天大的损失,要枪毙程序猿吗?
原文地址(http://kb.cnblogs.com/page/541805/),写的太好了,行文流畅而又不失DB精神,配图也是绝了,转载如此,兴趣君请直接访问原文。
cpulimit
今天测试Pi下面CPU占用率不等的情况下P产品的运行耗时时,发现一款好用的软件--cpulimit,地址: https://github.com/opsengine/cpulimit 。通过它可以给运行程序指定一CPU利用率,很有用。虽然模拟的方式有些弱(测试P产品的运行耗时突变很大,不平滑),但是换一种方式操作,比如通过运行其他的程序占用指定的70%CPU资源(RaspBerryPi 2 Mod […]
RaspBerryPi 3代
2016.2 Raspberry Pi发布了最新的3代产品,升级了CPU并增加了无线和蓝牙功能,但是价格并没有提高多少(淘宝价250多),是越来越强大了: A 1.2GHz 64-bit quad-core ARMv8 CPU 802.11n Wireless LAN Bluetooth 4.1 Bluetooth Low Energy (BLE) 鉴于树莓派如此流行,WD专门为树莓派推出了一款名 […]
OpenStack安装2
水很深 前几天测试了一下devstack的安装,一切按照默认最简的方式进行,虽然最后也成功启动了,但是关键的Network一项竟然没有包含,这次重新来过,改用Ubuntu 14.04 Minimal CD安装系统,为了兼容公司和家里两个不同的网络环境,改用VirtualBox的Net Network模式来分配IP地址,如下配置VirtualBox的Net Network设置: 将Network C […]
DevStack安装
扫盲了OpenStack,依官方的推荐,使用DevStack速成一个OpenStack试试。计算机界不缺牛人,大神们提供的方法,基本上就是一键安装,几乎不用任何配置,具体方法可以参考openstack.org给出的步骤(官方链接),没有多余可以补充的地方,此次只记录一下安装过程,对于类似偶这样刚入门的三不懂,还是很有帮助的: 首先按照官方说明安装Linux操作系统,自然是选择官方推荐的那几款。本次 […]
Deploying OpenStack
云计算很火。 昨天乘兴读完了Ken Pepple的Deploying OpenStack,终于扫盲了什么叫做OpenStack。书中概要的介绍了OpenStack的基本组成Nova,Swift,Glance和每个部分的主要功能,然后基于这三项内容分别描述了它们的安装和基本的管理操作,对于我这样的newbie确实是一本好书,最主要的是整个章节全部加起来才总共68页的内容,不用被各种长篇吓到了。粗鄙的 […]