当前位置:首页 » 编程语言 » php获取html页面

php获取html页面

发布时间: 2023-09-27 23:28:20

php 获取JS执行过后的html

PHP是后台服务器语言,只会被动的等待客户端连接。
如果你想要获取执行JS后的代码,可以用ajax来实现。
写一个JS函数,获取所有的HTML代码,然后向服务器端发出异步请求,把代码发出去就是了。

❷ php 如何调用html文件,我的PHP文件是整个网页的模板,中间想放个html文件,哪位可有好招

这个很简单啊,用include_once()就可以,当然有很多种,例如:
include_once('./common.html');
common.html与你的php页面在同一级的目录下
不在同级就打入相应的路径。

❸ PHP获取远程页面html

file_get_contents()比file()慢?

如果抓取别人的页面还是用file_get_contents()比较好~
file()取回的是数组
而file_get_contents()取回的是字符串

你是想取回个数组再把它们连起来方便?还是直接把他们取回来方便?

另外
file_get_contents(String,int)
有个可选参数设定读取的长度

在PHP手册中说:
file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

❹ php读取html指定部分

<?php
$re='/<li title=([^:]*):([^<]*)<\/li>/';
$x_goods='<li title="货号">货号:252-26-002252</li>
<li title="性别">性别:女</li>
<li title="款式">款式:手拿包</li>
<li title="背包方式">背包方式:手抓</li>
<li title="背包部位">背包部位:手部</li>
<li title="质地">质地:牛皮</li>
<li title="提拎部件">提拎部件:锁链式提把</li>
<li title="内部结构">内部结构:拉链暗袋 夹层拉链袋
</li>
<li title="品牌">品牌:Tucano/意大利啄木鸟</li>
<li title="风格">风格:甜美淑女</li>
<li title="箱包外形">箱包外形:横款方形</li>
<li title="颜色">颜色:白色</li>
<li title="有无夹层">有无夹层:有</li>
<li title="有无拉杆">有无拉杆:无</li>
<li title="有无手腕带">有无手腕带:有</li>
<li title="价格区间">价格区间:101-500元</li>
<li title="成色">成色:全新</li>
';
if(preg_match_all($re,$x_goods,$matches)){
print_r($matches[2]);
//$daya=explode(' ',trim($matches[5][0]));
}
exit;
?>

❺ 如何从php页面跳转到html页面

如何从php页面跳转到html页面
PHP页面 首先要是在服务器里运行,即不能像Html页面一样直接双击查看,而是要在浏览器里输入相关地址才能访问; 其次,PHP代码被执行的文件,必须是以.php结尾,不能是在.html结尾; 再次,PHP代码有起始标签 <?php ?>标签不能少,少了它就当Html代码认了

❻ php获取指定网页内容

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

<?php

$url='http://www.domain.com/test.php?id=123';

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

$data= http_build_query($data);

$opts=array(

'http'=>array(

'method'=>'POST',

'header'=>"Content-type: application/x-www-form-urlencoded " .

"Content-Length: " .strlen($data) ." ",

'content'=>$data

)

);

$ctx= stream_context_create($opts);

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

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

<?php

$url='http://www.domain.com/?para=123';

$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= http_build_query($data);

$opts=array(

'http'=>array(

'method'=>'POST',

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

urlencoded Cookie:cook1=c3;cook2=c4 " .

"Content-Length: " .strlen($data) ." ",

'content'=>$data

)

);

$context= stream_context_create($opts);

$html=fopen('http://www.test.com/zzzz.php?id=i3&id2=i4','rb',false,$context);

$w=fread($html,1024);

echo$w;

?>

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

<?php

$ch= curl_init();

$timeout= 5;

curl_setopt ($ch, CURLOPT_URL,'http://www.domain.com/');

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代码

实际上是个模拟登陆的问题,需要写个登陆模块,解决两个问题:
1,请求登陆并刷新的函数部分:

<?php
/*****************函数部分**************************/
/*获取指定网页的内容
$url为网页地址
*/
function getcontent($url){
if($open=file($url)){
$count=count($open);
for($i=0;$i<$count;$i++)
{
$theget.=$open[$i];
}
}else{
die('请求过多,超时,请刷新');
}
return $theget;
}
?>
2,偷取程序部分,也分两部分,
1),PHP与XML不同之处是需要特殊的调用才能支持COOKIE.或者记录SessionID(后面有说明程序)

php代码如下
<?PHP
//登陆并保存COOKIE
$f = fsockopen("www.url.net",80);
$cmd = <<<EOT
GET /test/login.php?name=test&password=test HTTP/1.0

