随笔分类 - PHP
网站语言
摘要:park,unpark,ord这3个函数,在我们工作中,用到它们的估计不多。 我在最近一个工作中,因为通讯需要用到二进制流,然后接口用php接收。当时在处理时候,查阅不少资料。因为它们使用确实比较少,也很少朋友工作中会用到 它们。 在工作中,我也逐渐了解到park,unpark,ord对于二进制字节处理的强大。 下面我逐一介绍它们。park,unpark,ord函数使用介绍 park函数说明:本函数用来将资料压缩打包到位的字符串之中。语法:pack(format,args+)参数描述format必需。规定在包装数据时所使用的格式。args+可选。规定被包装的一个或多个参数。字符说明a将字符串空
阅读全文
摘要:在做web应用时候,通过web扩展名判断上存文件类型,这个是我们常使用的。有时候我们这样做还不完善。可能有些人上存一些文件,但是他通过修改 扩展名,让在我们的文件类型之内。 单实际访问时候又不能展示(因为扩展名与文件内容不符)。下面这个php类,可能能够给我们带来帮助。注意: 当然首先要对上传的文件进行第一步的简单检测,如文件大小,后缀格式,名字乱码限制等;然后才是后面一步对内容的检测。一、php检测类首先说明下,上面文件头与文件类型映射关系来自网上,如果你有新的文件需要检查,只需要将映射加入即可。 如果你需要知道文件头信息,可以通过工具:winhex打开标准文件查找。如:代码: 1 http
阅读全文
摘要:1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。 2. Accept-Charset: 浏览器申明自己接收的字符集 Accept-Encoding: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate) Accept-Language::浏览器申明自己接收的语言语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等。 3. Accept-Ranges:WEB服务器表明自己是否接受获取其某个实体的一部分...
阅读全文
摘要:首先导入类库:require_once 'PHPExcel.php'; require_once 'PHPExcel\IOFactory.php'; require_once 'PHPExcel\Reader\Excel5.php';然后创建读取对象$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format $objPHPExcel = $objReader->load($uploadfile);//加载读取的
阅读全文
摘要:Win下apache出现问题:“No services installed”安装完apache之后(不是按照默认路径安装的,我的是 D:\ )右下方那个小羽毛图标是没有启动的,左键不好使,而且提示“No services installed”,提示服务器没有被安装。解决办法是:我的安装路径是:D:\Program Files\ApacheSoftware Foundation\Apache2.21、打开cmd定位到:D:\Program Files\ApacheSoftware Foundation\Apache2.2\bin,bin 目录 有个apache.exe 文件2、键入: httpd
阅读全文
摘要:首先还是下载 nginx:http://nginx.org/en/download.html php:http://windows.php.net/download/ mysql:http://dev.mysql.com/downloads/ nginx 选择zip的压缩包,如果你下了gz的压缩包你会发现你找不到一个能执行的东西,gz对应的linux系统的版本,需要编译后才能安装的 对路径要求比较严格的只有nginx,因为这东西最开始就是为了linux下部署用的 mysql这个数据库比较简易,随便下载一个exe的就可以下一步下一步的安装了,这里我用的是很久以前下的一个版本 mysql-noin
阅读全文
摘要:配置文件中://Oracle 测试环境 'DB_TYPE' => 'Oracle', // 数据库类型 'DB_HOST' => '172.0.0.0', // 服务器地址 'DB_NAME' => '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.0.0.0)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = vasd) ) )', // 数据
阅读全文
摘要:php.ini中output_buffering = off 关闭php的缓存implicit_flush = Off php不会立即输出到浏览器。如果是ON,相当于每次ECHO 立刻执行一个FLUSHoutput_buffering 相当于一层缓冲。还有一层缓冲是php与浏览器之间的。ob_flush函数相当于把php缓冲写入php如浏览器输出层那个缓冲,当然如果 output_buffering=off的话,也就是相当于没有php缓冲,直接就写入了php与浏览器缓冲。flush函数是把php输出层缓冲立即 给浏览器,输出在浏览器上。output_buffering=off 相当于每次ech
阅读全文
摘要:有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空。那么你会如何填补这个漏子?当然向上级反映情况。但是我们这里讨论的是技术,就是需要生成1-25之间的16个不重复的随机数,去填补。具体怎么设计函数呢?将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。程序如下:01程序运行如下:12,3,4,6,7,8,9,10,11,12,13,16,20,21,22,24补充几点说明:生成随机数时用了mt_rand()函数。这个函数生成随机数的平均速度要比rand()快四倍。去除数组中的重
阅读全文
摘要:M方法和D方法的区别ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类。使用M方法如果是如下情况,请考虑使用 M方法:对数据表进行简单的 CURD 操作而无复杂的业务逻辑时只有个别的表有较为复杂的业务逻辑时,将 M方法 与实例化 CommonModel 类进行结合使用M方法 甚至可以简单看着就是对参数表名对应的数据表的操作:$User = M('User');使用D方法如果是如下情况,请考虑使用 D方法:需要使用 ThinkPHP 模型中一些高级功能如自动验证功能(create()方法中实现)
阅读全文
摘要:先说前端使用 jQuery 时怎么区分: jQuery发出 ajax 请求时,会在请求头部添加一个名为X-Requested-With的信息,信息内容为:XMLHttpRequest 在后端可以使用 $_SERVER["HTTP_X_REQUESTED_WITH"]来获取。(注意:中划线换成了下划线,不区分大小写) 由此,我们可以这样来判断是否为 ajax 请求://php判断是否为ajax请求if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HT
阅读全文
摘要:你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了。这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了。function generateTree($items){ $tree = array();foreach($items as $item){if(isset($items[$item['pid']])){ $items[$item['pid']]['son'][]=&$items[$item['id']];}else{ $tree[]=&
阅读全文
摘要:在httpd.cong中LoadModule php5_module modules/libphp5.so #这一行php5安装的时候就已经自动添加上了AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps
阅读全文
摘要:1.安装必要的软件 引用 我用的是apahce2.0.61版,可以直接官方提供的绑定openssl的apache. 文件名是:apache_2.0.61-win32-x86-openssl-0.9.7m.msi 否则单独安装windows下的openssl比较麻烦,要么找到一个第三方的编译结果,要么自己编译 2. 生成服务器证书 引用 安装好在bin目录下有一个 openssl.exe文件,用来生成证书和密钥。 1). 生成服务器用的私钥文件server.key 进入conf目录,执行命令行 openssl genrsa -out server.key 1024 有文档指出使用 openssl
阅读全文
摘要:没有安装apache的情况:首先安装SSL,再编译安装Apache,再配置证书即可1.下载apache和openssl网址:http://www.apache.org http://www.openssl.org2.解压(先进入到安装包的位置,和你解压的文件名字是不是和这个一样)#tar zxvf httpd-2.0.54.tar.gz#tar zxvf openssl-0.9.7g.tar.gz3.编译安装openssl,这个软件主要是用来生成证书:#cd openssl-0.9.7g#./config#make#make test#make install把openssl放进内核目录下,使
阅读全文
摘要:看到此标题或许你会说是否是多此一举,直接判断扩展名不就知道文件类型了吗,但是扩展名很容易伪造,这样就绕过了判断。大部分的文件都会将一个特殊的数字或字符存放在文件的特定位置里(开始处的2个字节)/** * @author Mckee * @link http://www.phpddt.com *///使用 'b' 来强制使用二进制模式$fp = fopen('qq.jpg','rb');//只读二进制文件,前2个字节就可以判断文件类型$bin = fread($fp,2);fclose($fp);//将二进制的字符串转化为格式化的字符串,这里转化为
阅读全文
摘要:PHPMailer是一个用于发送电子邮件的PHP函数包。它提供的功能包括:*.在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址*.支持多种邮件编码包括:8bit,base64,binary和quoted-printable*.支持SMTP验证*.支持冗余SMTP服务器*.支持带附件的邮件和Html格式的邮件*.自定义邮件头*.支持在邮件中嵌入图片*.调试灵活*.经测试兼容的SMTP服务器包括:Sendmail,qmail,Postfix,Imail,Exchange等*.可运行在任何平台之上调用方法:view sourceprint?01.require("class.phpm
阅读全文
摘要:PHP有如下几个拦截器:1、__get($property)功能:访问未定义的属性是被调用2、__set($property, $value)功能:给未定义的属性设置值时被调用3、__isset($property)功能:对未定义的属性调用isset()时被调用4、__unset($property)功能:对未定义的属性调用unset()时被调用5、__call($method, $arg_array)功能:调用未定义的方法时被调用拦截器,顾名思义,它就“拦截”未定义的属性和方法,有点类似__autoload和__construct等方法,应用案例如下(摘自网络):// 若访问一个未定义的属性
阅读全文
摘要:第一步:查看一下/etc/httpd/conf/httpd.conf中下面两个模块是否开启:LoadModule deflate_module modules/mod_deflate.soLoadModule headers_module modules/mod_headers.so查看方法:cat /etc/httpd/conf/httpd.conf | grep mod_deflatecat /etc/httpd/conf/httpd.conf | grep mod_headers如果前面有#则需要你开启,删除即可!开启gzip会消耗额外cpu资源第二步:在apache配置文件最后添加:S
阅读全文
摘要:PHP在这方面应该说是比较弱,如果只用php去实现可以如下:但是当我执行脚本的时候,即使我关闭了浏览器,我根本就没法去停止这段程序了,所以你需要一个执行脚本的开关,你可以用外部文件引入的方法来实现,在while循环的时候,include开关变量即可。那么就可以这样实现:建立外部引入变量文件 switch.php 内容如下:改良脚本如下:这个脚本只是测试可行,具体效率应该不高,对于lamp,你完全可以使用crontab来实现
阅读全文

浙公网安备 33010602011771号