您的位置:

关于phpcurlgb2312的信息

本文目录一览:

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

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

例:

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

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

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

php curl 本地测试可用,线上测试报错

?php

/*****************************************************

程序名称: curl使用测试

程序说明: 股票页面信息获取

编写时间: 2011年2月12日

编写人员: 童童

修改时间:

修改人员: 童童

备 注:

****************************************************/

$GPNumber = '000877';

$curlPost = 'gpdm=' . urlencode($GPNumber);

//初始化

$ch = curl_init();

//设置选项(直接设置或者通过数组设置)

//直接设置

//设置你需要抓取的URL

curl_setopt($ch, CURLOPT_URL, "");

//通过数组设置

/*

$options = array(

CURLOPT_URL = '',

CURLOPT_HEADER = false

);

curl_setopt_array($ch, $options);

*/

// 设置header

curl_setopt($ch, CURLOPT_HEADER, 1);

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//设置使用POST方式

curl_setopt($ch, CURLOPT_POST, 1);

//设置POST数据

curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

//执行并获取HTML文档内容

$str = curl_exec($ch);

//转换编码

$str = mb_convert_encoding($str, "utf-8", "gb2312");

//$str = mb_convert_encoding($str, "gb2312", "utf-8");

//ini_set('max_execution_time', '180');

set_time_limit(1800);

//处理内容

$str1 = "/tr[^]*td[^]*(?value1.*?)//td[^]*td[^]*(?value2.*?)//td[^]*td[^]*(?value3.*?)//td[^]*td[^]*(?value4.*?)//br//[//s//S]*////a////td[^]*td[^]*(?value5.*?)//td[^]*td[^]*(?value6.*?)//td[^]*td[^]*(?value7.*?)//td[^]*td[^]*(?value8.*?)//td[^]*td[^]*(?value9.*?)//td[^]*td[^]*(?value10.*?)//td[^]*td[^]*(?value11.*?)//td[^]*td[^]*(?value12.*?)//td[^]*td[^]*(?value13.*?)//td[^]*td[^]*(?value14.*?)//td[^]*td[^]*(?value15.*?)//td[^]*td[^]*(?value16.*?)//td[^]*td[^]*(?value17.*?)//td[^]*td[^]*(?value18.*?)//td[^]*td[^]*(?value19.*?)//td[^]*td[^]*(?value20.*?)//td[^]*td[^]*(?value21.*?)//td[^]*td[^]*(?value22.*?)//td[^]*td[^]*(?value23.*?)//td[^]*td[^]*(?value24.*?)//td[^]*td[^]*(?value25.*?)//td[^]*td[^]*(?value26.*?)//td[^]*td[^]*(?value27.*?)//td[^]*td[^]*(?value28.*?)//td[^]*td[^]*(?value29.*?)//td[^]*td[^]*(?value30.*?)//td[^]*td[^]*(?value31.*?)//td[^]*td[^]*(?value32.*?)//td[^]*td[^]*(?value33.*?)//td[^]*td[^]*(?value34.*?)//td[^]*td[^]*(?value35.*?)//td[^]*td[^]*(?value36.*?)//td[^]*td[^]*(?value37.*?)//td[^]*td[^]*(?value38.*?)//td[^]*td[^]*(?value39.*?)//td[^]*td[^]*(?value40.*?)//td[^]*td[^]*(?value41.*?)//td[^]*td[^]*(?value42.*?)//td[^]*td[^]*(?value43.*?)//td[^]*td[^]*(?value44.*?)//td[^]*td[^]*(?value45.*?)//td[^]*td[^]*(?value46.*?)//td[^]*td[^]*(?value47.*?)//td[^]*td[^]*(?value48.*?)//td[^]*td[^]*(?value49.*?)//td[^]*//tr/";

