存档
Linux统计当前目录代码行数
find . -name “*.php” -exec wc -l {} \; | awk ‘BEGIN {f=0;l=0} {f++;l=l+$1} END {printf(“total: %d files, %d lines\n”,f,l)}’
我们通常使用fsockopen打开一个$fp来发送http头,请求后用feof判断是否读完来获取服务器响应的内容。
但是这使用feof时要特别注意一点,php手册上关于feof有这样一个说明:
Warning
如果服务器没有关闭由 fsockopen() 所打开的连接,feof() 会一直等待直到超时而返回 TRUE。默认的超时限制是 60 秒,可以使用 stream_set_timeout() 来改变这个值。
也就是一个打开的socket连接,没有在读完后关闭,feof会一直返回true直到超时
看如下代码:
$url = "/N_StockQuote.aspx?StockCode=002024&StockMarket=2";
$fp = fsockopen(’hqdigi.eastmoney.com’,80,$errno,$errstr,10);
if(!$fp){
die("Network error or invalid stock code\r\n");
}elseif($error){
die("$error:$errstr\r\n");
}else{
$request = "GET $url HTTP/1.1\r\n";
$request .= "Host: hqdigi.eastmoney.com\r\n";
$request .= "Pragma: no-cache\r\n";
$request .= "Cache-Control: no-cache\r\n\r\n";
fwrite($fp,$request);//发送请求头
while(!feof($fp)){
$tmp .= fgets($fp,1024);//获取服务器返回信息
}
}
运行这代码就有问题了,while进入死循环,直到超时
因此,稍作改动,请求头部最后加上Connection:close,来告诉服务器,响应完就断开
#include <mysql.h>
#include <stdio.h>
int main(){
char host[32] = "localhost";
char user[32] = "root";
char password[32] = "123123";
char db[32] = "wordpress";
char sql[100];
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
[...]
平时对MYSQL函数使用较少,想使用时确不记得函数名及参数用法。
现对比PHP整理下,便于记忆……
本页将不断更新,直至完善
今天一同事问我,他用了Content-Type=text/xml型,提交了一个xml文档内容给了php server,要怎么获得这个POST数据。
这把我愣住了,以前确实没写过这样的POST,赶紧查手册,发现有$HTTP_RAW_POST_DATA 这一项。对此的解释是:The RAW / uninterpreted HTTP POST information can be accessed with: $GLOBALS['HTTP_RAW_POST_DATA'] This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).
意思是,由于PHP默认只识别application/x-www.form-urlencoded标准的数据类型,因此,对型如text/xml的内容无法解析为$_POST数组,故保留原型,交给$HTTP_RAW_POST_DAT来接收。
If-Range = “If-Range” “:” ( entity-tag | HTTP-date )
IF-Range头部需配合Range,如果没有Range参数,则If-Range会被视为无效。
如果不满足If-None-Match,也就是任何一个Etag匹配了,那服务器就不会产生该请求的响应。除非判断其它条件如If-Modified-Since不成立……
获取用户IP地址的几个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_X_FORWARDED,HTTP_VIA,REMOTE_ADDR)
最新评论