Loading

邢栋博客

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...

linux中awk命令的简单介绍和使用

1.字段以:分隔,打印第一列 awk -F":" '{print $1}' /etc/passwd 2.字段以:分隔,打印第一列和第三列 awk -F":" '{print $1 $3}' /etc/passwd awk -F":" '{print $1":"$3}' /etc/passwd 3.文件形式的执行 vim test.awk 写入 BEGIN {FS=":"} {print $1} awk -f test.awk /etc/passwd 4.普...

linux中sed命令的几个简单事例

删除文件中1-10行的数据 sed -e '1,10d' ./myfile.txt 删除文件中以#开头的行,即删除注释 sed -e '/^#/d' ./myfile.txt 将每行第一次出现的xingdong替换成action sed -e 's/xingdong/action/' ./myfile.txt 将每行所有的xingdong替换成action sed -e 's/xingdong/actio/g' ./myfile.txt 把结果存储到文件 sed -e 's/xingdong/actio/g' ./myfile.txt > ./ne...

关于shell函数的简单总结说明

shell函数说明 1.函数调用时,脚本的位置函数($* $@ $# $1...)会被替换为函数的参数,函数执行完毕后,会恢复原值 2.函数中的变量默认为全局作用域,除非使用local关键字定义 3.通过return 命令可以让函数返回数字值,常用于表示函数执行是否成功。如果返回字符串值,则需要在函数中使用echo,然后再在函数外使用$()捕获;或者将字符串存在一个变量中,函数执行完毕后读取该变量 4.如果函数中没有使用 return 指定返回值,则函数返回值为最后一条命令的退出码($?捕获返回值) 5.简单事例 #!/bin/bash foo() { ...

php之XMLReader简单事例

新建xml.xml <?xml version="1.0" encoding="utf-8"?> <shows> <show> <name>action</name> <age>18</age> <sex>男</sex> </show> <show> <name>yiyi</name> ...

文本文件和二进制文件相关以及php操作二进制文件

文本文件和二进制文件有什么不同 1.文本文件是基于字符编码的文件 2.除了文本文件以外的文件成为二进制文件 3.二进制文件编码是变长的,灵活利用率高 4.两者读写差别仅体现在回车换行符的处理上 5.文本文件是一种特殊的二进制文件 php写入和读取二进制文件 简单事例 //写入方式1 // $fh = fopen('my.db','w'); // $name = pack('A20','zsf');//长度不足20会以空格补充 // $age = pack('S',1); // $email = pack('a20','xingdong365@qq.co...

php的几个人坑人小题

<?php //----example 1 $a = 3; $b =5; if($a = 5 || $b = 7){ ++$a; $b++; } echo $a,'--'.$b,"<br>"; //输出结果 为 1--6 //说明 // $a = 5 || $b =7 ,执行逻辑为 $a = (5||$b=7),$a = true,布尔型值++ 一直为1 //----example 2 $count = 5; f...

PHP trait 学习笔记

自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait。 Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。 Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能。 无法通过 trait 自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用的几个 Class 之间不需要...