$str2 = "tr bgcolor='#EDEDED' height='20'td2011年2月11日/tdtd16:12/tdtd000877/tdtd class=tdred天山股份 bra target='_blank' href="" mce_href=""分时ddx/a a target='_blank' href="" mce_href=""点评/a a target='_blank' href="" mce_href=""新闻/a a target='_blank' href="gpdmyd.asp?gpdm=000877" mce_href="gpdmyd.asp?gpdm=000877"异动/a a target='_blank' href="" mce_href=""股东/a/tdtd33.81/tdtd class=tdred6.42/tdtd class=tdred0.241/tdtd0.287/tdtd16.748/td td class=tdbgred2468/td td class=tdred1251/td td class=tdred1217/td td class=tdred-676/td td class=tdred-1792/td td class=tdbgred8.76/tdtd class=tdred17.28/tdtd class=tdred7.3/tdtd0.414/tdtd0.396/tdtd0.053/tdtd-2.067/tdtd7/tdtd2/tdtd class=tdred3.7/tdtd3.6/tdtd-2.0/tdtd class=tdred-5.3/tdtd107/tdtd1.19/tdtd class=tdred-5401/tdtd131/tdtd7119/tdtd8479/tdtd14.3/tdtd12.0/tdtd-1792/tdtd2468/tdtd6.0/tdtd2.3/tdtd51.1/tdtd47.5/tdtd18.5/tdtd20.5/tdtd24.4/tdtd29.7/tdtd3.30/tdtd1.85/tdtd18.74③/tdtd1.353/td/tr";

echo preg_match_all($str1,$str,$strs);

/*

foreach ($strs as $row)

{

echo mb_convert_encoding($row, "utf-8", "gb2312")."/br";

}

*/

/*

if ($output === FALSE) {

echo "cURL Error: " . curl_error($ch);

}

*/

//var_dump($str);

//释放curl句柄

curl_close($ch);

?

使用CURL伪造来源网址与IP

很多投票都有对来路的网址和IP进行验证,但是使用CURL可以伪造成任意的网址与IP,以绕过一些简单的验证,下面举一个简单的例子。程序运行之前,请确保 php.ini 中 extension=php_curl.dll

视图是用户用户能看到你的网站的所有。 他们使用一个统一的接口, 而且可以根据需要进行修改。 MVC 的好处之一是你分开了表示层和逻辑层, 一切都显得很干净。视图实际上是一组包含有你的内容的HTML结构。结构中有各种元素,如颜色,字体,文字布局等; 不过视图不关心这些,它要做的只是取来内容,显示出来。

一般我们在控制器中这样定义:

function index() {

  $data['mytitle']    = "A website monitoring tool";

  $data['mytext']    = "This website helps you to keep track of the other websites you control.";

  $this-load-view('basic_view',$data);

}

我们把$data数组作为$this-load-view()的第二个叁数,在视图名称之后。视图接收到$data数组后,使用PHP函数extract()把数组中的每个元素转换成内存变量,数组的键名即为变量名,值为变量内所包含的值。这些变量的值能直接被视图引用:

虽然你只能传送一个变量到视图, 但是通过建立数组,你能把大量变量整洁地传入视图。它似乎复杂, 但是实际上是一种紧凑和优秀的信息传输方式。

如果传递过来的数组是包含多个数据,那么就需要遍历,操作一般如下。先是控制器:

$data["notice"] =array('aaa','bbb');

$this-load-view('api/notice',$data);

视图中解析:

if(count($notice)0){

        foreach($notice as $key =$value ){

?

    }

?

再说下二维数组的传递与遍历问题。下面的程序实现遍历某个目录下的文件。

class Data extends CI_Controller {

public function index()

{

$this-load-helper('url');

$data['page_title'] = '简明现代魔法';

$data['pre_url'] = 'application/views/default/';

    $this-load-view('default/header', $data);

      $this-load-view('default/index', $data);

      $this-load-view('default/footer');

//$this-load-view('index');

}

public function gdnews()

{

$this-load-helper('url');

$arr = array();

function tree($directory)

{

$mydir = dir($directory);

while($file = $mydir-read())

{

// 是目录的话

if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))

{

//echo "

$file

\n";

//tree("$directory/$file");

}

// 不是目录

else

{

$arr['name'][] = @iconv('GB2312','UTF-8',$file);

$arr['time'][] = @iconv('GB2312','UTF-8',date('Y-m-d H:i:s', filemtime($file)));

}

}

$mydir-close();

return $arr;

}

$dir = "datas/gdnews/";

$arr = tree($dir);

$data['files'] = $arr;

$data['page_title'] = '简明现代魔法' ;

$data['dir'] = $dir;

$this-load-view('default/header', $data);

    $this-load-view('default/data', $data);

      $this-load-view('default/footer');

}

}

