推荐阅读

PHP学习之 PHP中使用curl实现Get和Post请求的方法

1.curl介绍curl是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持curl库。本文将介绍curl的一些高级特性,以及在PHP中如何运用它。2.基本结构在学习更为复杂的功能之前,先来看一下在PHP中建立curl请求的基本步骤: (1)初始化curl_init() (2)设置变量curl_setopt()最为重要,一切玄妙均在此。有一长串curl参数可供设置,它们能指定URL请求的各个细节。要一次性全部

更新时间: 2017-12-25 15:05:08 0

为速度而生的LARAVEL框架---LUMEN(二)-路由与中间件

上一节讲到Lumen的安装以及部署相信大家已经对Lumen有初步的印象,这一节就讲讲路由与中间件Http路由你可以在app/Http/routes.php文件中定义应用程序的大多数路由。最基本的Lumen路由仅接受URI和一个闭包:Route::get('/test',function(){return'HelloWorld';});这里还可以定义所有的http响应:Route::get($uri,$callback);Route::post($uri,$callback);Route::put

更新时间: 2017-12-25 11:32:02 0

程序员自我修炼(三) - 源码阅读

作为程序员,每天都爻和代码打交道。经过数年的基础教育和职业修炼,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这种怪状,真要追究起来,怪不得程序员这个群体本身——它是两个原因造成的:我们所有的教育和学习大部分都在强调怎么写代码,并没有教大家如何读代码。大多数工作场景都是一个萝卜一个坑,我们只需要了解一个系统的局部便能开展工作,读不相干的代码,似乎没用。我常常把写代码和写作进行类比,因为二者有很多相通之处。但从培养

更新时间: 2017-12-25 11:30:14 0

Swoole入门(7) ☞子进程创建

这一篇主要实现子进程的创建和使用<?phpclassBaseProcess{private$process;//process对象publicfunction__construct(){$this->process=newswoole_process(array($this,'run'),false,true);$this->process->start();}publicfunctionrun($worker){$worker->name("swoole_proc

更新时间: 2017-12-25 11:28:37 0

Swoole入门(6)☞理解同步&异步、阻塞&非阻塞、进程间通信

如何理解程序中的同步/异步?同步当一个程序发起调用的时候,在程序没有处理完成返回结果时,调用方会一直等待,等待结果的返回。异步当一个程序发起调用的时候,程序立即返回调用成功的消息,但不会马上返回结果,而是需要通过回调的方式把返回结果返回给调用方。同步/异步实例:举个生活中的例子,当快递员跟我说你有一份快递,麻烦到楼下取件,但是我还没这么快到,我接到电话之后就一直在楼下等快递,这就是同步。如果我接到电话的时候,跟他说你到楼下的时候再给我一个电话,我再下楼去拿,这就是异步,快递员第二次打电话给我的过

更新时间: 2017-12-25 11:27:20 0

osd处理网络请求的过程——定时器

回顾:前两篇大概分析了osd的基本启动流程,对其有了一个初步了解,然后又部署了inkscope,以便能形象地监控ceph集群的状态。接下来开始深入了解osd内部的动作,先从osd类开始。首先看它的定时器部分。Osd定时器分析:Osd有一些定时任务如定时触发heartbeat,定时器是必不可少的。Osd有4个定时器用于不同的场景,他们都是SafeTimer的实例。SafeTimer的结构比较简单,如下图:主要由SafeTimer和它的友员类SafeTimerThread构成。SafeTimerTh

更新时间: 2017-12-25 11:04:17 0

Osd启动过程

回顾:上一篇讲到学习一下c++lambada相关的知识。接下来学习osd基本的启动流程。 Osd基本启动过程:程序入口:src/ceph_osd.ccmain(),通过查询正在运行的osd得知启动命令如下:/usr/bin/ceph-osd--cluster=ceph-i0-f--setuserceph--setgroupceph开始进入main函数1、argv_to_vec(argc,argv,args);把以空格分割后的命令行参数“--cluster=ceph-i0-f--setu

更新时间: 2017-12-25 11:00:00 0

c++11中的using关键字

刚进入ceph源码感觉很多怪怪的语法:像上图的bufferlist不是一个类,它的其实是ceph::list类,如下图:那为什么能直接用bufferlist实例化对象呢,经过一番搜索,原来在ceph/src/include/buffer_fwd.h里有这么一个using,如下图:这是c++11的新玩法,using具有像typedf的功能,看下面的测试代码:  #include"iostream" usingnamespacestd;namespacelkx{name

更新时间: 2017-12-25 10:57:20 0

C++11 左值、右值与右值引用

回顾:上一篇讲到ceph使用c++11标准,为深入了解ceph的工作流程打下基础,先要掌握一些必要的c++11新特性,上篇说到了using的新功能(类似typedef的功能)。接下来学习一下移到构造相关的知识。 问题:上图为bufferlist::read_fd的实现,此方法是从文件中读一定长度的内容,上图中的move是什么意思呢? 解释:在C++11中,标准库在<utility>中提供了一个有用的函数std::move,这个函数的名字具有迷惑性,因为实际上std

更新时间: 2017-12-25 10:38:25 0

算法备忘录之一 -- 快速排序

前言相信很多搞计算机的朋友都听说过一句话:程序=数据结构+算法自己的一些体会是,其实出来工作之后,很少会用到太复杂的算法,基本上都是业务逻辑的编写为主。退一万步来讲,即使有用到,也有相应的工具库帮你实现好,非常方便^_^。所以,算法这些东西,通常是学了又忘,忘了又学。算法虽然不会用到,或者说,不用自己实现。但是了解其原理,还是对我们解决问题有帮助,也是编程能力的一种素养吧。快速排序思路开篇,先来一发狠的,说说快速排序。这个是各种排序算法当中,比较常用的吧。看名字就知道它很牛?快速排序,意思就是它

更新时间: 2017-12-25 10:35:45 0

微信关注

获取更多技术咨询