php获取指定网页内容

php获取指定网页内容,第1张

一、用file_get_contents函数,以post方式获取url

<php

$url= '>

$data= array('foo'=> 'bar');

$data= >

$opts= array(

'>

'method'=> 'POST',

'header'=>"Content-type: application/x->

"Content-Length: "   strlen($data)  "\r\n",

'content'=> $data

)

);

$ctx= stream_context_create($opts);

$html= @file_get_contents($url,'',$ctx);

二、用file_get_contents以get方式获取内容

<php

$url='>

$html= file_get_contents($url);

echo$html;

>

三、用fopen打开url, 以get方式获取内容

<php

$fp= fopen($url,'r');

$header= stream_get_meta_data($fp);//获取报头信息

while(!feof($fp)) {

$result= fgets($fp, 1024);

}

echo"url header: {$header} <br>":

echo"url body: $result";

fclose($fp);

>

四、用fopen打开url, 以post方式获取内容

<php

$data= array('foo2'=> 'bar2','foo3'=>'bar3');

$data= >

$opts= array(

'>

'method'=> 'POST',

'header'=>"Content-type: application/x->

urlencoded\r\nCookie:cook1=c3;cook2=c4\r\n"  

"Content-Length: "   strlen($data)  "\r\n",

'content'=> $data

)

);

$context= stream_context_create($opts);

$html= fopen('>

$w=fread($html,1024);

echo$w;

>

五、使用curl库,使用curl库之前,可能需要查看一下phpini是否已经打开了curl扩展

<php

$ch= curl_init();

$timeout= 5;

curl_setopt ($ch, CURLOPT_URL, '>

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$file_contents= curl_exec($ch);

curl_close($ch);

echo$file_contents;

>

php的页面其实就是html的页面,只是把部分内容动态化而已啊

你把只要动态的部分用php就行,内容太长可能是里面的引号出了问题。

比如你的html代码是这样

<html>

<body>

<a>77</a>

</body>

</html>

你的php代码写成这样就行,其它地方不变,问题就会出现得比较少

<html>

<body>

<a><php

$i = 77;

echo($i);></a>

</body>

</html>

1、使用file_get_contents获得网页源代码。这个方法最常用,只需要两行代码即可,非常简单方便。

2、使用fopen获得网页源代码。这个方法用的人也不少,不过代码有点多。

3、使用curl获得网页源代码。使用curl获得网页源代码的做法,往往是需要更高要求的人使用,例如当你需要在抓取网页内容的同时,得到网页header信息,还有ENCODING编码的使,USERAGENT的使用等等。所谓的网页代码,就是指在网页制作过程中需要用到的一些特殊的\"语言\",设计人员通过对这些\"语言\"进行组织编排制作出网页,然后由浏览器对代码进行\"翻译\"后才是我们最终看到的效果。制作网页时常用的代码有HTML,JavaScript,ASP,PHP,CGI等,其中超文本标记语言(标准通用标记语言下的一个应用、外语简称:HTML)是最基础的网页代码。

有三个原因:

第一个主因是网速,虽然你使用的是电信6M宽带,但网速还是无法与虚拟服务器相比,虚拟服务器所限制的网速一般只是上传速度,下载的速度并不限制,没有谁使用虚拟服务器去大量下载数据。

另外,虚拟主机再怎么差,连接到机房的到底是光纤而不是宽带,这一点毋庸置疑。

另一个原因是DNS,一个服务器提供商,都会在机房里设置自己的DNS服务器,这样会大大提高服务器的解析速度,同时还对外提供各种DNS解析服务,所以,虚拟主机的DNS速度,不是个人宽带可以比拟的,而个人电脑却需要使用宽带资源解析DNS。

第三个原因就是路由,个人宽带不是主干网,一般的空间商所接入的光纤却尽量与国家光纤主干距离很近,路由延迟极短,个个的宽带却完全不是一个概念,中间的路由延迟也是个可观的数字。

如果你的php页面和html页面不是同一个页面的话,可以将这个值存入cookie中,使用js就可以获取到。

如php存值在cookie中:setcookie("my_name","xiaoming",time()+3600);

那么在js中可以这样获取:

function getCookie(c_name) {

if (documentcookielength > 0) {

c_start = documentcookieindexOf(c_name + "=")

if (c_start != -1) {

c_start = c_start + c_namelength + 1

c_end = documentcookieindexOf(";", c_start)

if (c_end == -1) c_end = documentcookielength

return unescape(documentcookiesubstring(c_start, c_end))

}

}

return ""

}

使用上面的这个函数:getCookie('my_name')就可以得到php端存的这个值“xiaoming”了。

第一个方法:

1、用css来实现IE7以上浏览器的缩略效果。

divimg{ max-width:50px; max-height:50px; } htmldivimg{width:expression(thiswidth>50&&thiswidth>thisheight50:auto); height:expresion(thisheight>5050:auto); }

说明: 这段代码是把等比例缩小为50px 50px,可以根据网页的宽度来自由修改尺寸。

2、万恶的IE6不识别上面的代码怎么办?

如果你的网页宽度为580像素,我们来看

ltop3 { line-height: 25px; font-size: 12px; overflow: hidden; width: 580px;}

这样的话,IE7会识别第一步的代码来自动缩略,而IE6会根据第二步的代码,如果内容超过网页宽度就自动隐藏,这就完美的解决了的缩略问题。

另外还有一个方法也告诉大家,希望有用。

第2个方法:

JS代码加到网页<BODY>前面

<SCRIPT language=JavaScript type=text/JavaScript>

//改变大小

function resizepic(thispic)

{

if(thispicwidth>400) thispicwidth=400;

}

//无级缩放大小

function bbimg(o)

{

var zoom=parseInt(ostylezoom, 10)||100;

zoom+=eventwheelDelta/12;

if (zoom>0) ostylezoom=zoom+'%';

return false;

}

</SCRIPT>

在属性加上onmousewheel="return bbimg(this)" onload="javascript:resizepic(this)" 代码即可让超过400像素的自动缩略。

以上就是关于php获取指定网页内容全部的内容,包括:php获取指定网页内容、PHP页面设计、如何用php获取网页源码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9675443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存