curl获取的中文是乱码要怎么解决

curl获取的中文是乱码要怎么解决,第1张

一般是因为你抓取的网页内容编码和你执行curl文件的编码不一致引起的。你需要弄清楚你抓取的页面是什么编码格式的,这样你就可以使用iconv函数进行转换了。

例:

$str = '要转换的内容';

$str = iconv('gb2312', 'utf-8', $str);

这样起到的功能是:将str变量的内容从gb2312格式转为utf-8格式。

本文承接上面两篇,本篇中的示例要调用到前两篇中的函数,做一个简单的URL采集。一般php采集网络数据会用file_get_contents、file和cURL。不过据说cURL会比file_get_contents、file更快更专业,更适合采集。今天就试试用cURL来获取网页上的所有链接。示例如下:

<php

/

使用curl 采集hao123com下的所有链接。

/

include_once('functionphp');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, '>

curl的easy接口中提供了5个与cookie有关的option,其中,CURLOPT_COOKIEFILE,CURLOPT_COOKIEJAR,CURLOPT_COOKIELIST都会打开curl的cookie引擎,使得curl在收到>

设置保存路径

define('IMAGE_DIR', 'c:\\xampp\\htdocs\\scraper\\image\\');

保存函数。

$imageUrl = 你要的的url

$imageType = 你要的保存的格式

saveImage($imageUrl, $imageType = 'IMAGETYPE_GIF') {

if (!file_exists(IMAGE_DIR)) {

mkdir(IMAGE_DIR, 0777, true);

}

if( $imageType === IMAGETYPE_JPEG ) {

$fileExt = 'jpg';

} elseif ( $imageType === IMAGETYPE_GIF ) {

$fileExt = 'gif';

} elseif ( $imageType === IMAGETYPE_PNG ) {

$fileExt = 'png';

}

$newImageName = md5($imageUrl) '' $fileExt;

$image = new Image();

$image->load($imageUrl);

$image->resizeToWidth(100);

$image->save( IMAGE_DIR $newImageName, $imageType );

return $newImageName;

}

这是我的类,保存前可转换格式,大小。

<php

class Image {

private $_image;

private $_imageFormat;

public function load($imageFile) {

$imageInfo = getImageSize($imageFile);

$this->_imageFormat = $imageInfo[2];

if( $this->_imageFormat === IMAGETYPE_JPEG ) {

$this->_image = imagecreatefromjpeg($imageFile);

} elseif( $this->_imageFormat === IMAGETYPE_GIF ) {

$this->_image = imagecreatefromgif($imageFile);

} elseif( $this->_imageFormat === IMAGETYPE_PNG ) {

$this->_image = imagecreatefrompng($imageFile);

}

}

public function save($imageFile, $_imageFormat=IMAGETYPE_JPEG, $compression=75, $permissions=null) {

if( $_imageFormat == IMAGETYPE_JPEG ) {

imagejpeg($this->_image,$imageFile,$compression);

} elseif ( $_imageFormat == IMAGETYPE_GIF ) {

imagegif($this->_image,$imageFile);

} elseif ( $_imageFormat == IMAGETYPE_PNG ) {

imagepng($this->_image,$imageFile);

}

if( $permissions != null) {

chmod($imageFile,$permissions);

}

}

public function getWidth() {

return imagesx($this->_image);

}

public function getHeight() {

return imagesy($this->_image);

}

public function resizeToHeight($height) {

$ratio = $height / $this->getHeight();

$width = $this->getWidth() $ratio;

$this->resize($width,$height);

}

public function resizeToWidth($width) {

$ratio = $width / $this->getWidth();

$height = $this->getheight() $ratio;

$this->resize($width,$height);

}

public function scale($scale) {

$width = $this->getWidth() $scale/100;

$height = $this->getheight() $scale/100;

$this->resize($width,$height);

}

private function resize($width, $height) {

$newImage = imagecreatetruecolor($width, $height);

imagecopyresampled($newImage, $this->_image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());

$this->_image = $newImage;

}

}

>

以上就是关于curl获取的中文乱码要怎么解决全部的内容,包括:curl获取的中文是乱码要怎么解决、php中curl爬虫 怎么样通过网页获取所有链接、如何获取cookie给curl中使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://www.outofmemory.cn/web/9341419.html

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

发表评论

登录后才能评论

评论列表(0条)

保存