本文目录一览:
- 1、PHP是什么?
- 2、php为什么弃用了mysql
- 3、如何把php5.3版本升级到php5.4或者php5.5
- 4、php环境搭建问题!
- 5、PHP语言是什么语言,用来做什么的?
- 6、PHP自定义门面以后显示错误?
PHP是什么?
PHP(中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:
Adabas 、D、 DBA、dBase 、dbm 、filePro 、Informix 、InterBase、mSQL 、Microsoft SQL Server、·MySQL、Solid、Sybase、 Oracle 、PostgreSQL
而在Internet上它也支持了相当多的通讯协议 (protocol),包括了与电子邮件相关的 IMAP,POP3;网管系统 SNMP;网络新闻NNTP;帐号共用 NIS;全球信息网HTTP及Apache服务器;目录协议LDAP以及其它网络的相关函数。
扩展资料:
PHP的特性包括:
1、PHP独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
2、PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。
3、PHP支持几乎所有流行的数据库以及操作系统。
4、PHP可以用C、C++进行程序的扩展。
参考资料:
百度百科–PHP
php为什么弃用了mysql
PHP提供了三种不同的api连接到MySQL,这三种api是:mysql, mysqli以及PDO扩展。MySql函数是非常受欢迎的,但是官方团队并不鼓励再使用它们。在php手册里边,当你看到关于Mysql的函数,会发现都标有红色的标志,那意味着它们已经被弃用了。弃用ext/mysql函数不仅安全,而且使用其他数据库查询方法可以同样具有MySQL函数的所有功能。更好的方法是使用PDO代替ext/mysql函数。
以下是PHP里不应该再使用mysql函数的3大原因:
1、mysql函数已在PHP5.5中正式弃用,并将在PHP7中被删除。
2、mysql函数缺少面向对象的接口。
3、mysql函数不支持以下特性:
不支持非阻塞连续获取
不支持异步查询
不支持参数化查询
不支持存储过程
不支持多个语句
不支持在MySQL 5.1的中所有功能
不支持加密(SSL)
不支持压缩
不支持完整的字符集
如何把php5.3版本升级到php5.4或者php5.5
查看官方手册php5.3到5.4的升级注意事项,更改代码,上线测试。
php环境搭建问题!
哥,这里不给放链接的。。。。
win7 64bit
一、相关准备:
Apache软件:httpd-2.4.10-win64-VC11.zip
PHP软件:php-5.5.17-Win32-VC11-x64.zip
MySQL软件:mysql-5.6.21-winx64.zip
编译支持环境: vcredist_x64.exe(VC11)(先安装)
运行环境目录:
C:\myenv\apache (Apache)
C:\myenv\php (PHP)
C:\myenv\mysql (MySQL)
C:\myenv\sessiontmp (运行期间session存放目录,可读写)
C:\myenv\ fileuploadtmp (运行期间PHP文件上传存放目录,可读写)
二、安装Apache服务
1、解压httpd-2.4.10-win64-VC11.zip变重命名文件夹为apache,将其复制到C:\myenv\目录下。
2、编辑C:\myenv\apache\conf\httpd.conf配置文件,主要配置事项如下,红色字体代表新增:
ServerRoot “c:/myenv/apache”
Listen 80
#加载PHP模块
LoadModule php5_module C:/myenv/php/php5apache2_4.dll
PHPIniDir “C:/myenv/php” (注意留一个空格)
ServerAdmin 469085313@qq.com
ServerName 127.0.0.1:80
DocumentRoot “c:/myenv/apache/htdocs”
DirectoryIndex index.php index.html
ScriptAlias /cgi-bin/ “c:/myenv/apache/cgi-bin/”
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
3、启动Apache服务
管理员身份启动cmd.exe程序
Start apache in a DOS commdline:
httpd.exe
Install as a service:
httpd.exe -k install
Run ApacheMonitor:
Double click ApacheMonitor.exe
4、测试Apache是否正常服务:
三、安装PHP服务插件
1、解压php-5.5.17-Win32-VC11-x64.zip变重命名文件夹为php,将其复制到C:\myenv\目录下。
2、将C:\myenv\php\php.ini-development配置文件重命名为php.ini配置文件,打开php.ini文件,做如下的配置操作:
;On windows下面的;extension_dir = “ext”
修改为如下:
extension_dir = “C:/myenv/php/ext” 前面的分号;去掉。
开启相应的扩展库功能,比如php_mysql.dll等,即将
extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_xmlrpc.dll
这些extension前面的分号;去掉。(;代表注释掉的意思)
配置session文件在服务器上的保存目录
;session.save_path = “/tmp” 前面的分号;去掉
或修改为session.save_path = “C:/myenv/sessiontmp”(前面的分号;去掉)
配置PHP的文件上传功能
;upload_tmp_dir =
或修改为upload_tmp_dir = “C:/myenv/fileuploadtmp”(前面的分号;去掉)
配置时间区域
;date.timezone =
修改为date.timezone = Asia/Shanghai (前面的分号;去掉)
PHP5默认MySQL是关闭的,要将C:\myenv\php文件夹下的libenchant_myspell.dll和C:\myenv\php\ext文件夹里的php_mysql.dll考到C:/Windows/System32里面;
3、测试Apache+php是否安装成功:
(见本文末尾有代码)
四、安装MySQL服务
1、解压mysql-5.6.21-winx64.zip变重命名文件夹为mysql,将其复制到C:\myenv\目录下。
2、将C:\myenv\mysql\my-default.ini配置文件重命名为my.ini配置文件,打开my.ini文件,做如下的配置操作:
[client]
#设置mysql客户端默认字符集
default-character-set = utf8
[mysqld]
#设置mysql的安装目录
basedir = C:\myenv\mysql
#设置mysql数据库的数据存放目录
datadir = C:\myenv\mysql\data
#设置3306端口
port = 3306
#设置允许最大连接数
max_connections = 200
#设置服务器端字符集
character-set-server = utf8
#创建新表时将使用的默认存储引擎
default-storage-engine = INNODB
# server_id = …..
3、启动MySQL
以管理员身份运行cmd.exe,将目录切换到mysql的bin目录下,输入:Mysqld –install,如下图所示
出现安装OK后。接着输入net start mysql 启动服务
以上表示mysql服务启动成功
设置密码root用户的密码为root15w05
在cmd中输入:mysql –u root,如下图
mysqluse mysql;
mysqlupdate user set password=PASSWORD(“root15w05”) where user=’root’;
mysqlflush privileges;
mysqlquit;
root用户密码修改成功!
4、测试Apache+PHP+MySQL运行环境
http:/localhost/testdbconn.php
PHP语言是什么语言,用来做什么的?
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP原始为Personal Home Page的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。PHP于1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。
在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档。并且发布了PHP1.0!在这的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性。比如循环语句和数组变量等等;在新的成员加入开发行列之后,Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开发布,希望可以透过社群来加速程序开发与寻找错误。这个发布的版本命名为 PHP 2,已经有 PHP 的一些雏型,像是类似 Perl的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程序语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。PHP/FI加入了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI。
ISAPI筛选器
在1997年,任职于 Technion IIT公司的两个以色列程序设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的剖析器,成为 PHP 3 的基础。而 PHP 也在这个时候改称为PHP:Hypertext Preprocessor。经过几个月测试,开发团队在1997年11月发布了 PHP/FI 2。随后就开始 PHP 3 的开放测试,最后在1998年6月正式发布 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 发布后开始改写PHP 的核心,这个在1999年发布的剖析器称为 Zend Engine,他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。
在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式发布,2004年7月13日则发布了PHP 5,PHP 5则使用了第二代的Zend Engine。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。PHP 4已经不会继续
PHP
更新,以鼓励用户转移到PHP 5。
2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。
PHP最新稳定版本:5.4.30(2013.6.26)
PHP最新发布的正式版本:5.5.14(2014.6.24)
PHP最新测试版本:5.6.0 RC2(2014.6.03)
2013年6月20日,PHP开发团队自豪地宣布推出PHP 5.5.0。此版本包含了大量的新功能和bug修复。需要开发者特别注意的一点是不再支持 Windows XP 和 2003 系统。
2014年10月16日,PHP开发团队宣布PHP 5.6.2可用。四安全相关的错误是固定在这个版本,包括修复cve-2014-3668,cve-2014-3669和cve-2014-3670。所有的PHP 5.6鼓励用户升级到这个版本
更多尽在;fr=index
PHP自定义门面以后显示错误?
如果您是PHP老手,当然知道当PHP脚本出错时发生了什么事情。此时PHP解析器将在屏幕上给出错误信息,如 Fatal error: Call to undefined function on line 19 –,因此程序在此处终止。这个信息会吓到客户,他可能立即打电话和你进行咨询。
幸运的是,这里有解决办法。PHP拥有内置工具,可以让开发人员捕捉脚本错误然后将它们转到自定义的错误处理器。此时则可以对处理器进行编程显示更多关于错误的详细信息。还可以将错误写入文件或数据库以采取补救措施。有时候还可以对处理器编写程序忽略错误消息。
本文中,我将阐述如何使用PHP的错误处理API构建用户自定义的错误处理器,并且说明如何以简单而友好的方式显示和管理脚本的错误信息。
错误类型和报告级别
我们从最基本的开始。PHP有三种最基本的错误类型,从低级到高级分别为:注意、警告和错误(或致命错误)。通常情况下,注意和警告不会终止程序;但是致命错误则是危险故障(例如,调用一个没有定义的函数或参考一个不存在的对象),将导致程序中断。这些错误有可能在启动、解析、编译或运行时发生。
关键字如E_NOTICE, E_ERROR等用于表明错误的不同类型和等级。在PHP手册上可以获得它们的详细信息列表。
脚本阶段错误显示由error_reporting()函数进行控制。这一函数针对不同的错误等级设置不同的参数。表A给出了使用此函数报告警告和致命错误的脚本程序。
表A
?php
// display warnings and errors
error_reporting(E_WARNING | E_ERROR);
// this will generate a notice, which will never be displayed
echo $undefinedVar;
// this will generate a fatal error, which will be displayed
callUndefFunc();
?
将表B中的代码与上面的进行比较发现,Listing B中隐藏错误信息甚至隐藏致命信息,使得错误信息不会被显示出来。
表B
?php
// turn off error display
// no errors will be displayed
error_reporting(0);
// this will generate a notice
echo $undefinedVar;
// this will generate a fatal error
callUndefFunc();
?
表C中的代码将所有错误信息甚至简单的注意事项都显示出来:
表C
?php
// all errors will be displayed
error_reporting(E_ALL);
// this will generate a notice
echo $undefinedVar;
// this will generate a fatal error
callUndefFunc();
?
如以上3个例子所示,error_reporting()函数在控制错误发生时,在屏幕上显示内容非常重要。这里的关键字是displayed,其表达的意思是错误不被显示而不是错误没有发生。因此,发生致命错误时(例如不正确的函数调用),程序将被终止;但是,此时没有任何消息显示给用户。
下面的例子(表 D)说明了这种情况:
表D
?php
// no errors will be displayed
error_reporting(0);
// start a task
echo “Starting task…”;
// call an undefined function
// a fatal error occurs during task processing
callMe();
// end the task
echo “Successfully completed task…”;
?
在表D中,在调用echo()函数时发生了致命错误,程序执行时到这点被终止,但是却没有任何错误消息给出,用户不知道这种情况还以为程序在正确运行。下面的结论是非常明显的:不给出错误报告非常危险,因为不论过程是否完成它常导致不正确的结论。
注意:调用不带任何参数的error_reporting()将返回当前的错误报告等级。
自定义错误处理器
很明显,隐藏错误报告是不正确的,你肯定想知道有什么其他办法加以改进。自定义错误处理器就是一个很好的能取代PHP默认错误处理系统的解决方法。自定义错误处理器可以以任何方式设置处理错误信息,包括信息如何显示。
PHP函数中,完成这一功能的是set_error_handler()函数。错误发生时,此函数被自动调用,然后给出4个参数:错误代码、错误消息、发生错误的脚本名称和错误出现的行,此函数对错误管理负责。
表E给出一个简单例子:
表E
?php
// define custom handler
set_error_handler(‘myHandler’);
// custom handler code
function myHandler($code, $msg, $file, $line) {
echo “Just so you know, something went wrong at line $line of your script $file. The system says that the error code was $code, and the reason for the error was: $msg. Sorry about this!”;
}
// generate a notice
echo $undefVar;
?
当运行此脚本的时候,会出现下面的信息:
Just so you know, something went wrong at line 11 of your /dev/error1.php. The system says that the error code was 8, and the reason for the error was: Undefined variable: undefVar. Sorry about this!
此时,PHP的默认错误处理器被用户定义的myHandler()函数所取代,$undefVar变量被激活,PHP通知未定义变量的信息,此信息在运行时引擎产生,然后传递给myHandler()函数,同时错误发生的地址也传递给此函数。然后myHandler()函数输出友好信息解释错误。
注意:错误和致命错误很重要,它们会绕过自定义错误处理器,然后以PHP默认的错误处理机制进行显示。显示这些信息可使用前面讨论的标准error_reporting()函数进行控制。
例1:动态错误页面和e-mail警报
表F给出了另一个范例,当发生错误时,将动态产生HTML错误页面,并且通过e-mail向Web管理员进行报告。
表F
?php
// define custom handler
set_error_handler(‘myHandler’);
// custom handler code
function myHandler($code, $msg, $file, $line, $context) {
// print error page
echo “htmlhead/headbody”;
echo “h2 align=centerError!/h2”;
echo “font color=red size=+1”;
echo “An error occurred while processing your request. Please visit our a href=;home page/a and try again.”;
echo “/font”;
echo “/body/html”;
// email error to admin
$body = “$msg at $file ($line), timed at ” . date (“d-M-Y h:i:s”, mktime());
$body .= “nn” . print_r($context, TRUE);
mail (“webmaster@domain.dom”, “Web site error”, $body);
// halt execution of script
die();
}
// generate a notice
echo $undefVar;
?
这里,自定义的错误处理器在遇到错误时动态产生HTML错误页面。此错误信息也能被e-mail信息捕获,然后通过PHP内置的mail()函数发送给管理员。
这里出现了myHandler()函数的一个新参数$context。这是myHandler()函数的第五个参数,是可选项。它包含了当前变量状态的快照。包括对管理员有用的上下文信息,有利于减少调试时间。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/293169.html