PHP教程之PHP完成读取远程文件功能
然后大吼:别人可以,我为什么就不可以?(是不是有点阎罗教练的味道,默默的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了)在今天做端口测试的基本上研讨一下PHP上传与下载的代码,了局想起前段工夫口试题有一道题是在上传文件时显现文件内容,让我对PHP完成读取远程文件的功效很感乐趣,以下是代码:
01functionurlfopen($url,$limit=0,$post=,$cookie=,$bysocket=FALSE,$ip=,$timeout=15,$block=TRUE,$encodetype=URLENCODE){02$return=;03$matches=parse_url($url);04$host=$matches;05$path=$matches?$matches.(isset($matches)??.$matches:):/;06$port=!empty($matches)?$matches:80;0708if($post){09$out="POST$pathHTTP/1.0
";10$out.="Accept:*/*
";11$out.="Accept-Language:zh-cn
";12$boundary=$encodetype==URLENCODE?:;.substr($post,0,trim(strpos($post,"
")));13$out.=$encodetype==URLENCODE?"Content-Type:application/x-www-form-urlencoded
":"Content-Type:multipart/form-data$boundary
";14$out.="User-Agent:$_SERVER
";15$out.="Host:$host
";16$out.=Content-Length:.strlen($post)."
";17$out.="Connection:Close
";18$out.="Cache-Control:no-cache
";19$out.="Cookie:$cookie
";20$out.=$post;21}else{22$out="GET$pathHTTP/1.0
";23$out.="Accept:*/*
";24$out.="Accept-Language:zh-cn
";25$out.="User-Agent:$_SERVER
";26$out.="Host:$host
";27$out.="Referer:
";28$out.="Connection:Close
";29$out.="Cookie:$cookie
";30}31$fp=@fsockopen(($ip?$ip:$host),$port,$errno,$errstr,$timeout);32if(!$fp){33return;34}else{35stream_set_blocking($fp,$block);36stream_set_timeout($fp,$timeout);37@fwrite($fp,$out);38$status=stream_get_meta_data($fp);39if(!$status){40while(!feof($fp)){41if(($header=@fgets($fp))&&($header=="
"$header=="
")){42break;43}44}4546$stop=false;47while(!feof($fp)&&!$stop){48$data=fread($fp,($limit==0$limit>8192?8192:$limit));49$return.=$data;50if($limit){51$limit-=strlen($data);52$stop=$limit<=0;53}54}55}56@fclose($fp);57return$return;58}59}《PHP+MYSQLWEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-) 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 兴趣是最好的老师,百度是最好的词典。 最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
页:
[1]