文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP 的来龙去脉(2)

PHP 的来龙去脉(2)

时间:2007-08-29  来源:jozen


php.ini 配置详细选项
php.ini 或 php3.ini 是 PHP 在启动时会读取的配置文件。该文件的存放路径为 /usr/local/lib/。在 PHP 3.x 版的配置文件为 php3.ini;而在 PHP 4.x 版改为 php.ini。若 PHP 安装成服务器的模块,则在 Web 服务器启动执行时会读取,之后就不再读取,因此改动配置的话要重新启动 Web 服务器。若使用独立 PHP CGI 方式,则每次都读一次。
要看目前的系统配置,可以用
phpinfo()
看到。以下为选项配置
php_value name value
配置变量名称和值。本选项需 PHP 4.x 版之后才能使用。
php_flag name on|off
配置标志布尔变量选项。本选项需 PHP 4.x 版之后才能使用。
php_admin_value name value
配置 Apache 的配置文件变量。原来在 .htaccess 的配置改到这个选项配置。本选项需 PHP 4.x 版之后才能使用。
php_admin_flag name on|off
配置布尔变量当标志。本选项需 PHP 4.x 版之后才能使用。
asp_tags boolean
配置 PHP 程序是否解析以 ASP Script 语法  的标记 (tag)。本选项在 PHP 3.0.4 之后才可使用。更多的细节可以参考
嵌入方法
的部份。
auto_append_file string
配置本选项可以让指定的文件附加在原 PHP 程序后面自动执行。若 PHP 程序中有用到 exit() 函数,则指定的文件不会执行。参数 string 即为指定自动执行的文件。
auto_prepend_file string
配置本选项可以让指定的文件在原 PHP 程序之前自动执行。参数 string 即为指定自动执行的文件。
cgi_ext string
本选项配置 CGI 程序的扩展名。
display_errors boolean
本选项配置是否要将执行的错误信息显示在用户的浏览器上。
doc_root string
配置服务器的文件及 PHP 文件放置的根目录。
engine boolean
本选项需要使用apache的模块方式使用 PHP。可配置是否要使用 PHP 引擎。在 httpd.conf 中加入 php3_engine on/off 亦可配置某目录或某虚拟网站是否要用 PHP 解析器。
error_log string
本选项用来配置错误记录文件。在 UNIX 系统上参数 string 即为文件名。Windows NT 会将记录记在事件检视器的日志之中。Windows 95/98 则不支持系统记录。
error_reporting integer
本选项用来配置系统记录的等级。参数 integer 即为等级的级数标志,可以加在一起,默认值为 7,见下表
级数
说明
1
一般的错误
2
一般的警告
4
解析错误
8
非关键的警告
open_basedir string
本选项用来配置提供 PHP 存取的最底层目录。从该指定目录之下的文件或目录,PHP 程序才能存取。使用本选项主要是为了系统安全性的考虑。参数 string 即为要限制的最底层目录节点。值得注意的是在 UNIX 系统中,若该节点之下的文件或目录有符号链结 (symbolic link),则可能会让使用本选项的目的打折,因此在目录的设计上考虑,也是 Webmaster 的重要任务。默认值是所有文件均可存取。在 PHP 3.0.7 版之后,可以配置多个底层目录。
gpc_order string
配置 GET/POST/COOKIE 三种模块的顺序及规则。参数 string 即为要配置的规则,例如:配置成 "GP" 表示忽视 cookie,并在存取方法 (method) 相同时,以 POST 取代 GET。
ignore_user_abort string
默认值为 Off。用来配置当传输未完成时,用户端断线是要继续处理。
include_path string
为 PHP 程序中 require、include 及 fopen_with_path 等函数的文件搜寻路径。在 UNIX 或 Windows 中的斜线方向不同。
log_errors boolean
指定程序错误时是否要记录在 log 文件中。
magic_quotes_gpc boolean
配置 GET/POST/COOKIE 三种模块的特殊字符,包含单引号、双引号、反斜线、及空字符 (NUL) 是否要自动加入反斜线当溢出字符。
magic_quotes_runtime boolean
配置返回资料是否自动加入反斜线当溢出字符。
magic_quotes_sybase boolean
配置 sybase 资料中单引号要自动加上反斜线当溢出字符。
max_execution_time integer
配置程序最久执行时间。单位是秒。
memory_limit integer
配置程序最多使用多少内存。
short_open_tag boolean
配置是否使用短的 PHP 标记 ()。若不使用,则必须要用
track_errors boolean
打开本选项可使最后的错误信息跟着全局变量 $php_errormsg。
track_vars boolean
打开本选项可让用户输入的字符串自动解析到变量之中,而不用自己处理。
upload_tmp_dir string
指定上传文件临时路径。
user_dir string
指定用户根目录的路径。
warn_plus_overloading boolean
若打开本选项,字符串间就只能用英文的句号 (.) 链接,而不能用加号 (+) 链接字符串。
SMTP string
在 Windows 系列操作系统中,用来指定 SMTP 服务器,供 mail 函数使用。参数 string 为 SMTP 服务器名字。
sendmail_from string
配置 "From: " 字符串供 Windows 系列操作系统使用 mail 函数。
sendmail_path string
配置 sendmail 程序的放置路径。例如 /usr/sbin/sendmail。
safe_mode boolean
配置 PHP 在安全模式下执行。
safe_mode_exec_dir string
配置安全模式程序执行的路径。
debugger.host string
指定远端调试的服务器名称,可以是 IP 或 Domain Name。
debugger.port string
配置远端调试服务器的端口 (port)。
debugger.enabled boolean
配置是否可以为调试模式。
enable_dl boolean
本选项要使用apache模块 (Apache module) 的方式才有效。用来配置 PHP 的
dl()
函数可否作用。当系统处于安全模式 (safe-mode) 时,本选项 enable 也无法使用 dl() 函数。
extension_dir string
配置动态函数的路径。
extension string
PHP 启动时所要载入的动态扩充功能。
mysql.allow_persistent boolean
配置是否允许 MySQL 数据库持续连接 (persistent connections),会影响
mysql_pconnect()
函数。
mysql.max_persistent integer
配置每个处理程序最多保持几个 MySQL 持续连接。
mysql.max_links integer
配置每个处理程序最多开几个 MySQL 连接,包括持续连接。
msql.allow_persistent boolean
配置是否允许 mSQL 数据库持续连接 (persistent connections),会影响
msql_pconnect()
函数。
msql.max_persistent integer
配置每个处理程序最多保持几个 mSQL 持续连接。
msql.max_links integer
配置每个处理程序最多开几个 mSQL 连接,包括持续连接。
pgsql.allow_persistent boolean
配置是否允许 Postgres 数据库持续连接 (persistent connections),会影响
pg_pConnect()
函数。
pgsql.max_persistent integer
配置每个处理程序最多保持几个 Postgres 持续连接。
pgsql.max_links integer
配置每个处理程序最多开几个 Postgres 连接,包括持续连接。
sybase.allow_persistent boolean
配置是否允许 Sybase 数据库持续连接 (persistent connections),会影响
sybase_pconnect()
函数。
sybase.max_persistent integer
配置每个处理程序最多保持几个 Sybase 持续连接。
sybase.max_links integer
配置每个处理程序最多开几个 Sybase 连接,包括持续连接。
sybct.allow_persistent boolean
配置是否允许 Sybase-CT 数据库持续连接 (persistent connections),默认值是打开的。
sybct.max_persistent integer
配置每个处理程序最多保持几个 Sybase-CT 持续连接。默认值为 -1 表示无限制。
sybct.max_links integer
配置每个处理程序最多开几个 Sybase-CT 连接,包括持续连接。默认值为 -1,表示没有限制。
sybct.min_server_severity integer
配置 Sybase-CT 服务器错误报告的最少笔数。默认值为 10。
sybct.min_client_severity integer
配置 Sybase-CT 客户端错误报告的最少笔数。默认值为 10。
sybct.login_timeout integer
配置 Sybase-CT 最久可以使用的登入时间。默认值为 1 分钟。
sybct.timeout integer
配置 Sybase-CT 的 query 操作时间限制。默认值为无限制。
sybct.hostname string
配置 Sybase-CT 可连接机器名称。默认值不设限
ifx.allow_persistent boolean
配置是否允许 Informix 数据库持续连接 (persistent connections),会影响
ifx_pconnect()
函数。
ifx.max_persistent integer
配置每个处理程序最多保持几个 Informix 持续连接。
ifx.max_links integer
配置每个处理程序最多开几个 Informix 连接,包括持续连接。
ifx.default_host string
配置 Informix 默认连接的服务器名称,供
ifx_connect()

