php学习
php 学习总结:
1)、Apache在当前目录中没有index.html等文件时会显示当前目录中的内容INDEX OF,解决方法:在http.conf中,找到:Options indexes FollowSymLinks 改为:Options FollowSymLinks 。
2)、习惯上,PHP短标签支持要重新配置,不然出错:
1,所有的’<?=’ 替换为 ‘<?php echo ‘; —注意空格
2,所有的’<?’替换为’<?php ‘ —注意空格
3,所有的’<?php php’ 替换为’<?php ‘ —注意空格
4,所有的’<?php xml’ 替换为’<?xml’ —注意空格(程序中如果有xml的话)
第二种方法:打开php.ini,找到“short_open_tag = Off”,将其修改为“short_open_tag = On”,然后重启IIS或Apache即可。
3)、“Cannot send session cookie - headers already sent by ”错误解决办法,一般是文档编码引起。将错误的网页用其他编辑器打开,设置为utf-8无bom编码保存。
4)、php 导出excel 数字字符串 自动去掉前面的‘0’解决:将它变成字符串,在数字前面加'符号。即代码里添加: "'".$number; 结果就如:'001
5)、fwrite(): supplied argument is not a valid stream resource 错误原因是文件的安全设置导致。点击属性,添加everyone权限。
6)、转自php使用mysqldump命令导出数据 文件内容为空 的解决(密码不能为空):
服务器环境win2003+Apache+PHP5.2
我通过调用mysqldump来备份和恢复数据库,代码如下:
<?php
exec( "D:/Program Files/AppServ/MySQL/bin/mysqldump -h localhost -u root -p password database > d:/database.sql ");
?>
但执行后d:/中是产生database.sql文件了,但文件内无内容,是个空文件。
解决办法:
1. mysqldump -h localhost -u root -p password database > d:/database.sql
这行命令应该这样写
mysqldump -h localhost -uroot -ppassword database > d:/database.sql
-uroot -ppassword -u -p应该和用户名和密码粘在一起, 之间没空格
2.D:/Program Files/AppServ/MySQL/bin/mysqldump
这个是mysqldump.exe文件的路径,但是我的路径名中有空格“Program Files”,这个文件有空格,所以把mysqldump.exe放在项目的根目录,或者放在D:/下也可以
这样就可以成功导出数据了
3.这一点必须要注意,mysql的数据库密码一定不能为空,如果密码为空,那么mysqldump 就不可以用了
附:mysqldump 使用命令
http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID=1551
7)、Windows+IIS环境下,由于权限的设置一般不能执行exec(),system(),shell_system()这三个函数,一般抱错Warning: exec() [function.exec]: Unable to fork [ XXXXX] .其中XXX是exec运行程序的位置,解决办法:给C:\Windows\\system32\cmd.exe加上IIS来宾帐户(everyone)的权限,最后确定的时候Windows会提示你安全问题,不要理会他,OK。
8)、使用session时出现错误:Notice: Undefined index: username 。需要屏蔽notice信息:修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE 。
9)、IE8不兼容css,在每个页面首部加入:<meta http-equiv="x-ua-compatible" content="ie=7" />