失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Curl 采集乱码与采集不到 PHP 该怎么处理

Curl 采集乱码与采集不到 PHP 该怎么处理

时间:2023-05-22 02:26:33

相关推荐

Curl 采集乱码与采集不到 PHP 该怎么处理

后端开发|php教程

headerlen,data,quot,Curl,substr

后端开发-php教程

Curl 采集乱码与采集不到 PHP

PHP程序是用gbk2312编码的:

词林源码,vscode网站怎么部署,ubuntu无法截图,提高tomcat内存,sqlite不会创建文件,jquery 下一步插件,前端架构师是写框架吗,红色雷姆爬虫的由来,php数组去除重复的值,浦城正规seo报价,网站美女解说员源码,网页自适应不同浏览设备源码,超酷博客模板lzw

<?php

$url = “”;//gbk2312编码

//$url = “”;//gbk2312编码

//$url = “”;//gbk2312编码

tpshop商城源码,vscode 前端项目,ubuntu字符动画,未知tomcat版本,sqlite远程服务,网站服务器 试用,活动插件,小程序开发前端框架,爬虫资料分享,零基础学php培训,seo 方案,源码之家新闻网站,网页html5播放器,微医疗模板,js 页面滚动距离,小程序内容管理系统源码,.net程序设计代码lzw

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);//返回获取的输出的文本流

$ret = curl_exec($ch);

curl_setopt($ch, CURLOPT_TIMEOUT, 1);

curl_close($ch);

echo $ret;

登录注册网站源码,vscode蛇形转驼峰,ubuntu 系统恢复,联想tomcat配置参数,sqlite数据库怎么更改,基于爬虫的旅游网站开发,php无限分类排序,鹤壁网络推广seo优化,sns社区网站,加载页面html模板lzw

?>

在采集时,是正常的,但是采集时是为空的,采集时是丢码的.

这是怎么回事呢?如何解决?有哪位怎么呀?先谢谢了!!!没多少分了,不好意思。

——解决方案——————–

别的不说,我就是来拿分的.楼主记得给全分

PHP code

$curl=curl_init(\);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);curl_setopt($curl,CURLOPT_USERAGENT,Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322));$html=curl_exec($curl);var_dump($html);$curl=curl_init(\);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);curl_setopt($curl,CURLOPT_USERAGENT,Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322));$html=curl_exec($curl);//$html=strstr($html,<);$html=gzdecode($html);var_dump($html);function gzdecode($data) {$len = strlen($data);if ($len < 18 || strcmp(substr($data,0,2),"\x1f\x8b")) {return null; // Not GZIP format (See RFC 1952)}$method = ord(substr($data,2,1)); // Compression method$flags = ord(substr($data,3,1)); // Flagsif ($flags & 31 != $flags) {// Reserved bits are set -- NOT ALLOWED by RFC 1952return null;}// NOTE: $mtime may be negative (PHP integer limitations)$mtime = unpack("V", substr($data,4,4));$mtime = $mtime[1];$xfl = substr($data,8,1);$os = substr($data,8,1);$headerlen = 10;$extralen = 0;$extra = "";if ($flags & 4) {// 2-byte length prefixed EXTRA data in headerif ($len - $headerlen - 2 < 8) { return false; // Invalid format}$extralen = unpack("v",substr($data,8,2));$extralen = $extralen[1];if ($len - $headerlen - 2 - $extralen < 8) { return false; // Invalid format}$extra = substr($data,10,$extralen);$headerlen += 2 + $extralen;} $filenamelen = 0;$filename = "";if ($flags & 8) {// C-style string file NAME data in headerif ($len - $headerlen - 1 < 8) { return false; // Invalid format}$filenamelen = strpos(substr($data,8+$extralen),chr(0));if ($filenamelen === false || $len - $headerlen - $filenamelen - 1 < 8) { return false; // Invalid format}$filename = substr($data,$headerlen,$filenamelen);$headerlen += $filenamelen + 1;} $commentlen = 0;$comment = "";if ($flags & 16) {// C-style string COMMENT data in headerif ($len - $headerlen - 1 < 8) { return false; // Invalid format}$commentlen = strpos(substr($data,8+$extralen+$filenamelen),chr(0));if ($commentlen === false || $len - $headerlen - $commentlen - 1 < 8) { return false; // Invalid header format}$comment = substr($data,$headerlen,$commentlen);$headerlen += $commentlen + 1;} $headercrc = "";if ($flags & 1) {// 2-bytes (lowest order) of CRC32 on header presentif ($len - $headerlen - 2 < 8) { return false; // Invalid format}$calccrc = crc32(substr($data,0,$headerlen)) & 0xffff;$headercrc = unpack("v", substr($data,$headerlen,2));$headercrc = $headercrc[1];if ($headercrc != $calccrc) { return false; // Bad header CRC}$headerlen += 2;} // GZIP FOOTER - These be negative due to PHPs limitations$datacrc = unpack("V",substr($data,-8,4));$datacrc = $datacrc[1];$isize = unpack("V",substr($data,-4));$isize = $isize[1]; // Perform the decompression:$bodylen = $len-$headerlen-8;if ($bodylen 0) {switch ($method) { case 8:// Currently the only supported compression method:$data = gzinflate($body);break; default:// Unknown compression methodreturn false;}} else {// Im not sure if zero-byte body content is allowed.// Allow it for now... Do nothing...} // Verifiy decompressed size and CRC32:// NOTE: This may fail with large data sizes depending on how//PHPs integer limitations affect strlen() since $isize//may be negative for large sizes.if ($isize != strlen($data) || crc32($data) != $datacrc) {// Bad format! Length or CRC doesn match!return false;}return $data; }

如果觉得《Curl 采集乱码与采集不到 PHP 该怎么处理》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。