php命令行模式
㈠ php 服务器变量$_SERVER 服务器环境变量 $_ENV
PHP $_SERVER 变量
$_SERVER 是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。
$_SERVER 包含着众多的信息,你可以尝试直接打印它:
print_r($_SERVER);
$_SERVER 数组元素
更多情况下,我们只需要 $_SERVER 数组中的某些元素(数组单元)。$_SERVER 数组包含的元素如下:
页面程序相关
$_SERVER[‘PHP_SELF’]:相对于网站根目录的路径及 PHP 程序名称,与 document root 相关。
$_SERVER[‘HTTP_REFERER’]:链接到当前页面的前一页面的 URL 地址。
$_SERVER[‘SCRIPT_NAME’]:相对于网站根目录的路径及 PHP 程序文件名称 。
$_SERVER[‘REQUEST_URI’]:访问此页面所需的 URI 。
$_SERVER[‘SCRIPT_FILENAME’]:当前运行 PHP 程序的绝对路径及文件名。
$_SERVER[‘PATH_TRANSLATED’]:当前 PHP 程序所在文件系统(不是文档根目录)的基本路径。
$_SERVER[‘QUERY_STRING’]:查询(query)的字符串(URL 中第一个问号 ? 之后的内容但不包括 # 后面的内容)。
$_SERVER[‘argv’]:传递给当前 PHP 程序的参数。
$_SERVER[‘argc’]:命令行模式下,包含传递给程序的命令行参数的个数。
$_SERVER[‘REQUEST_TIME’]:请求开始时的时间戳,从 PHP 5.1.0 起有效。
$_SERVER[‘REQUEST_METHOD’]:访问页面时的请求方法,例如:“GET”、“HEAD”,“POST”或“PUT”。
$_SERVER[‘HTTP_ACCEPT’]:当前请求的 Accept: 头信息的内容。
$_SERVER[‘HTTP_ACCEPT_CHARSET’]:当前请求的 Accept-Charset: 头信息的内容。例如:“iso-8859-1,*,utf-8”。
$_SERVER[‘HTTP_ACCEPT_ENCODING’]:当前请求的 Accept-Encoding: 头信息的内容。例如:“gzip”。
$_SERVER[‘HTTP_ACCEPT_LANGUAGE’]:当前请求的 Accept-Language: 头信息的内容。例如:“zh-cn”。
$_SERVER[‘HTTP_CONNECTION’]:当前请求的 Connection: 头信息的内容。例如:“Keep-Alive”。
$_SERVER[‘HTTP_HOST’]:当前请求的 Host: 头信息的内容。
$_SERVER[‘HTTPS’]:如果 PHP 程序是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER[‘PHP_AUTH_DIGEST’]:当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP 头内容(以便作进一步的认证操作)。
$_SERVER[‘PHP_AUTH_USER’]:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER[‘PHP_AUTH_PW’]:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER[‘AUTH_TYPE’]:当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
服务器端相关
$_SERVER[‘DOCUMENT_ROOT’]:当前运行 PHP 程序所在的文档根目录,在服务器配置文件中定义。
$_SERVER[‘GATEWAY_INTERFACE’]:服务器使用的 CGI 规范的版本,例如:“CGI/1.1”。
$_SERVER[‘SERVER_ADDR’]:当前运行 PHP 程序所在的服务器的 IP 地址。
$_SERVER[‘SERVER_NAME’]:当前运行 PHP 程序所在的服务器的名称。
$_SERVER[‘SERVER_ADMIN’]:Apache 服务器配置文件中的 SERVER_ADMIN 参数。
$_SERVER[‘SERVER_PORT’]:服务器所使用的端口。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER[‘SERVER_SIGNATURE’]:包含服务器版本和虚拟主机名的字符串。
$_SERVER[‘SERVER_SOFTWARE’]:服务器标识的字串,在响应请求时的头信息中给出。
$_SERVER[‘SERVER_PROTOCOL’]:请求页面时通信协议的名称和版本,例如:“HTTP/1.0”。
其他杂项
$_SERVER[‘HTTP_USER_AGENT’]:当前请求的 User-Agent: 头信息的内容,该字符串表明了访问该页面的用户代理的信息。
$_SERVER[‘REMOTE_ADDR’]:正在浏览当前页面用户的 IP 地址。
$_SERVER[‘REMOTE_HOST’]:正在浏览当前页面用户的主机名。
$_SERVER[‘REMOTE_PORT’]:用户连接到服务器时所使用的端口。
注意,如果以命令行方式运行 PHP,上面列出的元素几乎没有有效的(或是没有任何实际意义的)。
PHP $_ENV 变量
$_ENV 是一个包含服务器端环境变量的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。
$_ENV 只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接打印它:
print_r($_ENV);
限于篇幅,在此不再列出打印的结果,且不同的服务器上,打印出的结果可能是完全不同的。
$_ENV 数组元素
$_ENV 数组中的元素(数组单元)随服务器环境不同而有较大差异,所以无法像 $_SERVER 那样列出完整的列表。以下是 $_ENV 数组包含的比较通用的元素:
$_SERVER[‘PATH’]:环境变量 PATH 路径。
$_SERVER[‘CLASSPATH’]:系统 CLASSPATH 路径。
$_SERVER[‘LIB’]:系统 LIB 库路径。
$_SERVER[‘INCLUDE’]:系统 Include 路径,注意与 PHP 的包含路径是不一样的。
$_SERVER[‘OS’]:操作系统类型。
$_SERVER[‘LANG’]:系统语言,如 en_US 或 zh_CN。
$_SERVER[‘PWD’]:当前工作目录。
$_SERVER[‘TEMP’]:系统 TEMP 路径。
$_SERVER[‘AP_PARENT_PID’]:当前进程 ID 号。
$_SERVER[‘NUMBER_OF_PROCESSORS’]:系统 CPU 数目。
$_ENV 为空的原因及解决办法
如果打印输出 $_ENV 为空,可以检查一下 php.ini 的配置:
variables_order = "EGPCS"
上述配置表示 PHP 接受的外部变量来源及顺序,EGPCS 是 Environment、Get、Post、Cookies 和 Server 的缩写。如果 variables_order 的配置中缺少 E ,则 PHP 无法接受环境变量,那么 $_ENV 也就为空了。
㈡ php有几种运行模式最常用的是那种
php一共分为五大运行模式:包括cgi 、fast-cgi、cli、isapi、apache 模块的 DLLCGI
CGI即通用网关接口(Common Gateway Interface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执 行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。
CGI方式在遇到连接请求(用户 请求)先要创建cgi的子进程,激活一个CGI进程,然后处理请求,处理完后结束这个子进程。这就是fork-and-execute模式。所以用cgi 方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。都会当用户请求数量非常多时,会大量挤占系统的资源如内 存,CPU时间等,造成效能低下。CGI-FCGI
fast-cgi 是cgi的升级版本,FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一 次。PHP使用PHP-FPM(FastCGI Process Manager),全称PHP FastCGI进程管理器进行管理。FastCGI的工作原理
1、Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Mole)
2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。
3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
4、 FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。在上述情况中,你可以想象CGI通常有多慢。每一个Web 请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的 好处是,持续数据库连接(Persistent database connection)可以工作。APACHE2HANDLER
PHP作为Apache模块,Apache服务器在系统启动后,预先生成多个进程副本驻留在内存中,一旦有请求出 现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计 算机中等待下次请求。对于客户浏览器的请求反应更快,性能较高。
apache模块的DLL:
该运行模式是我们以前在windows环境下使用apache服务器经常使用的,而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。(是apache在CGI的基础上进行的一种扩展,加快PHP的运行效率)ISAPI:
ISAPI即Internet Server Application Program Interface,是微软提供的一套面向Internet服务的API接口
一个ISAPI的DLL,可以在被用户请求激活后长驻内存,等待用户的另一个请求,还可以在一个DLL里设置多个用户请求处理函数,此外,
ISAPI的DLL应用程序和WWW服务器处于同一个进程中,效率要显着高于CGI。(由于微软的排他性,只能运行于windows环境)cli:
cli是php的命令行运行模式,大家经常会使用它,但是可能并没有注意到(例如:我们在linux下经常使用 “php -m”查找PHP安装了那些扩展就是PHP命令行运行模式;有兴趣的同学可以输入php -h去深入研究该运行模式)总结:
每种运行模式都有自己的优缺点,没有绝对的好与坏,主要是看大家处理何种环境。
㈢ PHP的功能有哪些
PHP 能做任何事。PHP 主要是用于服务端的脚本程序,因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域:
(1)服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。需要在运行 web 服务器时,安装并配置 PHP,然后,可以用 web 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。如果只是实验 PHP 编程,所有的这些都可以运行在自己家里的电脑中。请查阅安装一章以获取更多信息。
(2)命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅 PHP 的命令行模式以获取更多信息。
编写桌面应用程序。对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通 PHP,并且希望在客户端应用程序中使用 PHP 的一些高级特性,可以利用 PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。
(3)PHP 能够用在所有的主流操作系统上,包括 Linux、Unix 的各种变种(包括 HP-UX、Solaris 和 OpenBSD)、microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已经支持了大多数的 web 服务器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。对于大多数的服务器,PHP 提供了一个模块;还有一些 PHP 支持 CGI 标准,使得 PHP 能够作为 CGI 处理器来工作。
㈣ PHP是什么类型的文件,该如何使用
PHP,即“PHP: Hypertext Preprocessor”,是一种广泛用于 Open Source(开放源代码)的尤其适合 Web 开发并可以嵌入 HTML 的多用途脚本语言。它的语法接近 C,Java 和 Perl,而且容易学习。该语言的主要目标是让 Web 开发人员快速的书写动态生成的网页.
PHP 代码是运行在服务端的.
它的使用需要你的服务器安装php服务.
PHP 能做什么?
PHP 能做任何事。PHP 主要是用于服务端的脚本程序,因此您可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域。
服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作您需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、WEB 服务器和 WEB 浏览器。您需要在运行 WEB 服务器时,安装并配置 PHP,然后,可以用 WEB 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。请查阅“安装”一章以获取更多信息。
命令行脚本。您可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,您仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅“PHP 的命令行模式”以获取更多信息。
编写客户端的 GUI 应用程序。对于基于窗口式的应用程序来说,PHP 或许不是一种最好的语言,但是如果您非常精通 PHP,并且希望在您的客户端应用程序中使用 PHP 的一些高级特性,您可以利用 PHP-GTK 来编写这些程序。用这种方法,您还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。如果您对 PHP-GTK 感兴趣,请访问其网站以获取更多信息。
PHP 能够用在所有的主流操作系统上,包括 Linux、Unix 的各种变种(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已经支持了大多数的 WEB 服务器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。对于大多数的服务器,PHP 提供了一个模块;还有一些 PHP 支持 CGI 标准,使得 PHP 能够作为 CGI 处理器来工作。
综上所述,使用 PHP,您可以自由地选择操作系统和 WEB 服务器。同时,您还可以在开发时选择使用面对过程和面对对象,或者两者混和的方式来开发。尽管 PHP 目前的版本还没有支持 OOP 所有的标准,但很多代码仓库和大型的应用程序(包括 PEAR 库)仅使用 OOP 代码来开发。
使用 PHP,您并不局限于输出 HTML。PHP 还能被用来动态输出图像、PDF 文件甚至 Flash 动画(使用 libswf 和 Ming)。您还能够非常简便的输出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能够自动生成这些文件,在服务端开辟出一块动态内容的缓存,可以直接把它们打印出来,或者将它们存储到文件系统中。
PHP 最强大最显着的特性之一,是它支持很大范围的数据库。您会发现利用 PHP 编写数据库支持的网页简单得难以置信。目前,PHP 支持如下数据库:
Adabas D Ingres Oracle (OCI7 and OCI8)
dBase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro (read-only) mSQL Solid
Hyperwave Direct MS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm
我们同时还有一个 DBX 扩展库使得您可以自由的使用该扩展库支持的任何数据库。另外,PHP 还支持 ODBC,即 Open Database Connection Standard(开放数据库连接标准),因此您可以连接任何其它支持该世界标准的数据库。
PHP 还支持利用诸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 环境)等不计其数的协议的服务。您还可以开放原始网络端口,使得任何其它的协议能够协同工作。PHP 支持和所有 WEB 开发语言之间的 WDDX 复杂数据交换。关于相互连接,PHP 已经支持了对 Java 对象的即时连接,并且可以将他们自由的用作 PHP 对象。您甚至可以用我们的 CORBA 扩展库来访问远程对象。
PHP 具有极其有效的文本处理特性,支持从 POSIX 扩展或者 Perl 正则表达式到 XML 文档解析。为了解析和访问 XML 文档,我们支持了 SAX 和 DOM 标准。您可以使用我们的 XSLT 扩展库来转换 XML 文档。
如果您将 PHP 用于电子商务领域,您会发现其 Cybercash payment、CyberMUT、VeriSign Payflow Pro 以及 CCVS 函数对于您的在线交易程序来所是非常有用的。
㈤ windows下如何实现在命令行下运行PHP文件
window下,假设php安装目录为c:\program files\php5\,那么使用命令窗口进入到该路径下,敲入php hello.php回车,则会执行当前路径下的hello.php文件,如果要指向其他路径下php文件,可以在php 路径/hello.php ,这种形式称为CLI模式,我们平时通过浏览器看到的那种称为CGI模式,至于传递参数,php文件在cli模式下,直接通过在文件名称后面接参数,多个参数中间用空格隔开,在php文件里面是通过两个变量来获取参数的,一个是$argv,一个是$argc,前者是传递参数的数组,默认第一个为php文件的名称;后者为$argv的数组个数。
linux下,一般程序安装都会安装在/usr/bin/php下面,可以通过man php查看一下,如果有信息说明可以使用,使用方法类似于window下。如果前面这步成立,那么你可以直接 php php文件 来运行php文件,如果man php没有信息,则说明当前php执行文件没有在环境路径里面,可以修改环境路径包含php路径,也可以类似于window进入php路径,在执行 php php文件。其他类似于window下。
㈥ 如何在cmd命令行下运行php
把你安装后的php.exe文件路径添加到系统PATH下,就行了
㈦ thinkphp 命令行模式执行,如何才能执行数据库的操作
在本地创建新的Git仓库(连接别人的代码和创建自己的代码库)
mkdir andbase
cd andbase
git init
touch README.md
git add README.md
git commit -m 'hello world'
git remote add origin [email protected]:Liutos/foobar.git
将主分支修改推送到服务器
㈧ php 命令行模式下redis 无法使用
php
命令行模式使用的php.ini
可能和正常的不是一个,所以,你需要在命令行下执行。
php --ini
看一下加载的ini是否和网页的是一个。如果是一个的话,还有看一下
php.ini
里 extension_dir
的路径,改为绝对路径。
否则将正常的替换到上图
Loaded
Configuration
File
目录。