?

在视图中这么输出就可以:

    if(count($files)0)

{

        foreach($files['name'] as $key =$value ){

?

}

}

?

你是否有这样的烦恼,想学习高级技术,缺乏好的高级学习资料,收集了部分12年网站架构师授课的TP5、laravel、swoole、swoft、高并发、分布式等资料,现在免费分享给大家,官方群:820469789,大牛带你装逼带你飞

php获取网页源码内容有哪些办法

可以参考以下几种方法:

方法一: file_get_contents获取

span style="white-space:pre" /span$url="";

span style="white-space:pre" /span$fh= file_get_contents

('');span style="white-space:pre" /spanecho $fh;

方法二:使用fopen获取网页源代码

span style="white-space:pre" /span$url="";

span style="white-space:pre" /span$handle = fopen ($url, "rb");

span style="white-space:pre" /span$contents = "";

span style="white-space:pre" /spanwhile (!feof($handle)) {

span style="white-space:pre"  /span$contents .= fread($handle, 8192);

span style="white-space:pre" /span}

span style="white-space:pre" /spanfclose($handle);

span style="white-space:pre" /spanecho $contents; //输出获取到得内容。

方法三:使用CURL获取网页源代码

$url="";

$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$curl = curl_init(); //创建一个新的CURL资源

curl_setopt($curl, CURLOPT_URL, $url); //设置URL和相应的选项

curl_setopt($curl, CURLOPT_HEADER, 0);  //0表示不输出Header,1表示输出

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息,1显示,0不显示。//如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_ENCODING, ''); //设置编码格式,为空表示支持所有格式的编码

//header中“Accept-Encoding: ”部分的内容,支持的编码格式为:"identity","deflate","gzip"。

curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

//设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。

$data = curl_exec($curl);

echo $data;

//echo curl_errno($curl); //返回0时表示程序执行成功

curl_close($curl); //关闭cURL资源,并释放系统资源

拓展资料

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。

用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

参考资料:PHP(超文本预处理器)-百度百科

PHP 如何获取到一个网页的内容

1.file_get_contents

PHP代码

复制代码 代码如下:

?php

$url = "";

$contents = file_get_contents($url);

//如果出现中文乱码使用下面代码

//$getcontent = iconv("gb2312", "utf-8",$contents);

echo $contents;

?

2.curl

PHP代码

复制代码 代码如下:

?php

$url = "";

$ch = curl_init();

$timeout = 5;

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

//在需要用户检测的网页里需要增加下面两行

//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);

$contents = curl_exec($ch);

curl_close($ch);

echo $contents;

?

3.fopen-fread-fclose

PHP代码

复制代码 代码如下:

?php

$handle = fopen ("", "rb");

$contents = "";

do {

$data = fread($handle, 1024);

if (strlen($data) == 0) {

break;

}

$contents .= $data;

} while(true);

fclose ($handle);

echo $contents;

?

注:

1.

使用file_get_contents和fopen必须空间开启allow_url_fopen。方法:编辑php.ini,设置

allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。

2.使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分

号去掉,而且需要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安装curl扩

展。

解决php curl显示乱码

弄明白目标网页的编码和你自己显示内容网页的编码,使用PHP函数mb_convert_encoding()转换编码即可。

例如:

/* 转换utf-8为gb2312 */

$str = mb_convert_encoding($str, "gb2312", "utf-8");