标签为“php”的日记

Linux应用心得(三)

写这篇文章是为了方便自己,也同时为了方便他人。

目前的开源软件盛行,很多的README文档都是以英文的形式出现,很多懒人不愿意去读此类的文章,所以遇到问题也不会知道怎么去解决。

Linux应用心得已经在《My Study》中发布了二期,虽然以FAQ形式的出现,但是由于Linux应用的突飞猛进,很多的问答已经变得很苍白,但是我希望还是能够体现Linux中一种自由、开放的精神,让更多的人得到帮助。
如果你对太多的A、Q 不知所措,可以Ctrl+F查找你所需要的问题。

PHP 4官方支持结束

自2000年5月22日发布正式稳定版8年之后,8月8日标志着PHP 4生命的终结,官方不再提供支持,不会再有安全补丁发布。

PHP 4.4.9是PHP 4.x的最后一个版本。管理员和开发者失去了最后一个不升级到新一代版本开发环境的理由。过去几年,PHP 5提供了多种升级的途径,它的最新版本是5.2.6。但PHP 4发布8年之后,仍然有相当多的系统将不会在未来迁移到PHP 5,其中有相当的一部分可能永远也不会升级到PHP 5。对于那些不升级到新版PHP的用户,PHP专家 Stefan Esser将通过Suhosin 项目继续为PHP 4.x系列提供第三方安全补丁。

Web服务器常见编译的选项

常见的用于搭建Web服务器的软件有Apache、Perl、PHP、mysql等,其中Perl的编译选项最简单:

sh Configure -des

40个技巧优化你的PHP代码

英文版权归Reinhold Weber所有,中译文作者yangyang(aka davidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。

Linux应用心得(二)

写这篇文章是为了方便自己,也同时为了方便他人。

目前的开源软件盛行,很多的README文档都是以英文的形式出现,很多懒人不愿意去读此类的文章,所以遇到问题也不会知道怎么去解决。

在这之前,《linux宝库》的站长陈绪先生的《linux一句话》已经概括得很经典,而我追求的是linux中的FAQ形式,只要你有心,没有解决不了的问题。

如果你对太多的 A、Q 不知所措,可以Ctrl+F查找你所需要的问题。

配置文件的宏

由 buildconf 处理的配置文件 config.m4 包含了所有在配置过程中所执行的指令。这些指令诸如包含测试包含所需的外部文件,像头文件、库文件等等。PHP 定义了一系列处理这类情况的宏,其中最常用的已经在下表中列了出来。。

说明
AC_MSG_CHECKING(message) 在执行 configure 命令时输出“checking <message>”等信息。
AC_MSG_RESULT(value) 取得 AC_MSG_CHECKING 的执行结果,一般情况下 value 应为 yes 或 no。
AC_MSG_ERROR(message) 在执行 configure 命令时输出一条错误消息 message 并中止脚本的执行。
AC_DEFINE(name,value,description) 向 php_config.h 添加一行定义:
  #define name value // description

(这对模块的条件编译很有用。)

AC_ADD_INCLUDE(path) 添加一条编译器的包含路径,比如用于模块需要为头文件添加搜索路径。
AC_ADD_LIBRARY_WITH_PATH
(libraryname,librarypath)
指定一个库的连接路径。
AC_ARG_WITH(modulename,description,
unconditionaltest,conditionaltest)
这是一款比较强大的宏,用于将模块的描述 description 添加到“configure -help”命令的输出里面。PHP 会检查当前执行的 configure 脚本里面有没有-with-<modulename> 这个选项。 如果有则执行 unconditionaltest 语句(比如 -with-myext=yes 等), 此时,选项的值会被包含在 $withval 变量里面。否则就执行 conditionaltest 语句。
PHP_EXTENSION(modulename, [shared]) 这个是配置你的扩展时 PHP 必定调用的一个宏。你可以在模块名后面提供第二个参数,用来表明是否将其编译为动态共享模块。这会导致在编译时为你的源码提供一个 COMPILE_DL_<modulename> 的定义。

Zend API中的宏

下面是一些引入到 Zend API 里面用于访问 zval 容器的 API 宏。

指向
Z_LVAL(zval) (zval).value.lval
Z_DVAL(zval) (zval).value.dval
Z_STRVAL(zval) (zval).value.str.val
Z_STRLEN(zval) (zval).value.str.len
Z_ARRVAL(zval) (zval).value.ht
Z_LVAL_P(zval) (*zval).value.lval
Z_DVAL_P(zval) (*zval).value.dval
Z_STRVAL_P(zval_p) (*zval).value.str.val
Z_STRLEN_P(zval_p) (*zval).value.str.len
Z_ARRVAL_P(zval_p) (*zval).value.ht
Z_LVAL_PP(zval_pp) (**zval).value.lval
Z_DVAL_PP(zval_pp) (**zval).value.dval
Z_STRVAL_PP(zval_pp) (**zval).value.str.val
Z_STRLEN_PP(zval_pp) (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) (**zval).value.ht

原文:http://www.yanbin.org/php-manual-zh-api-macros/

这里主要讲述在PHP及Zend框架下怎么使用Zend API和C++语言来实现自己所要的功能以及项目的开发。
此篇文章所运用的环境在Linux 2.4.21-4.ELsmp(Red Hat Linux
3.2.3-20),Apache/2.2.8,gcc version 3.2.3 20030502,PHP 5.2.5 (cli),Zend
Engine v2.2.0下进行。

    此篇文章准备分2个部分来讲述:
    第一部分主要详细讲述一下怎么构建一个完成的C++应用扩展模块;
    第二部分主要讲述在PHP及Zend框架下怎么使用Zend API和C++语言来实现自己所要的功能以及项目的开发;
    此篇文章所运用的环境在Linux 2.4.21-4.ELsmp(Red Hat Linux 3.2.3-20),Apache/2.2.8,gcc version 3.2.3 20030502,PHP 5.2.5 (cli),Zend Engine v2.2.0下进行。

 

HTTP代理获取设计

这里又说Windows下的postgresql,只是个人觉得在windows下使用postgresql的人特别少,借此补充点postgres的知识供大家搜索。

推荐一个集合开源PHP的网站

http://www.php-open.com

里面列举了国外很多著名的开源的php软件,包括cacti等很多大型软件,也包括很多易用的、有趣的和容易集成的开源软件。
1

标签