EOT;
fputs($f,$cmd);
$result = '';
$cookie = '';
$location = '';
while($line = fgets($f))
{
$result .= $line;
//取得location跟setCookie头HTTP头信息
$tmp = explode(":",$line);
if($tmp[0]=="Set-Cookie")
$cookie .= $tmp[1];
if($tmp[0]=="Location")
$location = $tmp[1];
}
fclose($f);
2),获取页面
//下面访问你要访问的页面(这部分也可以参考下面的核心例程)
$f = fsockopen("www.url.net",80);l
//下面的cookie就是发送前页保存下的的cookie
$cmd = <<<EOT
GET /test/test.php HTTP/1.0
cookie:$cookie

EOT;
fputs($f,$cmd);
while($line = fgets($f))
{
echo $line;
}
fclose($f);
?>

核心例程就是fsockopen();
不妨再给段代码你瞧瞧:
--------------------------------------------------------------------------------

function posttohost($url, $data)
{
$url = parse_url($url);
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
$encoded = "";
while (list($k,$v) = each($data))
{
$encoded .= ($encoded ? "&" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]");
fputs($fp, "Content-type: application/x-www-form-urlencoded");
fputs($fp, "Content-length: " . strlen($encoded) . "");
fputs($fp, "Connection: close");
fputs($fp, "$encoded");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\\.. 200", $line)) return $line ;
$results = ""; $inheader = 1;
while(!feof($fp))
{
$line = fgets($fp,1024);
if ($inheader && ($line == "" || $line == "\r")) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}
$data=array();
$data["msg"]="HELLO THIS IS TEST MSG";
$data["Type"]="TEXT";
echo posttohost("http://url/xxx", $data);

应该说明白了吧?
另外登陆部分还有一种简单方法是把SessionID保存下来

源代码:

<?php
/*
* 得到网页内容
* 参数:$host [in] string
* 主机名称(例如: www.url.com.cn)
* 参数:$method [in] string
* 提交方法:POST, GET, HEAD ... 并加上相应的参数( 具体语法参见 RFC1945,RFC2068 )
* 参数:$str [in] string
* 提交的内容
* 参数:$sessid [in] string
* PHP的SESSIONID
*
* @返回 网页内容 string
*/
function GetWebContent($host, $method, $str, $sessid = '')
{
$ip = gethostbyname($host);
$fp = fsockopen($ip, 80);
if (!$fp) return;
fputs($fp, "$method\r\n");
fputs($fp, "Host: $host\r\n");
if (!empty($sessid))
{
fputs($fp, "Cookie: PHPSESSID=$sessid; path=/;\r\n");
}
if ( substr(trim($method),0, 4) == "POST")
{
fputs($fp, "Content-Length: ". strlen($str) . "\r\n"); // 别忘了指定长度
}
fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n\r\n");
if ( substr(trim($method),0, 4) == "POST")
{
fputs($fp, $str."\r\n");
}
while(!feof($fp))
{
$response .= fgets($fp, 1024);
}
$hlen = strpos($response,"\r\n\r\n"); // LINUX下是 "\n\n"
$header = substr($response, 0, $hlen);
$entity = substr($response, $hlen + 4);
if ( preg_match('/PHPSESSID=([0-9a-z]+);/i', $header, $matches))
{
$a['sessid'] = $matches[1];
}
if ( preg_match('/Location: ([0-9a-z\_\?\=\&\#\.]+)/i', $header, $matches))
{
$a['location'] = $matches[1];
}
$a['content'] = $entity;
fclose($fp);
return $a;
}

/* 构造用户名,密码字符串 */
$str = ("username=test&password=test");
$response = GetWebContent("localhost","POST /login.php HTTP/1.0", $str);
echo $response['location'].$response['content']."<br>";
echo $response['sessid']."<br>";
if ( preg_match('/error\.php/i',$response['location']))
{
echo "登陆失败<br>";
} else {
echo "登陆成功<br>";
// 不可以访问user.php,因为不带sessid参数
$response = GetWebContent("localhost","GET /user.php HTTP/1.0", '', '');
echo $response['location']."<br>"; // 结果:error.php?errcode=2

// 可以访问user.php
$response = GetWebContent("localhost","GET /user.php HTTP/1.0", '', $response['sessid']);
echo $response['location']."<br>"; // 结果:user.php
}
?>

热点内容
预编译的作用是什么 发布:2025-02-01 17:44:52 浏览:738
苹果电脑打不开压缩文件 发布:2025-02-01 17:39:47 浏览:967
无人机存储柜子 发布:2025-02-01 17:39:45 浏览:199
shell脚本编写删除修改 发布:2025-02-01 17:38:05 浏览:118
wifi连接服务器678怎么回事 发布:2025-02-01 17:29:10 浏览:261
自动编译小说软件 发布:2025-02-01 17:23:19 浏览:185
鼠标侧键编程 发布:2025-02-01 17:14:51 浏览:66
bs源码 发布:2025-02-01 16:51:52 浏览:568
百度云zip怎么解压 发布:2025-02-01 16:31:59 浏览:567
pmc密码是什么意思 发布:2025-02-01 16:28:49 浏览:784