PHP Simple HTML DOM 简单使用

申屠健
2023-12-01

一般与curl配合使用
远程抓取页面内容后,利用 Simple HTML DOM生成dom结构,之后可以像jQuery 一样方便的操作dom

<?php
  $ch = curl_init();//初始化一个cURL会话
  curl_setopt($ch ,CURLOPT_URL ,'http://www.hao123.com');//设置 URL
  curl_setopt($ch ,CURLOPT_HEADER ,0);//是否返回头信息
  curl_setopt($ch ,CURLOPT_RETURNTRANSFER ,1);//将curl_exec()获取的信息以字符串返回,而不是直接输出
  $str = curl_exec($ch);//返回字符串
  curl_close($ch);//释放资源
	
// 引入文件 simple_html_dom
  require_once 'simple_html_dom.php';
//创建dom对象
  $html = new simple_html_dom;
// 载入html字符串
  $html->load($str);//$html = str_get_html($str);
	
//找到所有的链接 去掉链接 最后输出到浏览器查看效果(请做你想做的!)
  if( $links = $html->find('a') ) 
  {
	foreach( $links as $a )
	{
		$a->href = null;//删除属性  清空的话 $a->href='';
	}
  }
  $newstr = $html->save();//$newstr = $html;
  $html->clear();
  unset($html);
  echo $newstr;

附一个cURL 远程请求

支持自定义请求方法

function remoteRequest($url, $data = null ,$method='GET')
{
  $ch= curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  //设置请求头信息 这里是json数据
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json;charset=utf-8'));
  //$tokenId = $_COOKIE['tokenId']
  curl_setopt($ch ,CURLOPT_COOKIE ,'tokenId='.$tokenId);//发送cookie

	switch ($method) {
		case 'GET':
			break;

		case 'POST':
			curl_setopt($ch, CURLOPT_POST, 1);
			break;

		case 'PUT':
			curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
			break;

		case 'DELETE':
			curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
			break;

		case 'PATCH':
			curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
			break;
	}

	if( $data )
	{
		$data = json_encode($data); 
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	}

	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$str = curl_exec($ch);
	curl_close($ch);
	return $str;
}

就酱,更多Simple HTML DOM 用法 请阅读文档

 类似资料: