标签归档:curl

几种程序报警通知的方式

线上的项目出现错误不能及时知道怎么办?不及时处理影响用户体验怎么办! 在error_handle 和exception_handle 方法里添加提醒方式。 有以下几种比较及时的方式: 1.短信接口。缺点是得浪费点钱。(不过一条就6分左右。这种费钱的报警必须注意控制频率。避免碰到访问量大时出现错误报警,持续狂刷,瞬间几千条短信耗完。可以借助memcache 几分钟报警一条。) 2.发邮件 + 微信开启邮件插件。 通知很及时! 3.qq机器人。 网上关于qq机器人的php版程序很多。主要是通过curl模拟了3g.qq.com的聊天过程。组织header,抓取响应的header 弄到sid,设置一些cookie,反正搞得跟3g.qq.com走网页一样就行了。curl_setopt 那个header选项设置为 true 便于能抓到header。 4.发送微信消息。 进微信公众平台 http://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm-login&lang=zh_CN 然后你就用firebug或者chrome开发者工具研究怎么模拟提交表单吧。你要是看看qq机器人的程序弄这个很容易的。 好像是要设置2个cookie mp_user=gh_xxxxxxxxxxxxxxx mp_sid=RjU3cUQ1UU1ZVkloYXhrZE5ETUJLSmM0Q2MxYmpqaVlvcGxadThLcTJwSGNWWnFGQWJmalNwbHNCbkRTR1dOMWk3X0xkSWFmNlBzME1RRmxaU0NPZVhmUWhSRlZNc1cxeFVNTEJVWUZKbkdzY2lMOFl0T3FxSnQ1aUJYMmppSHc   进去后再看看发送给某人消息怎么发的吧。就是后台这块发消息用的一个fakeId 。你在要给某个用户发消息时链接上可以看到。 用户管理: http://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&lang=zh_CN&pagesize=10&pageidx=0&type=0&groupid=100 给某个用户发消息: http://mp.weixin.qq.com/cgi-bin/singlemsgpage?fromfakeid=60890145&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN 提交 : 网络 – 保持一下。 http://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN post参数: ajax 1 … 继续阅读

发表在 工作总结 | 标签为 , , , , , | 留下评论

Tokyo Tyrant

网上的一些资料的整理:   TTserver参数设置详解:http://blog.163.com/chenxiaodong_2009/blog/static/129082330201022481421504/ 利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统:http://blog.s135.com/post/362/   ln -s /usr/local/tokyocabinet-1.4.47/lib/libtokyocabinet.so.9 /usr/local/lib/libtokyocabinet.so.9 tokyotyrant优点:1.用Tokyo Cabinet读写速度非常快,是Berkeley DB 等 DBM 的几倍。2.故障转移 (双机互为主辅模式)3.日志文件体积小4.任何Memcached客户端均可直接调用tokyotyrant。还可以通过HTTP方式调用 curl -X PUT http://192.168.0.249:1978/key -d "value"curl http://192.168.0.249:1978/keycurl -X DELETE http://192.168.0.249:1978/key 缺点:1.存进去的数据不到满了不会过期 2.当我们从中取数据时,会是一个序列化的字符串,没有自动反序列化处理3.32位操作系统 Tokyo Cabinet 数据库单个文件不能超过2G 启动:ttserver -host 192.168.0.249 -port 1978 -thnum 8 -dmn … 继续阅读

发表在 服务器端 | 标签为 , , | 留下评论

curl post 上传文件

可能图片不上传到本地,要扔到专门的图片服务器上(图片服务器不放php代码,打开ftp服务)。上传头像的在项目中不只是一个地方。 办法:提供一个接口process.php接收post过来的文件然后用ftp函数上传到图片服务器。 直接把form的action指向process.php?但是表单还有其他数据都扔过去干啥。用curl 把本地生成的文件post到接口,其他数据在本地文件该怎么处理怎么处理。curl post 跟form 表单post是一样的效果,但是传文件数据得让它知道是文件。区别在于在普通变量值前要加“@” //curl post 调用接口  接口做ftp操作 $path = $url.”/api_upload.php”;  $data = array(  ’file1′=>”@”.$big_file,//绝对路径  ’file2′=>”@”.$middle_file,  ’file3′=>”@”.$small_file,  ’username’=>$username ); $return = curl_post($path,$data); 下一步 api_upload.php 接收,跟form产生的一样,直接从$_FILES 里扣,然后用ftp函数上传。