ifx_pconnect()
函数使用。
ifx.default_user string
配置 Informix 默认连接的用户帐号,供
ifx_connect()

ifx_pconnect()
函数使用。
ifx.default_password string
配置 Informix 默认连接的用户密码,供
ifx_connect()

ifx_pconnect()
函数使用。
ifx.blobinfile boolean
配置 Informix 长位类模式,0 表在内存;1 表在文件中。亦可以在 PHP 程序中使用
ifx_blobinfile_mode()
函数来修改。
ifx.textasvarchar boolean
配置 Informix 文字模式默认值,0 表返回 blob 的代码;1 表返回 varchar 字符串。亦可在 PHP 程序中使用
ifx_textasvarchar()
函数来修改配置。
ifx.byteasvarchar boolean
配置 Informix 位组模式默认值,0 表返回 blob 的代码;1 表返回 varchar 字符串。亦可在 PHP 程序中使用
ifx_byteasvarchar()
来修改配置。
ifx.charasvarchar boolean
配置 Informix 返回字符串的字尾空格是否要自动去除。
ifx.nullformat boolean
配置 NULL 字段的返回方式,true 表示返回字符串 NULL,false 表格返回字符串 ""。亦可在 PHP 程序中以
ifx_nullformat()
修改。
bcmath.scale integer
配置 BC 高精确度函数库的小数点位数。
browscap string
配置浏览器的开文件能力名。
uodbc.default_db string
配置 ODBC 默认连接的数据库名称,供
odbc_connect()

