php的IteratorAggregate简单事例
<?php //IteratorAggregate Generators //事例(一) class Language implements IteratorAggregate{ private $names; public function __construct(){ $this->names = explode(',','PHP,JS,JAVA,GO'); } public function getIterator(){ ...
数据结构以及常用数据结构的定义
数据:描述客观事物的符号,如文本、图片、视频 数据元素:组成数据的,有一定意义的基本单位 数据项:一个数据元素可以由若干个数据项组成 数据对象:性质相同的数据元素的组合 数据结构:数据结构是计算机用来组织和存储数据的方式。具体定义:数据结构是指相互之间存在着一种或者多种关系的数据元素的集合和该集合中数据元素的关系组成 数据结构 逻辑结构 1.线性结构 (线性表、栈、队、串、数组) 2.非线性结构 树结构和图结构 物理(存储)结构 1.顺序结构 2.链式结构 3.索引结构 4.散列结构 数据运算 1.插入运算 2.删除运算 3.修改运算 4.查找运算 5...
php实现单链表
<?php class node{ //初始化变量,包括存储的内容和下一个数据的指针 public $id = 0; public $data = ''; public $next = null; //构造函数,设置存储内容的数据 public function __construct($id,$nodedata){ $this->id = $id; $this->data = $nod...
php使用mongo的GridFS存储文件
<?php //php使用mongo的GridFS存储文件 $conn = new MongoClient(); $db = $conn->photos; $collection = $db->getGridFS(); //存储文件 $id = $collection->storeFile('./logo22.png'); //存储文件二进制流 // $data = file_get_contents('./logo22.png'); // $id = $co...
回顾mongo索引
测试索引 新建50万条数据 for(var i=0;i<500000;i++){db.myusers.insert({"i":i,"username":"user"+i,"age":Math.floor(Math.random()*120),"created":new Date()});} db.myusers.find({username:"user111"}).explain(true) { ............ "executionStats" : { "executionSuccess" : true, "nRetur...
温习memcache
memcached 启动参数 memcached -m 64 -vv -d 守护进程 -p 指定端口号 默认 11211 -m 指定最大使用内存大小 默认 64m -t 线程数 默认4 -l 连接的ip地址 ,默认是本机 -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数 默认 1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags 默认是48 -vv 详细信息 还打印客户端命令/响应 -I 重写每个数据页尺寸。调整数据项最大尺寸 -R 通过限制某个连接可以连接提交的命令数,以避免其他连接等待时间过久...
http的request和response介绍
http request 1.request line GET /dir/1.html HTTP/1.1 请求方法 资源位置 协议版本 2.HTTP HEADERS 通用header 请求header 实体 header 3.Content request method HTTP/1.1规范中的8个请求方法 1.GET url长度有限制 2.POST 3.HEAD 4.PUT //201 5.DELETE 6.TRACE 7.OPTIONS 8.CONNECT request headers Accept: text/htm...
php实现http401授权
<?php //unset($_SERVER['PHP_AUTH_DIGEST']); $username = 'xingdong'; //用户名 $userpass = '123456'; //面膜 $secret = 'xingdong365'; //秘钥 $realm = '401test'; $opaque = md5($secret.$_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']); if (!isset($_SERVER['PHP_AUTH_DIGEST']) || emp...
SELECT和EPOLL模式
SELECT和EPOLL模式 select模式 1.应用层首先初始化FD_SET(填入需要检测的socket集合),然后调用select函数 2.内核对FD_SET包含的所有socket进行了逐个检测,如果某个socket有状态发生,则填入内容分配一个数组,当所有socket都检查完成后,再将该数组copy到FD_SET中,然后返回应用层 3.select调用返回,应用层从返回的FD_SET中提取有状态发生的socket,并根据socket值映射客户端上下文(可以通过map或hash_map实现映射),然后处理收到的数据 epoll模式 1.应用层调用 ...
php代码执行过程简述
php代码的执行过程 扫描->解析->编译->执行->输出 1.扫描(scanning) 将index.php内容变成一个个语言片段(token) <?php $code =<<<'PHP_CODE' <?php //这是注释 echo "hello world\n"; $data = 1+1; eval("echo 'Inception lvl 1...\n';"); echo $data; PHP_CODE; echo "<pre>"; print_r(token_get_all($c...