发表在 Php | 标签为 , , | 留下评论

【转】使用php+curl向另外一个服务器上传文件

很好用,找了半天才找到的:http://www.phpx.com/happy/viewthread.php?tid=108894 $file = ‘file’; //要上传的文件 $url  = ‘url’;//target url $fields['f'] = ‘@’.$file; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url ); curl_setopt($ch, CURLOPT_POST, 1 ); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields ); curl_exec( $ch ); if ($error = curl_error($ch) ) {        die($error); } curl_close($ch); 这里说明一下CURLOPT_POSTFIELDS这个参数如果是POST字符串时,可以用形如“name=value&…”的字符串,如果post文件,就必须要用数组,并且文件名格式为"@绝对路径",这是 … 继续阅读

发表在 默认分类 | 标签为 , | 留下评论

php连接oracle的类

php连接oracle需要安装那个啥客户端,现在一般用oci8,linux好像还要编译产生oci8.so,最好把安装时的php压缩包tar.gz 或者tar.bz2留着,以后可能经常要编译扩展so文件,如curl.so等。 dbo_oracle.php: <?class dbo_oracle{ private $username = ‘dw’; private $password = ‘dw’; private $db = “(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=xx.xx.xx.xx)(PORT = 1522))(CONNECT_DATA =(SID=dw)))”; //公网ip通过1522映射到内部1521端口去了  private $conn; private $stid;  public function query( $sql ){  if( !$this->conn )   $this->connect();         $this->stid = oci_parse( $this->conn, $sql );   $res = oci_execute( $this->stid );   return $this->stid; }  public … 继续阅读

发表在 Oracle | 标签为 , , , | 留下评论

【转】Yii PHP 框架分析 (一)

Yii PHP 框架分析 (一)作者:wdy http://hi.baidu.com/delphiss/blog/item/f7da86d787adb72506088b4b.html 基于yii1.0.8的代码分析的。用了一个下午整理的,流水账,感兴趣的凑合着先看,国庆期间推出个整理修改版,然后再完成后两个部分(MVC和Yii的整体结构分析)。 1. 启动 网站的唯一入口程序 index.php : $yii=dirname(__FILE__).’/../framework/yii.php’;$config=dirname(__FILE__).’/protected/config/main.php’; // remove the following line when in production modedefined(‘YII_DEBUG’) or define(‘YII_DEBUG’,true); require_once($yii);Yii::createWebApplication($config)->run(); 上面的require_once($yii) 引用出了后面要用到的全局类Yii,Yii类是YiiBase类的完全继承: class Yii extends YiiBase{} 系统的全局访问都是通过Yii类(即YiiBase类)来实现的,Yii类的成员和方法都是static类型。 2. 类加载 Yii利用PHP5提供的spl库来完成类的自动加载。在YiiBase.php 文件结尾处 spl_autoload_register(array(‘YiiBase’,’autoload’)); 将YiiBase类的静态方法autoload 注册为类加载器。 PHP autoload … 继续阅读

发表在 Php | 标签为 , , | 留下评论

最近项目总结

项目最近涉及到 用curl调用远程接口,phpexcel导出xls文件,Linux下利用cron设置定时任务执行php文件做一些更新操作,Linux一些命令的熟悉,uchome数据库表和方法的一些深入了解,php连接远程Oracle数据库

发表在 心情随笔 | 标签为 , , , , | 留下评论

【转】Uchome 所用程序通用方法汇总

function_common.php 引用: //SQL ADDSLASHESfunction saddslashes($string) return $string; //取消HTML代码function shtmlspecialchars($string)   return $string; //字符串解密加密function authcode($string, $operation = ‘DECODE’, $key = ”, $expiry = 0) //清空cookiefunction clearcookie() //cookie设置function ssetcookie($var, $value, $life=0) //数据库连接function dbconnect() //获取在线IPfunction getonlineip($format=0) //判断当前用户登录状态function checkauth() //获取用户app列表function getuserapp($uid=0) //获取到表名function tname($name) //对话框function showmessage($msgkey, … 继续阅读

发表在 Uchome | 标签为 , , , , , | 留下评论