php51
㈠ php 处理表单里面的 单引号
php.ini 有个配置项,magic_quotes_gpc,值为on时就会自动在sql敏感字符前面加“\”注释(比如 单引号 ' )
你可以在php.ini中设成off禁用,或者在php中判断一下
if (!get_magic_quotes_gpc()) {
// 处理字符串,自动添加“\”
$_POST['message'] = addslashes($_POST['message']);
}
else
{
// 不做任何处理
}
㈡ linux下php如何配置
通过yum安装最方便了,不需要配置那么多.
"extension_dir=" 一般不要写,除非你的网站在运行了,需要在线添加外置模块,才用得到。
LoadMole php5_mole 通过RPM安装,默认就给你配好了,你也不需要配。
1. 安装Apahce, PHP, MySQL以及php连接mysql库组件。
yum -y install httpd php mysql mysql-server php-mysql
2. 安装apache扩展
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
让apache更好的支持其他的软件。
3. 安装php的扩展
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-mcrypt
4. 安装MySQL的扩展
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
更好地实现mysql的功能。
5. 配置开机启动服务
/sbin/chkconfig httpd on
/sbin/service httpd start
/sbin/service mysqld start
6. 简单配置文件:
apache的配置文件是/etc/httpd/conf下
moles放在/usr/lib/httpd下
php的配置文件在/etc/php.d/下 和/etc/php.ini
php的moles放在/usr/lib/php/moles下
㈢ php在5.1.*和5.2.*之间pdo数据库操作中的不同
数据库连接代码都一样.
?
$protol = 'mysql:host=localhost;dbname=test';
$username = 'monty';
$passwd = '0818';
$dbh = new PDO($protol, $username, $passwd);
以下是一些测试。注意里面的SQL和for或者foreach语句!
测试1(用key值进行绑定)
?
$stmt = $dbh->prepare('select * from t1 where name=:name');
$params = array();
$params['name'] = 'rentao';
foreach($params
as $k=>$v){
$stmt->bindParam($k, $v);
}
$stmt->execute();
$item = array();
while($row
= $stmt->fetch(PDO::FETCH_ASSOC)){
var_mp($row);
}
$stmt = null;
$dbh = null;
总结
PHP在使用PDO做数据库预编译操作的时候,尽量避免使用limit, order by, group by
做预编译处理。绑定变量我们尽量使用统一标准,要不然都使用“?”,要不然使用“:key”。
有用的命令,我在php5.1.*进行测试,测试完了,我通过scp把文件传输到php5.2.*服务器上
?
scp -P9888 index.php [email protected]:/home/rentao
㈣ 为什么运行PHP就会出现404错误
PHP没有完全安装正确造成的。
简单修正方法
4.Internet 服务管理器---网站(右键)---属性---主目录---配置---添加---扩展名为 .php ,单击“浏览”将可执行文件指向 php5isapi.dll 所在路径,如:D:\php\php5isapi.dll
5.Internet 服务管理器---Web 信息管理器---添加一个新的web扩展程序---输入:PHP ,再将可执行文件指向 php5isapi.dll 所在路径---允许
5.将以下代码复制到一个文本文件内,保存为.bat文件 并运行
net stop w3svc
net stop iisadmin
net start w3svc
6.新建一个网站 在网站目录下建立a.php 内容为
<?
phpinfo();
?>
如果不行的话就重新安装下PHP吧 下面说一下详细的安装方法
如何在IIS上集成php、
这里我就不说cgi了,因为cgi需要系统权限过高,不建议虚拟主机使用,而且cgi程序也很少有人用到,楼主说的要iis6.0结合php
安装需要:windows2003系统 安装有IIS6.0+php-5.1.1-Win32.zip+mysql最新版本+zendO 3.20+phpmysamin2.8
一、安装 PHP
1.php-5.1.2-Win32.zip,直接全部接压至D:\php\目录即可得PHP文件存放目录D:\php\
2.再将PHP5为D:\php\和子文件夹ext下的所有dll文件拷到c:\Windows\system32(win2000系统为 c:/winnt/system32/)下,覆盖已有的dll文件
3.将D:\PHP目录下的php.exe、php-win.exe和php.ini-dist三个文件拷到C:\Windows ( Windows 2000 下为 C:\WINNT)下; 将C:\Windows\php.ini-dist改名为php.ini,然后用记事本打开,利用记事本的查找功能搜索
register_globals = Off
,将 Off 改成 On ;
extension_dir =
,并将其路径指到你的 PHP 目录下的 extensions 目录,比如:extension_dir = "D:\php\ext" ;
将以下内容前面的;去掉
;extension=php_dbase.dll
可选
;extension=php_gd2.dll
这个是用来支持GD库的,一般需要,必选
;extension=php_ldap.dll
可选
;extension=php_mbstring.dll
这不选一般用PHPMYADMIN会出红色提示,故必选
;extension=php_mssql.dll
这个是用来支持MSSQL的,可选
;extension=php_mysql.dll
这个是用来支持MYSQL的,要支持MYSQL必选
4.Internet 服务管理器---网站(右键)---属性---主目录---配置---添加---扩展名为 .php ,单击“浏览”将可执行文件指向 php5isapi.dll 所在路径,如:D:\php\php5isapi.dll
5.Internet 服务管理器---Web 信息管理器---添加一个新的web扩展程序---输入:PHP ,再将可执行文件指向 php5isapi.dll 所在路径---允许
5.将以下代码复制到一个文本文件内,保存为.bat文件 并运行
net stop w3svc
net stop iisadmin
net start w3svc
6.新建一个网站 在网站目录下建立a.php 内容为
<?
phpinfo();
?>
二、安装mysql
对于MySQL最新版,解压,双击执行 Setup.exe 一路Next下一步,选择安装目录为D:\MySQL和安装方式为Custom自定义安装,再一路Next下一步,最后一步,跳过即可
开始---程序---MYSQL5.0---进行配置mysql并设置mysql密码
三、安装zendO3.2.0
下载后得到 ZendOptimizer-3.2.0-Windows-i386.exe ,直接双击安装即可,安装过程要你选择 Web Server 时,选择 IIS ,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 php.ini ,点确定后安装完成。我这里安装到D:\php\Zend
以下两步的目录根据你自己的默认WEB站点目录来选,当然也可以选择到D:\php\Zend目录
Zend Optimizer 的安装向导会自动根据你的选择来修改 php.ini 帮助你启动这个引擎。下面简单介绍一下 Zend Optimizer 的配置选项。以下为本人安装完成后 php.ini 里的默认配置代码(分号后面的内容为注释):
zend_extension_ts="D:\php\Zend\lib\ZendExtensionManager.dll"
;Zend Optimizer 模块在硬盘上的安装路径。
zend_extension_manager.optimizer_ts="D:\php\Zend\lib\Optimizer-3.2.0"
;优化器所在目录,默认无须修改。
zend_optimizer.optimization_level=1023
;优化程度,这里定义启动多少个优化过程,默认值是 15 ,表示同时开启 10 个优化过程中的 1-4 ,我们可以将这个值改为 1023 ,表示开启全部10个优化过程。
调用phpinfo()函数后显示:
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.9, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v3.2.0, Copyright (c) 1998-2006, by Zend Technologies 则表示安装成功。
四.安装GD库
这一步在前面PHP.INI配置中去掉“;extension=php_gd2.dll”前面的;实际上已经安装好了~
[在php.ini里找到"extension=php_gd2.dll"这一行,并且去掉前面的分号,gd库安装完成,用echophpinfo();测试是否成功!
五、安装 phpMyAdmin:
下载得到 phpMyAdmin-2.8.0.zip ,将其解压到D:\php\或者 IIS 根目录,改名phpMyAdmin-2.8.0为phpMyAdmin
1。找到 $cfg['PmaAbsoluteUri']
在后面的''内把phpMyAdmin的地址打上,修改后如 $cfg['PmaAbsoluteUri'] = 'http://www.szbar.com/phpMyAdmin';
2。找到 $cfg['blowfish_secret']
在后面的''内随便输入一些数字或字母,修改后如 $cfg['blowfish_secret'] = 'szbar';
3。找到 $cfg['Servers'][$i]['auth_type']
后面的''内默认为config,修改为cookie,修改后如 $cfg['Servers'][$i]['auth_type'] = 'cookie';
4。找到 $cfg['Servers'][$i]['user']
后面的''内默认是root,去掉,修改后如 $cfg['Servers'][$i]['user'] = '';
问:配置文件现在需要绝密的短语密码(blowfish_secret)。怎么解决?
答:在blowfish_secret设置的就是安装mysql时的密码!
完成 给我加分!~~~~~~~~~~~~~~~~~~
㈤ 如何使用PHP的交互式运行环境
从PHP 5.1.0开始,CLI SAPI提供了一个交互式命令行工具(Interactive shell),这个交互式PHP shell是通过使用 –with-readline 编译选项集成到php内核里的。使用这个交互式shell,你可以直接在命令行窗口里输入PHP并直接获得输出结果。
开启PHP的交互式shell模式,需要使用 -a 参数。下面是使用交互式shell的一些例子。
$ php -a
Interactive shell
php > echo 5+8;
13
php > function addTwo($n)
php > {
php { return $n + 2;
php { }
php > var_mp(addtwo(2));
int(4)
php >
在交互式shell里,你可以使用 tab 键对函数名,内置变量,类名,静态方法等进行自动补全操作。
需要注意的是,Interactive Shell 和 Interactive Mode 并不是一个东西,尽管名称和功能都很相似。
如果你输入 php -a ,得到的回应是 ‘Interactive Shell’ 并跟随着 ‘php>’ 提示符,那你使用的就是交互式shell。如果你得到的回应是 ‘Interactive mode enabled’ ,说明你的PHP并不支持交互式shell,上面介绍的用法也不实用于你。
但也不用担心,Interactive mode(交互模式)也可以在命令行窗口里执行PHP代码,只是代码的执行方式有些区别。在PHP交互模式(Interactive mode)里,你在命令行窗口里输入PHP代码,代码不会立即执行,当你输入了所有PHP代码后,输入 Ctrl-Z (windows里),或输入 Ctrl-D (linux里),你输入的所有代码将会一次执行完成并输出结果。
在PHP交互模式(Interactive mode)里,跟交互式shell里不一样,你的代码需要以 <?php 开头,跟你的普通PHP文件里的写法一致。下面是在Windows里的使用例子。
C:\>php -a
Interactive mode enabled
<?php
echo "Hello, world!";
?>
^Z
Hello, world!
在Winidows里,没有交互式shell,只有Interactive mode。
㈥ php是
PHP 是一种流行的开放源代码的脚本语言。PHP早期的缩写是“Personal HomePage”,现在官方正式名称为“PHP: Hypertext Preprocessor”的递归缩写。
PHP主要用于服务器端应用程序及动态网页上,但是也可以用在命令列上执行,或是开发独立的窗口程序接口(GUI)
开发历史
1994年,加拿大籍的程序设计师Rasmus Lerdorf开发了一组以C语言为基础的CGI程序,目的是要取代一些用来维护他个人网站的Perl程序,不久之后,他把这些CGI程序公布并取名为"Personal Home Page Tools",这也是PHP名称的由来。Rasmus Lerdorf一直维护PHP语言直到PHP第二版,使用的解析引擎为PHP/FI。
[编辑] PHP 3
1997年,Tel Aviv 公司的Zeev Suraski 和 Andi Gutmans 改写了原本的解析引擎PHP/FI,并把PHP重新命名为"PHP: Hypertext Preprocessor"。在1998年公布了PHP 3提供大众下载测试,1999年两人在以色列成立了Zend Technologies公司来投入PHP的开发工作,并且开始制作下一代的解析引擎 - Zend引擎。
[编辑] PHP 4
2000年5月22日,以Zend引擎 1.0为解析引擎的PHP 4.0 发布。这也是PHP开始大受欢迎的版本,目前PHP 4还有在做安全性的更新,最新的版本是2006年九月发布的PHP 4.4.4版。
[编辑] PHP 5
2004年7月13日,以Zend引擎II为基础的PHP 5.0 发布,同时也加入了许多新特性:
更完整的面向对象支持:基本上到PHP 5之后PHP才算是比较完整的面向对象语言。
透过新的Zend引擎,提升了PHP执行的速度。
对MySQL数据库有更完整的支持。
更佳的XML支持。
内建SQLite数据库(但在PHP 5.1取消了内建,改用扩展函数库的方式)。
整合了SOAP的支持。
提供许多程序语言有的例外处理功能。
实验性的介绍新的数据库存取接口PDO(PHP Data Objects),在PHP5.1则开始缺省安装PDO。
最新的版本是2006年11月发布的5.2.0
[编辑] 应用
PHP主要应用在网页服务器,处理使用者的输入来产生网页。但是命令列脚本或是视窗程序接口(GUI)的开发也是PHP的主要应用范围
[编辑] 服务器端脚本语言
PHP最初就是设计成服务器端脚本语言,因此这也是PHP应用最广的部份。在此领域有许多其他的竞争者,例如ASP.NET、ColdFusion、JSP、Perl、Ruby on Rails等等。
在网络工业领域,PHP是LAMP架构的其中一部分,所谓的LAMP是指Linux、Apache、MySQL、以及PHP所组成的网络环境,提供了许多安全、可靠的网页应用程序。PHP目前已经是全世界最受欢迎的服务器端脚本语言,跨平台的特性更是让PHP广为流传,目前共有1800万台服务器安装有PHP。
[编辑] 命令列脚本
PHP也可以用命令列上执行来使用,例如分析纪录档、系统管理工作等。这些工作过去都是由一些其他的脚本语言例如Perl, Python, awk等来执行,PHP的在命令列上的使用则逐渐增加。
[编辑] 视窗程序接口(GUI)
透过和GUI函式库GTK+的结合,PHP也可以应用在视窗程序接口(GUI)的开发上,目前的应用还不普遍。
[编辑] 语法
Hello World程序
下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:
<?php
echo 'Hello World!';
?>
或
<?
print 'Hello World!';
?>
从中我们可以看出,PHP语言是嵌入在“<?php...?>”或“<?...?>” 之间的部分。而这个程序最终结果将是:
Hello World!
但建议您使用 <?php ... ?> 此种方式撰写您的程序,因为在XML中使用<? ?>作为标签,在php缺省的设定档php.ini中,通常此设定值为Off,若您有打开此设定的需要,您可以参见 php.ini 中关于 “short_open_tag = Off ”这部份的设定。
[编辑] PHP相关资源
[编辑] 函式库
主条目:PHP函式库列表
内建多样化的函数是PHP主要的特点之一,这些开放程序码的函数提供了各种不同的功能,例如档案处理、FTP、字串处理、等等。这些函数的使用方法和C语言相近(例如printf),这也是PHP广为流行的原因之一。
除了内建的函数之外,PHP也提供了很多延伸函式库(extension),像是各种数据库连接函数、资料压缩函数、图形处理等等。有些延伸函式库需要从PECL(PHP Extension Community Library)取得。
[编辑] 原始码编码和加速
PHP原始码是可以直接读取的,即使放到服务器上执行也是一样。虽然让PHP多了弹性,但相对的会造成安全危机和性能下降的问题。
因此透过PHP编码器,可以保护PHP的原始码不被读取(对商业软件来说特别有需求),也可以提升执行的效能。有许多公司或团体开发PHP的编码器,将PHP程序编译成字节码,再透过服务器上安装对应的程序来执行PHP脚本。
除了透过编码器加速之外,PHP还可以透过动态的快取机制来提升速度,加速工具有商业版的(例如Zend Platform),也有开放原始码的(例如eAccelerator, APC)。
[编辑] 样板引擎
Smarty
Smarty是一个php模板引擎.
更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法,可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人.例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现.在Smarty的程序里,这些被忽略了.模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等).有一天程序员想要改变文章检索的方式(也就是程序逻辑的改变).这个改变不影响模板设计者,内容仍将准确的输出到模板.同样的,哪天美工吃多了想要完全重做界面,也不会影响到程序逻辑.
程序员可以改变逻辑而不需要重新构建模板,模板设计者可以改变模板而不影响到逻辑
[编辑] PEAR
[编辑] PECL
[编辑] 对PHP的批评
PHP没有原生支援Unicode或是多位元字集(例如中文、日文、韩文等需要用两个以上为原来表示的字集),导致用PHP写的软件在国际语言化上遇到相当多的困难。
PHP没有名称空间(Namespace)的设计,降低了PHP语言设计上的弹性。预计在PHP 6会加入名称空间的特性。
PHP的函数命名规则非常的混乱,而且许多函数往往作用类似,只是传递的参数不同就要分成不同的函数,导致编写PHP程序时需要做相当多的手册查询工作,降低开发的效率。
PHP的魔术引号(magic quotes)功能可以自动处理使用者输入字串中的跳脱字符,有效避免SQL隐码攻击(SQL injection),但是因为不是每个使用者的输入都会写入到数据库,处理这些没有写入数据库的字串便浪费了效能。此外不是每个PHP环境都会开启魔术引号,程序设计时需要便需要对不同的服务器环境做因应,造成程序设计上的麻烦。魔术引号功能预计将会于PHP 6时取消。
有些PHP延伸函式库不是执行绪安全(threadsafe),导致PHP安装在多执行绪的服务器例如Apache 2上会发生不稳定的状况。
㈦ php为什么设置时区的原因博客园
Asia/Shanghai
使用xampp时间不久,今天为了纠正php获取函数是获取服务器时间。
因为php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的。显示的时间都是格林威治标准时间,和 北京时间差了正好8个小时。
网上找到的方法:
修改php.ini文件,查找 ;date.timezone = ,把前面的分号去掉在 “=”后面加上时区。
比如:Asia/Chongqing (重庆),Asia/Shanghai (上海),Asia/Urumqi (乌鲁木齐),Asia/Macao (澳门),Asia/Hong_Kong (香港),Asia/Taipei (台北),PRC
例
;date.timezone =
改成:
date.timezone = Asia/Shanghai
㈧ php中如何获得当前时间
一、使用函式 date() 实现
在编辑器中输入<?php echo $showtime=date("Y-m-d H:i:s");?>,点击回车就可以得知当前的时间。其中Y是代表4位的年份,H是24小时制,i 是分钟,如: "00" 至 "59" 。s -是秒,如: "00" 至 "59" 。
d 是几日,二位数字,若不足二位则前面补零。 如: "01" 至 "31" 。m代表月份,二位数字,若不足二位则在前面补零,如: "01" 至 "12" 。
二、使用time函数
在编辑器中输入echo date("y-m-d",$time)点击回车就可以得知当前的时间,其中Y是代表4位的年份,m代表月份,二位数字,若不足二位则在前面补零,如: "01" 至 "12" 。d 是几日,二位数字,若不足二位则前面补零。 如: "01" 至 "31" 。
三、使用strftime函数
在编辑器中输入echo strftime ("%hh%m %a %d %b" ,time());点击回车就可以得知当前的时间。
(8)php51扩展阅读:
Date/Time 函数
一、time — 返回当前的 Unix 时间戳
二、timezone_abbreviations_list — 别名 DateTimeZone::listAbbreviations
三、timezone_identifiers_list — 别名 DateTimeZone::listIdentifiers
四、timezone_location_get — 别名 DateTimeZone::getLocation
五、date — 格式化一个本地时间/日期
六、getdate — 取得日期/时间信息
七、gettimeofday — 取得当前时间
八、gmdate — 格式化一个 GMT/UTC 日期/时间
九、gmmktime — 取得 GMT 日期的 UNIX 时间戳
㈨ 关于PHP 时区的问题
于php时区时间错误问题 date 当前时间 时差 当地 本地date_default_timezone_set
php
之前有一个遗留问题,就是echo date("y-m-d h:i:s",time())回来的时间总是与实际时间对不上,今天终于在网上找到了原因和解决方法,分享如下:
我补充一点,我按照下面提示的方法修改php.ini找不到date.timezone 这行,是不是就没办法了呢,当然不是啦,哈哈没有的话就自己加嘛,自己动手丰衣足食。我加了这样一句date.timezone = "PRC",问题就搞定了,高兴一下.
从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的
也就是显示的时间(无论用什么php命令)都是格林威治标准时间
和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。
1,最简单的方法就是不要用php5.1以上的版本
2,如果一定要用,而且不能修改php.ini,则需要在关于时间的初始化的语句的
上面加上 date_default_timezone_set (XXX);
cp无此问题
3,一劳永逸,仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号
= 后面加XXX,重启http服务(如apache2或iis等)即可
关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为重庆,上海,乌鲁木齐)
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore
老外好像把北京漏调了
其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC
PRC是什么?PRC是中华人民共和国啊-_-
---------------------------------------------------------------------------------------------------------------------
解决方式:
在页头使用date_default_timezone_set()设置我的默认时区为北京
㈩ php时间格式怎么转换
php日期格式转换总结:
<?php
//将当前时间转换成yyyy-mm-dd格式串,再转换成日期格式,绕了一圈哈
echo strtotime(date('Y-m-d',time()).' 00:00:00');
//将GNU 日期输入格式的字符转换成时间
echo strtotime('now');
//标准的字符串转换成时间
$t = '2012-9-10 15:18:06';
$time = strtotime($t);
//将时间转换成日期字符yyyymmdd,再转换成整型格式
$d = intval(date('Ymd',$time));
echo '付款时间:'.$d;
<?php
header("Content-type: text/html; charset=utf-8");
$txDate = '2016-06-16';
$dateTime1 = strtotime($txDate); //int 1466028000 将英文文本日期时间解析为 Unix 时间戳:
$dateTime2= date("Y-m-d H:i:s",$dateTime1); //string '2016-06-16 00:00:00'
(length=19) Date() 函数把时间戳格式化为更易读的日期和时间。
//拼接今日最后时间2016-06-16 23:59:59
$dateTime= date("Y-m-d H:i:s",strtotime(date("Y-m-d",strtotime($dateTime2))."+ 23 hours 59 minutes 59 seconds ")); //string '2016-06-16 23:59:59' (length=19)
$sql = select * form `vvt_user` where userid = 100 AND date_time >= $dateTime2 AND date_time <= $dateTime;?>