關於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”);

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/231507.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 01:04
下一篇 2024-12-11 01:04

相關推薦

  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27
  • 通過提交信息搜索-使用git

    本篇文章重點講解如何使用git通過提交信息來搜索。我們將從多個方面介紹如何使用git來搜索提交信息,並提供相應的代碼示例以供參考。 一、搜索方式 Git提供了三種搜索方式,分別為:…

    編程 2025-04-27
  • 已裝備我軍的空中信息化作戰平台

    本文將會從多個方面詳細闡述已裝備我軍的空中信息化作戰平台。 一、平台概述 已裝備我軍的空中信息化作戰平台是一個全新的作戰系統,具備實時數據採集、處理、分析、共享的能力。它可以在不同…

    編程 2025-04-27
  • Linux查看系統信息

    一、CPU信息 Linux系統下,查看CPU的信息最常用的命令是lscpu。該命令可以顯示CPU架構、核心數量、線程數、緩存大小、CPU頻率等信息。例如: lscpu 該命令會輸出…

    編程 2025-04-24
  • 軟考 信息安全工程師

    軟考 信息安全工程師是一項技能型國家級資格認證考試,主要測試考生在信息安全領域的理論知識和實踐技能,是證明個人信息安全能力的重要證書。本文將從多個方面對軟考 信息安全工程師做詳細的…

    編程 2025-04-23

發表回復

登錄後才能評論