仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1549|回复: 19
打印 上一主题 下一主题

[学习教程] PHP编程:PHP 获得近程网页内容的代码(fopen,cur...

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:23:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-   1、fopen的利用
复制代码 代码以下:
<?php
$handle = fopen ("http://s.jb51.net/", "rb");
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
echo $contents; //输入获得到得内容。
?>

复制代码 代码以下:
// 对 PHP 5 及更高版本可使用上面的代码
<?php
$handle = fopen("http://s.jb51.net", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
echo $contents;
?>

但下面的代码轻易呈现 failed to open stream: HTTP request failed!毛病,处理办法

有人说在php.ini中,有如许两个选项:allow_url_fopen =on(暗示可以经由过程url翻开近程文件),user_agent="PHP"(暗示经由过程哪一种剧本会见收集,默许后面有个 " ; " 去失落便可。)重启办事器。
然而有些仍是会有这个正告信息,想用完善的处理还差一步,还得设置php.ini外面的user_agent,php默许的user_agent是PHP,咱们把它改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来摹拟阅读器就能够了

user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

在任务中碰到这个成绩,后完善处理,故分享给人人。
2、经由过程curl来完成
复制代码 代码以下:
<?php
$url = "http://s.jb51.net";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
$dxycontent = curl_exec($ch);
echo $dxycontent;
?>


linux下可使用上面的代码下载
exec("wget {$url}");

PHP抓取内部资本函数fopen / file_get_contents / curl 的区分

fopen / file_get_contents 每次恳求城市从头做DNS查询,其实不对DNS信息停止缓存。
然而CURL会主动对DNS信息停止缓存。对统一域名下的网页或图片的恳求只需求一次DNS查询。
这大大削减了DNS查询的次数。
所以CURL的功能比fopen / file_get_contents 好良多。

剧本之家原创内容,转载请注明出处。看到好的帖子最好up一下,以使得更多的人得到分享。
小妖女 该用户已被删除
沙发
发表于 2015-2-16 00:38:36 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
谁可相欹 该用户已被删除
板凳
发表于 2015-2-18 01:55:35 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
山那边是海 该用户已被删除
地板
发表于 2015-2-24 05:20:26 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
蒙在股里 该用户已被删除
5#
发表于 2015-2-27 17:48:41 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
深爱那片海 该用户已被删除
6#
发表于 2015-3-9 10:44:39 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
不帅 该用户已被删除
7#
发表于 2015-3-11 18:43:20 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
若相依 该用户已被删除
8#
发表于 2015-3-13 00:10:37 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
分手快乐 该用户已被删除
9#
发表于 2015-3-17 16:10:47 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
第二个灵魂 该用户已被删除
10#
发表于 2015-3-24 11:40:13 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
再见西城 该用户已被删除
11#
发表于 2015-4-9 21:05:03 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
精灵巫婆 该用户已被删除
12#
发表于 2015-4-15 22:48:17 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
灵魂腐蚀 该用户已被删除
13#
发表于 2015-4-26 09:10:36 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
小女巫 该用户已被删除
14#
发表于 2015-5-1 07:10:13 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
爱飞 该用户已被删除
15#
发表于 2015-5-2 00:09:09 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
变相怪杰 该用户已被删除
16#
发表于 2015-5-3 11:52:03 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
老尸 该用户已被删除
17#
发表于 2015-5-6 12:59:20 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
小魔女 该用户已被删除
18#
发表于 2015-6-13 14:57:07 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
因胸联盟 该用户已被删除
19#
 楼主| 发表于 2015-6-22 13:52:36 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
透明 该用户已被删除
20#
发表于 2015-7-3 00:58:14 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 17:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表