odbc_pconnect()
函数使用。
uodbc.default_user string
配置 ODBC 默认连接的用户帐号,供
odbc_connect()

odbc_pconnect()
函数使用。
uodbc.default_pw string
配置 ODBC 默认连接的用户密码,供
odbc_connect()

odbc_pconnect()
函数使用。
uodbc.allow_persistent boolean
配置是否允许 ODBC 数据库持续连接 (persistent connections),会影响
odbc_pconnect()
函数。
uodbc.max_persistent integer
配置每个处理程序最多保持几个 ODBC 持续连接。
uodbc.max_links integer
配置每个处理程序最多开几个 ODBC 连接,包括持续连接。
以下和 session 有关的配置值,都在 PHP 4.x 以上的版本方支持。在 php.ini 的配置文件中。
session.save_handler
定义 session 储存资料的文件名称。默认值为 files。
session.save_path
定义 session 储存资料的文件路径。默认值为 /tmp。
session.name
配置 session 所使用的 cookie 名称。默认值为 PHPSESSID。
session.auto_start
配置 session 是否自动打开。默认值为 0 (否)。
session.lifetime
配置 cookie 送到浏览器后的保存时间,单位为秒。默认值为 0,表示直到浏览器关闭。
session.serialize_handler
定义连续/解连续资料的标头,本功能只有 WDDX 模块或 PHP 内部使用。默认值为 php。
session.gc_probability
配置每笔要求回应时的废物蒐集 (gc, garbage collection) 处理机率。默认值为 1。
session.gc_maxlifetime
配置废物被清除前的存活秒数。
session.extern_referer_check
决定参照到客户端的 Session 代码是否要删除。有时在安全或其它考虑时,会配置不删除。默认值为 0。
session.entropy_file
配置 session 代码建立时,使用外部高熵值资源或文件来建立,例如 UNIX 系统上的 /dev/random 或 /dev/urandom。
session.entropy_length
配置 session 从高熵值资源读取的位组数。默认值为 0。
session.use_cookies
配置是否要将 session 变成 cookie 存在用户端。默认值为 1,表是打开本功能。

如何写作 PHP 程序
如果只会用 Frontpage、Dreamweaver 的所见即所得编辑模式来写网页,而完全不懂 HTML 的语法,恐怕要先下点功夫了解 HTML 语法,才能顺利的写 PHP 程序了。如果早就非常了解 HTML 幕后排版语言的语法,那么应该可以马上开始 PHP 的程序写作了。在 PHP 这种后端服务器的程序语言,下苦功去学习 HTML 是写作的必备条件。
对熟悉 Windows 系列系统平台的用户,有套软件倒是在开发 PHP 程序上是蛮方便的,就是 PHP Editor,若对这软件有兴趣,不妨到
http://www.soysal.com/PHPEd
下载最新的版本。同时还需要下载 PHP 程序 Win32 的版本。安装好 PHP Win32 版后,在 PHP Editor 中配置好 PHP Win32 的路径,就可以让您轻松地开发 PHP 程序了。至于在写作 PHP 程序的工作平台上,有没有 Web 服务器倒是不重要,因为在 PHP Editor 的环境中写好的程序,按下执行的键后,由 PHP Editor 直接将所写的 PHP 程序送给 PHP Win32,并将执行结果处理后,呈现在用户的面前。
若您和笔者一样,对 Linux/UNIX 很偏执,或许可以尝试使用
Bluefish
: 蓝鱼 PHP 写作工具,只要装好 Linux 及 X-Window 之后就可以使用了。要使用中文的话,需要在 X-Window 加入中文的字型及输入法,要方便的话,使用 RedHat 加上 CLE 中文支持就好了。
假使您已是老 Linux/UNIX 了,也不喜欢使用这些专门的开发工具。相信您对 vi 或是
Emacs
一定相当熟悉,那么就在装好 Web 服务器和 PHP 程序后,直接用 vi 或 Emacs 写 PHP 程序就可以了,并且可以直接看到执行的真正结果,和数据库或是其它的服务程序链接,也不会有什么问题。这种「所写即所得」的方式,岂不痛快!!

