Php
文章平均质量分 72
anssummer
只求每天进步一点点.
展开
-
Zend API: 信息输出
转载地址:就像我们在脚本中使用 print() 函数一样,我们也经常需要从扩展向输出流输出一些信息。在这方面-比如输出警告信息、phpinfo() 中对应的信息等一般性任务-PHP 也为我们提供了一系列函数。这一节我们就来详细地讨论一下它们。zend_printf()zend_printf() 功能跟 printf() 差不多, 唯一不同的就是它是向 Zend 的输出流提供转载 2014-05-02 01:54:26 · 766 阅读 · 0 评论 -
Zend API: 使用拷贝构造函数复制变量内容
转载地址:迟早你会遇到把一个 zval 容器的内容赋给另外一个 zval 容器的情况。不过可别想当然,这事说起来容易做起来可有点难度。因为 zval 容器不但包含了类型信息,而且还有对 Zend 内部数据的一些引用。比如,数组以及对象等依据其大小大都或多或少包含了一些哈希表结构。而我们在将一个 zval 赋给另外一个 zval 时,通常都没有复制这些哈希表本身,复制的只是这些哈希表的引用而转载 2014-05-02 01:49:57 · 544 阅读 · 0 评论 -
php内核基础
PHP_MINIT_FUNCTION 初始化module时运行 PHP_MSHUTDOWN_FUNCTION 当module被卸载时运行 PHP_RINIT_FUNCTION 当一个REQUEST请求初始化时运行 PHP_RSHUTDOWN_FUNCTION 当一个REQUEST请求结束时运行 PHP_MINFO_FUNCTION 这个是设置phpinfo中这个模原创 2014-05-02 21:21:51 · 572 阅读 · 0 评论 -
Zend API: 支持初始化文件(php.ini)
如果想要为你的模块创建一个 .ini 文件的配置节,可以使用宏 PHP_INI_BEGIN() 来标识这个节的开始,并用 PHP_INI_END() 表示该配置节已经结束。然后在两者之间我们用PHP_INI_ENTRY() 来创建具体的配置项。1PHP_INI_BEGIN()2PHP_INI_ENTRY("fi转载 2014-05-02 01:11:23 · 607 阅读 · 0 评论 -
fastcgi学习
相对于 CGI/1.1 规范在 Web 服务器在本地 fork 一个子进程执行 CGI 程序,填充 CGI 预定义的环境变量,放入系统环境变量,把 HTTP body 体的 content 通过标准输入传入子进程,处理完毕之后通过标准输出返回给 Web 服务器。FastCGI 的核心则是取缔传统的 fork-and-execute 方式,减少每次启动的巨大开销(后面以 PHP 为例说明),以常驻的...原创 2019-11-17 15:18:44 · 158 阅读 · 0 评论 -
请注意PHP程序里的敏感信息
何为敏感信息?简单点来说就是你不想让别人知道的信息,比如说数据库的地址,用户名,密码等等,此类信息往往知道的人越少越好。 通常,PHP程序里的配置文件大致如下所示:<?phpreturn array( 'database' => array( 'host' => '192.168.0.1', 'user' => 'admi转载 2015-10-25 15:13:54 · 531 阅读 · 0 评论 -
内核基础
轻量级进程如果内核要对线程进行调度,那么线程必须像进程那样在内核中对应一个数据结构。进程在内核中有相应的进程描述符,即task_struct结构。事实上,从Linux内核的角度而言,并不存在线程这个概念。内核对线程并没有设立特别的数据结构,而是与进程一样使用task_struct结构进行描述。也就是说线程在内核中也是以一个进程而存在的,只不过它比较特殊,它和同类的进程共享某些资源,比如原创 2013-10-24 11:43:57 · 685 阅读 · 0 评论 -
PHP缓存技术实现
发个PHP缓存实现,实现了apc和文件缓存,继承Cache_Abstract即可实现调用第三方的缓存工具。参考shindig的缓存类和apc。Php代码<?php class CacheException extends Exception {} /** * 缓存抽象类 */ abstract class Cache_Abstract { /**原创 2013-09-07 19:46:35 · 818 阅读 · 0 评论 -
negix代理apache实现
前段时间架设了freebsd+apache+php+mysql,不知为何系统总是遭受来至一个ip的大量访问,因为该服务器的内存较小,只有512M,其他配置都是高配,我猜想是否是大访问量导致死机,而且查看apache的错误日志大部分来至这个ip以及其他ip对该域名的以前网站的访问,因为现在的网站是用php写的,错误日志大部分是访问asp的文件,于是我采用性能比apache更优越的Nginx做前端挡掉转载 2013-09-07 21:32:49 · 2128 阅读 · 0 评论 -
negix反向代理
php 交给apache 处理了静态文件交给了 nginx 碰到的问题 用户目录如何映射location ~ ^/~(.+?)(/.*?)$ { //该匹配有问题,无法匹配根级目录/~peach 这样的匹配将会失效,修改成 ^/~([^/]+)(.*)$ alias /home/$1/public_html$2; index index.ht原创 2013-09-07 21:48:35 · 2345 阅读 · 1 评论 -
php导入excel数据到mysql
使用PHP-ExcelReader导入excel数据PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader下载完成之后将reader.php和oleread.inc两个文件放到项目里面 实例:1.导入只有一个sheets的excel文件 require_once原创 2013-09-08 17:45:42 · 704 阅读 · 0 评论 -
百万级PHP网站架构工具箱
在了解过世界最大的PHP站点,Facebook的后台技术后,今天我们来了解一个百万级PHP站点的网站架构:Poppen.de。Poppen.de是德国的一个社交网站,相对Facebook、Flickr来说是一个很小的网站,但它有一个很好的架构,融合了很多技术,如 Nigix、MySql、CouchDB、Erlang、Memcached、RabbitMQ、PHP、Graphite、Red5以及Tsu转载 2013-09-07 19:53:03 · 879 阅读 · 0 评论 -
php的corntab
php定时计划任务介绍 最近帮朋友做一个小说采集程序,虽然现在可以实现整部小说全部采集的功能,但是却不能够自动的去采集.需要人工手动执行.所以就搜索有关这方面的资料,没想到PHP还真的可以实现,可以自动定时获取,那么人工运行可执行页面也就省下来了。ignore_user_abort();函数搭配set_time_limit(0);和slee原创 2013-09-07 19:28:27 · 1119 阅读 · 0 评论 -
PHP生成静态html文件 的三种方法
本文将介绍Php 生成静态html文件的三种方法 。1,下面使用模版的一个方法!<?php $fp = fopen ("templets.html","a"); if ($fp){ $fup = fread ($fp,filesize("templets.html")); $fp2 = fopen ("html.shtml","w"); i转载 2013-09-07 19:41:09 · 736 阅读 · 0 评论 -
php导出excel数据
提供两种导出excel方法1 最简单的导出excel header('Content-Type: application/vnd.ms-excel'); //设置文件类型 也可以将 vnd.ms-excel' 改成xml(导出xml文件) header('Content-Disposition: attachment;filename="云平台用户报表.xls"')原创 2013-09-08 17:58:15 · 698 阅读 · 0 评论 -
php中exec和system shell_exec区别
php exec()函数,实例: $a=exec("dir",$b,$c); var_dump($a,$b,$c);返回结果:string ' 3 个目录 21,346,123,776 可用字节' (length=47)array (size=19) 0 => string ' 驱动器 C 中的卷没有标签。' (length=26) 1 => s原创 2013-09-11 07:22:43 · 2177 阅读 · 0 评论 -
取消phpmyadmin上传限制
一、修改php.ini文件。如果是Win2000的机器,应该是c\winnt\php.ini,用写字板打开php.ini文件:1、查找post_max_size,指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值,默认为8M,看你自己需要进行改变。2、查找File Uploads,首先确认file_uploads = on ;是否允许通过HTTP上传文件的开关,默认为原创 2013-09-12 09:12:07 · 689 阅读 · 0 评论 -
phpize和php-config安装模块
今天在配置一台nginx的web服务器时,参考张宴(blog.s135.com)大师的《Nginx 0.8.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》安装php(fastcgi模式)的时候,常常有这样一句命令:/usr/local/webserver/php/bin/phpize一、phpize是干嘛的?phpize是什么东西呢?p原创 2013-09-29 15:31:23 · 3291 阅读 · 0 评论 -
php安装常见错误
1.memcache support requires ZLIB解决办法checking for the location of zlib... configure: error: memcache support requires ZLIB. Use --with-zlib-dir= to specify prefix where ZLIB include and library a原创 2013-09-29 16:08:50 · 2281 阅读 · 0 评论 -
深刻理解php之变量分离/引用
在前面的文章中我已经介绍了PHP的变量的内部表示(深入理解PHP原理之变量(Variables inside PHP)),以及PHP中作用域的实现机制(深入理解PHP原理之变量作用域(Scope inside PHP))。这节我们就接着前面的文章,继续介绍PHP中变量分离和引用的概念:首先我们回顾一下zval的结构:struct _zval_struct { /*转载 2013-09-20 19:55:06 · 895 阅读 · 0 评论 -
深入了解php底层机制
作为一门动态语言,php是如何实现的,其底层机制如何,具有什么样的特点,本文深入浅出介绍了包括php设计理念、整体结构、核心数据结构和变量在内的相关底层知识,对我们更好的开发php程序,优化性能等有一定的指导意义。1. 概述what is php?一种适用于web开发的动态语言。具体点说:就是一个用c语言实现包含大量组件的软件框架。更狭义点看,可以把它认为是一个强大的ui框原创 2013-09-20 21:34:51 · 1026 阅读 · 0 评论 -
使用MySQL UDF更新memcache缓存
MySql UDF介绍UDF是User Defined Function的缩写,指 Mysql 的用户定义函数,应用可以通过使用这些函数从 Mysql5.0 以上版本的数据库中访问 Memcached 服务以写入或者获得数据。此外,从 Mysql5.1 开始支持触发器,这样就可以在触发器中使用 UDF 直接更新 Memcached 的内容,减轻了应用程序设计和编写的复杂性。下面我们简要介绍转载 2013-09-20 20:34:32 · 1662 阅读 · 0 评论 -
php中json_encode注意
一、json_encode()该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子: $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); 结果为 {"a":1,"b":2,"c":3,"d":4,"e":5}原创 2013-09-20 21:58:58 · 3962 阅读 · 0 评论 -
用php实现hashtable
下面是凹凸曼用PHP实现的HashTable代码,其中需要说明的有两点:1)代码中使用了 SplFixedArray ,这是一个更接近C语言的数组[Array],而且效率更高。使用之前需要开启SPL扩展,PHP5.3+默认开启。2)代码中使用拉链法解决冲突,即将所有相同的Hash值的关键字节点链接在同一个链表中。phpclass HashNode { public $key; publ翻译 2013-09-20 22:01:27 · 1026 阅读 · 1 评论 -
socket编程 for PHP
<?php class ClientSocket { var $host; var $port; var $socket; var $errCode; var $errDesc; function __construct($host,$port) { $this->errCode = 0; $this->errDe原创 2013-09-21 18:56:03 · 833 阅读 · 0 评论 -
php socket通信
服务器端文件:socket_server.php:phpinfo();//用WEB打开的时候为了防止网页超时连接,需要设置无限有效set_time_limit(0); /**加载Socket必备的库*/if(!extension_loaded('sockets')) {if(strtoupper(substr(PHP_OS, 3)) == “WIN”) {dl原创 2013-09-07 19:43:41 · 735 阅读 · 0 评论 -
PHP语法分析器:RE2C && BISON 总结
欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/647在这之前,我曾经尝试过一个项目,就是将我们的PHP代码自动生成so扩展,编译到PHP中,我叫它 phptoc。但是由于各种原因,暂停了此项目。写这篇文章一是因为这方面资料太少,二是把自己的收获总结下来,以便以后参考,如果能明白PHP语法分析那对PH转载 2013-10-07 01:56:51 · 1462 阅读 · 0 评论 -
php c扩展
本文地址: http://www.laruence.com/2009/04/28/719.html文章转自: http://blog.csdn.net/taft/archive/2006/02/10/596291.aspx简 介英文版下载: PHP 5 Power ProgrammingPHP取得成功的一个主要原因之一是她拥有大量的可转载 2013-10-06 19:59:35 · 960 阅读 · 0 评论 -
APC简介
APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。默认缓存 3600s(一小时)。但是这样仍会浪费大量CPU时间。因此可以在php转载 2013-10-07 02:18:05 · 1691 阅读 · 0 评论 -
PHP下载CSS文件中图片的代码
php实现下载CSS文件中的图片。 共享一段使用PHP下载CSS文件中的图片的代码 [php] view plaincopy//note 设置PHP超时时间 set_time_limit(0); //note 取得样式文件内容 $styleFileContent = file_get_content原创 2013-10-06 17:46:49 · 693 阅读 · 0 评论 -
自己写PHP扩展之创建一个类
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/572上一章用扩展创建了一个变量..这次来个大的..我们创建一个类.然后在php里面去调用这个类.生成扩展及修改 不知道的请点击这里 http://imsiren.com/archives/568这里原创 2013-10-07 02:09:00 · 1056 阅读 · 0 评论 -
判断远程url是否有效
使用PHP解决使用file_get_contents函数,不过优缺点如果url无法访问,会出现终止程序问题使用curl返回,然后判断是否正确执行使用get_headers函数,根据HTTP返回值查看是否有200需要配置 allow_url_fopen=on 修改php.ini,运行使用远程打开函数介绍array get_headers ( strin原创 2013-10-07 10:33:23 · 1268 阅读 · 0 评论 -
Gearman 介绍
Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相 比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片 resize功能,由于图片resize需要消耗大量计算资源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。通常,多语言多系统之间的集成是个大问题原创 2013-10-07 11:32:41 · 986 阅读 · 0 评论 -
php里ezpdo orm框架初探
下载解压.....php默认内嵌sqlite3,修改config.ini:default_dsn = sqlite3://books.db我们讲解下examples/books这个项目,.在books子目录下,有两个子目录,分别是classes目录和complied目录,其中classes 子目录是放类文件的,compiled目录是放ezpdo自己生成的文件,要求该目录要有写权原创 2013-10-07 13:59:40 · 994 阅读 · 0 评论 -
session基础
1.session跨机共享:php本身的session机制不能跨机,这给多服务器,1)使用数据库来实现2)使用memcached来保存3)自己写server端,通过改写session处理函数来请求4)使用nfs等跨机存储来保存session2.系统中二级域名下貌似还是无法取$_SESSION?session.use_cookies设置为1,当然默认情况下也是设置原创 2013-10-08 13:03:54 · 716 阅读 · 0 评论 -
session写入memcache
1.通过memecache扩展 配置: session.save_handler = memcache session.save_path = "tcp://host:port" phpinfo中变量值: Registered save handlers files user sqlite memcache 测试2)test1原创 2013-10-08 12:45:32 · 951 阅读 · 0 评论 -
php开发规范
1.代码第一段一定要先设定错误报告等级 error_reporting(8);// 个人建议为7 2.数组 申明$row[key] = 'value'; // 不推荐 $row = array(); // 变量一定绝对必须要先声明! $row['key'] = 'value'; $row['12'] = '34';// 数组的key一定绝对要用双引号或单引号包起来原创 2013-10-07 17:12:44 · 755 阅读 · 0 评论 -
把session放入mysql
session通常放在/tmp目录下,而该文件夹的权限是everbody可读,这个就非常可怕了!学校的论坛曾经就有人通过session来盗取帐号!所以后来就尝试把session放入数据库,表的结构和过程如下://创建表//create sesslib.sqlCREATE TABLE sesslib ( data text, time datetime, id int(11) DEF原创 2013-10-08 12:16:43 · 1007 阅读 · 0 评论 -
php优化
整理了一些php优化方面的东西:1. 静态方法比普通方法快;单纯方法调用普通方法比静态方法快,但调用普通方法之前需要new操作,两步操作导致调用普通方法比调用静态方法慢2. 尽量减少方法调用,特别是只有一两句而且还频繁调用的方法。一些减少方法调用的小技巧:time() -> $_SERVER[REQUEST_TIME]phpversion() ->原创 2013-10-07 20:30:30 · 746 阅读 · 0 评论 -
无限分类
实现方式: 数据+类实现1.数据源: 如果菜单分级不多,可以直接写到配置文件中. 数据量非常大,用数据库.2.写一个menu类来实现.原创 2013-10-08 12:56:43 · 660 阅读 · 0 评论