㈠ php怎样抓取网页代码中动态显示的数据
你是想抓别人网页上ajax动态载入的数据吧?
1、要找到它的ajax载入的URL地址
2、利用PHP的file_get_contents($url)函数读取那个url地址。
3、对抓取到的内容进行分析或正则过滤。
㈡ 想通过PHP实现读取txt文本每次刷新网页随机获取5行数据并输出
如果文件不是太大的话,可以这样写:
<?php
$arr=file('a.txt'); //文本文件,请修改合适的名字和位置
$n=count($arr);
for ($i=0;$i<5;$i++) echo $arr[rand(0,$n)]."<br>';
?>
㈢ thinkPHP怎样使用PHPExcel导出网站数据为excel
第一步:先去下载PHPExcel插件压缩包,解压后只用到Classes文件夹里面的文件就行。
第二步:然后把Classes文件夹名称改为PHPExcel (也可以不用改),再放在thinkPHP指定的第三方类库目录文件夹Vendor下面,第三方类库目录在ThinkPHP/Library 里面
第三步:整理数据,整理成适合excel表格式的数据,不多说直接给代码
publicfunctionexport(){//导出Excel表数据整理
$xlsData=M('table')->select();//查找需要导出的数据
$xlsCell=array(//设置excel文档的格式第一行就相当于标题
array('id','ID号'),
array('title','标题'),
array('time','时间'),
array('content','内容')
);
$newArray=array();//自定义数组
foreach($xlsDataas$k=>$v)
{//然后把所有查找到的数据根据设置第一行的标题相对应放进数组里面
$newArray[$k]['id']=$v['id'];
$newArray[$k]['title']=$v['title'];
$newArray[$k]['time']=date('Y-m-d',$v['time']);
$newArray[$k]['content']=$v['content'];
}
$xlsName='Excel表数据'//设置Excel表文件名称
$this->exportExcel($xlsName,$xlsCell,$newArray);//调用PHPExcel插件,这步的函数也需要自定义
}
/**
*@param$xlsName名称
*@param$xlsCell参数(标题数组)
*@param$newArray内容(数据数组)
*/
publicfunctionexportExcel($xlsName,$xlsCell,$newArray){
$xlsTitle=iconv('utf-8','gb2312',$xlsName);//文件名称需要转码避免乱码出错
$xlsCell_num=count($xlsCell);
$newArray_num=count($newArray);
vendor("PHPExcel.PHPExcel");//关键,利用thinkphp内置函数嵌套PHPExcel插件,如果在第二步没有改文件夹名称就这样:vendor("Classes.PHPExcel");点之前表示插件文件夹,点之后的表示PHPExcel.php文件的名称不要后缀名
$objPHPExcel=newPHPExcel();//实例化PHPExcel
$column_key='A'//excel表的每个单元格都是A1,A2,A3....类似的,大写字母代表列,数字代表行,那么第一行就是标题了
foreach($xlsCellas$k=>$v){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column.Ƈ',$v);//有多少标题列先写进第一行
$column_key++;//这样循环的好处就是不用限定有多少列,可以根据你的数据表字段有多少就导出多少列
}
for($i=0;$i<$newArray_num;$i++){//第一层循环表示多少行
$column_key='A'
for($j=0;$j<$xlsCell_num;$j++){//第二层表示列
$objPHPExcel->getActiveSheet(0)->setCellValue($column_key.($i+2),$newArray[$i][$xlsCell[$j][0]]);//($i+2)表示从第二行开始,第一行已经设置为标题了
$column_key++;
}
}
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
header("Content-Disposition:attachment;filename=$xlsTitle.xls");//attachment新窗口打印inline本窗口打印
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');//Excel5为xls格式,excel2007为xlsx格式
$objWriter->save('php://output');
exit;
}
㈣ 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获取指定网页内容
此类方法一共有三种
第一种方法
<?php
$c = curl_init();
$url = 'www.badcatxt.com';
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($c);
curl_close($c);
$pos = strpos($data,'utf-8');
if($pos===false){$data = iconv("gbk","utf-8",$data);}
preg_match("/<title>(.*)</title>/i",$data, $title);
echo $title[1];
?>
第二种方法:使用file()函数
<?php
$lines_array = file('http://www.badcatxt.com/');
$lines_string = implode('', $lines_array);
$pos = strpos($lines_string,'utf-8');
if($pos===false){$lines_string = iconv("gbk","utf-8",$lines_string);}
eregi("<title>(.*)</title>", $lines_string, $title);
echo $title[1];
?>
第三种方法:使用file_get_contents
<?php
$content=file_get_contents("http://www.badcatxt.com/");
$pos = strpos($content,'utf-8');
if($pos===false){$content = iconv("gbk","utf-8",$content);}
$postb=strpos($content,'<title>')+7;
$poste=strpos($content,'</title>');
$length=$poste-$postb;
echo substr($content,$postb,$length);
?>