hello, world
在 K&R 二教授的经典名著 The C Programming Language 一书中的 "hello, world" 几乎已经变成了所有程序语言的第一个范例。因此,在这儿也用 PHP 来写个最基本的 "hello, world" 程序。

First program

这十行程序在 PHP 中不需经过编译等复杂的过程,只要将它放在配置好可执行 PHP 语法的服务器中,将它存成文件 helloworld.php 好了。在用户的浏览器端,只要在 Location: 输入
http://some.hostname/helloworld.php
,就可以在浏览器上看到 hello, world 字符串出现。
我们可以看到,这个程序只有三行有用,其它六行都是标准的 HTML 语法。而它在返回浏览器时和 JavaScript 或 VBScript 完全不一样,PHP 的程序没有传到浏览器,只在浏览器上看到短短的几个字 "hello, world"。
在第六行及第八行,分别是 PHP 的开始及结束的嵌入符号。第七行才是服务器端执行的程序。在这个例子中,"\n" 和 C 语言的表示都一模一样,代表换行的意思。在第一章也有介绍过 PHP 是混合多种语言而成,而 C 正是含量最多的语言。在一个表达式结束后,要加上分号代表结束。


图二: 在浏览器上看到 PHP 写的 hello, world 程序
嵌入方法
要将 Homepage 中放入 PHP,有以下数种做法





    • echo ("这是类似 JavaScript 及 VBScript 语法
      的 PHP 语言嵌入范例");




    • 其中第一种及第两种是最常用的两个方法,在小于符号加上问号后,可以加也可以不加 php 三个字,之后就是 PHP 的程序码。在程序码结束后,加入问号大于两个符号就可以了。第三种方法对熟悉 Netscape 服务器产品的 Webmaster 人员而言,有相当的亲切感,它是类似 JavaScript 的写作方式。而对于从 Windows NT 平台的 ASP 投向 PHP 的用户来说,第四种方法似曾相似,只要用 PHP 3.0.4 版本以后的服务器都可以用小于百分比的符号开始,以百分比大于结束 PHP 的部分,但想用第四种方法的用户别忘了在 php.ini 加入 asp_tags 或是在编译 PHP 时加入 --enable-asp-tags 的选项,才能使第四种方法有效。建议少用第四种方法,当 PHP 与 ASP 源代码混在一起时就麻烦了。
      其实,在写作 PHP 的程序最好的方法,就是先处理好纯 HTML 格式的 Homepage 文件之后,再将需要变量或其它处理的地方改成 PHP 程序。这种方法,可以让您在开发上达到事半功倍的效果。
      引用文件
      PHP 最吸引人的特色之一大概就是它的引用文件了。用这个方法可以将常用的功能写成一个函数,放在文件之中,然后引用之后就可以调用这个函数了。
      引用文件的方法有两种:require 及 include。两种方式提供不同的使用弹性。
      require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
      include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
      在 PHP 的
      官方网站
      中,每页都可以看到原始程序,更是处处看到这两种引入文件的方法。
      程序注释
      在 PHP 的程序中,加入注释的方法很灵活。可以使用 C 语言、C++ 语言或者是 UNIX 的 Shell 语言的注释方式,而且也可以混合使用。这可以让每个写 PHP 网页程序的 Webmaster 或 Programmer 发展出属于自己的写作风格。


      不过在使用多行注释时请注意,不能让注释陷入递归循环当中,否则会引起错误。
      常量类型
      PHP 在常量中定义了以下一些常量。
      __FILE__
      这个默认常量是 PHP 程序文件名。若引用文件 (include 或 require)则在引用文件内的该常量为引用文件名,而不是引用它的文件名。
      __LINE__
      这个默认常量是 PHP 程序行数。若引用文件 (include 或 require)则在引用文件内的该常量为引用文件的行,而不是引用它的文件行。
      PHP_VERSION
      这个内建常量是 PHP 程序的版本,如 '3.0.8-dev'。
      PHP_OS
      这个内建常量指执行 PHP 解析器的操作系统名称,如 'Linux'。
      TRUE
      这个常量就是真值 (true)。
      FALSE
      这个常量就是伪值 (false)。
      E_ERROR
      这个常量指到最近的错误处。
      E_WARNING
      这个常量指到最近的警告处。
      E_PARSE
      本常式为解析语法有潜在问题处。
      E_NOTICE
      这个常式为发生不寻常但不一定是错误处。例如存取一个不存在的变量。
      这些 E_ 开头形式的常量,可以参考 error_reporting() 函数,有更多的相关说明。
      当然在程序写作时,以上的默认常量是不够用。define() 的功能可以让我们自行定义所需要的常量。见下例




  • 相关阅读 更多 +
    排行榜 更多 +
    下载oe

    下载oe

    金融理财 下载
    易欧app官方下载安装

    易欧app官方下载安装

    金融理财 下载
    易欧app官方免费下载

    易欧app官方免费下载

    金融理财 下载