不完全的HTML头消息,可能被某些PHP服务器拒绝.
近日在用自己以前写的http下载器下载某一个php页面以外遭遇403错误.但是ie却能够正确访问. 日志如下: IE: Time At:0005504671
Line:10
send: 192.168.1.2 –> xxx.xxx.xxx.xxx len:351
GET /test.jpg HTTP/1.1
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 4.0.20506)
Host: ****************
Connection: Keep-Alive MyDownload: Time At:0005408062
Line:5
send: 192.168.1.2 -> xxx.xxx.xxx.xxx len:99
HEAD/test.jpg HTTP/1.1
Host:****************
Connection:Keep-Alive
Range:bytes=0- 尽管ie直接使用GET而我使用HEAD查询文件大小,但是其实问题是我的http头缺少一些字段. 改正后:(增加了User-Agent,Accept字段,起决定作用的是User-Agent) Time At:0005756375
Line:5
send: 192.168.1.2 -> xxx.xxx.xxx.xxx len:172
HEAD /test.jpg HTTP/1.1
Host:****************
Accept:*/*
User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Connection:Keep-Alive
Range:bytes=0- 顺利获取文件内容. 某些PHP并没有要求这些内容,但是某些,某时候就要求.
相关文档:
假如有两个表: user 和 articles 表
结构:
user: (id, name)
articles: (id,user_id,title,content)
其中user.id 和 user_id 关联
在user的 model中的 relations方法里面加:
return array('articles'=>array(self::HAS_MANY,'articles','user_id'));
在articles的 model中的 relations方法里面加:
......
引用文件的方法有2种:
1、require
require("conn.php"); 一般放在页面的第一行,做为该页执行的一部分,首先执行require内的conn.php 然后再执行下面的代码
2、include
include("header.php");当程序到达这里的时候才会执行include的 header.php ......
在以前的做的例子中遇到过重复的加载的错误 额 那个是通过include_once()来解决 或者不让他重复加载把重复的include()去掉一个或多个,最终只剩下一个这样问题就解决了,但今天遇到的问题就棘手了 说是找不到文件。
事情是这样的 ,今天在文件夹里再新建了一个文件夹,然后以前includ ......
问题描述:一个连接远程数据库的PHP脚本testdb.php,在浏览器中运行:http://localhost/testdb.php,出现错误:Can't connect to MySQL server on '10.60.56.220' (13),但是在本地用php命令行运行:php testdb.php,却正常地连上了数据库并读出了其中的数据。
应用程序环境:本地IP:10.60.56.90,本地电脑上安装Apache 2 ......
1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。
2.echo 比 print 快。
3.使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。
4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。
5.注销那些不用的变量尤其是大数组,以便释放内存。
6.尽量避免使用__get,__set,__autolo ......