易截截图软件、单文件、免安装、纯绿色、仅160KB

php扩展多进程共享内存

步骤:
1.运行命令:./ext_skel --extname=sharemem
2.运行命令:./configure --with-php-config=/usr/local/lnmp/php/bin/php-config
3.make clean
make
make install
/usr/local/lnmp/php/sbin/php-fpm restart
/usr/local/lnmp/php/bin/php-cgi /data0/htdocs/blog/sharemem.php
代码如下:
1.config.m4
PHP_ARG_ENABLE(sharemem, whether to enable sharemem support,
Make sure that the comment is aligned:
[  --enable-sharemem           Enable sharemem support])
if test "$PHP_SHAREMEM" != "no"; then
 
  PHP_NEW_EXTENSION(sharemem, sharemem.c, $ext_shared)
fi
2.php_sharemem.h
#ifndef PHP_SHAREMEM_H
#define PHP_SHAREMEM_H
extern zend_module_entry sharemem_module_entry;
#define phpext_sharemem_ptr &sharemem_module_entry
#ifdef PHP_WIN32
#define PHP_SHAREMEM_API __declspec(dllexport)
#else
#define PHP_SHAREMEM_API
#endif
#ifdef ZTS
#include "TSRM.h"
#endif
/*hanhhh*/
#include "sys/mman.h"
#include "fcntl.h"
#include "semaphore.h"
#define FILE_MODE   (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
/*hanhhh*/
typedef struct php_shared_mm {
  sem_t mutex;  /* the mutex: a Posix memory-based semaphore */
  int count;  /* and the counter */
} php_shared_mm;
PHP_MINFO_FUNCTION(sharemem);
PHP_FUNCTION(say8_count_add); /* For testing, remove later. */
PHP_FUNCTION(say8_count_dec); /* For testing, remove later. */
#endif /* PHP_SHAREMEM_H */
3.sharemem.c
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_sharemem.h"
zend_function_entry sharemem_functions[] = {
 PHP_FE(say8_count_add, NULL)  
 PHP_FE(say8_count_dec, NULL)  
 {NULL, NULL, NULL} /* Must be the last line in sharemem_functions[] */
};
/* }}} */
/* {{{ sharemem_module_entry
 */
zend_module_entry sharemem_module_entry = {
#if


相关文档:

ZendStudio通过Zend_Debugger与PHP集成,实现网页调试

对于PHP开发者来说,最重要的恐怕就是调试了,然而由于PHP是一种弱类型的语言,这种特新往往决定了它在调试方面的一些困难,因此好的调试方法和调试工具至关重要,这里我们需要为PHP集成Zend_Debugger调试器,通过它,无论进行本地调试还是远程调试,都非常方便,具体集成方法如下:
1、下载Zend_Debugger组件,可以到Zend ......

PHP 初识

以S2的BBS论坛项目作为整个基础课程的案例。
1.连接数据库和执行第一个SQL语句:
  1)PHP提供了连接数据库的函数--mysqli_connect(agrs0,agrs1,agrs3),我们直接使用就可以了。
    此函数包括三个必要的参数,分别为:localhost,数据库用户名,数据源。
     以bbs论坛连接My ......

PHP顺序排序


PHP的算法都有哪些呢?
我还记得上大学那会学数据结构时,了解了:顺序法、冒泡法、二分法以及对线性表以及数据入栈、出栈的操作。
PHP中的顺序法就是对数组元素的逐一比较而得到的。
例如:
 
<?php
function order($php,$k)
{
 $n = count($php);  //计算数组个数
 $php ......

五种常见的 PHP 设计模式


级别: 中级
Jack D Herrington
(jherr@pobox.com
), 高级软件工程师, Leverage Software Inc.
2006 年 10 月 19 日
设计模式只是为 Java™ 架构师准备的 —— 至少您可能一直这样认为。实际上,设计模式对于每个人都非常有用。如果这些工具不是 “架构太空人” 的专利,那么它们又是什 ......

利用php中的eval来模拟java中的动态代理

使用java中的动态代理可以完成很多事情,比如将业务实例进行托管,实现AOP等,但是Php中没有实现这样的东西,昨天突然想到其实可以通过eval来模拟一个动态代理机制。php比java不同的是,php是不需要编译的,因此只要我们能够动态生成一段代码,然后用eval来执行就可以达到效果。代码如下:
/**
* 代理实现类
*/
inter ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号