昨天發現以前做的調用 中國天氣網的天氣api,保存到本地發現有部分城市是亂碼。
一直找不到原因。因為在瀏覽器看 完全正常。 如。讀 銀川市的當天天氣 http://m.weather.com.cn/data/101170101.html
在瀏覽器上看它的json資料 完全正常。編碼也正常。但用file_get_contents 讀取在瀏覽器輸出就是亂碼。
<span>$url</span> = 'http://m.weather.com.cn/data/101170101.html'<span>; </span><span>echo</span> '<pre class="brush:php;toolbar:false">'<span>; </span><span>print_r</span>(<span>file_get_contents</span>(<span>$url</span>));
在網上忙活一陣才發現 原因 中國天氣網開啟了gzip壓縮 。找到了解決方法 來自 http://www.php10086.com/2012/03/516.html
PHP的file_get_contents取得遠端頁面內容,如果是gzip編碼過的,回傳的字串就是編碼後的亂碼,如何解決gzip問題方法有兩種:
curl解決:
<span>function</span> curl_get(<span>$url</span>, <span>$gzip</span>=<span>false</span><span>){ </span><span>$curl</span> = curl_init(<span>$url</span><span>); curl_setopt(</span><span>$curl</span>, CURLOPT_RETURNTRANSFER, 1<span>); curl_setopt(</span><span>$curl</span>, CURLOPT_CONNECTTIMEOUT, 10<span>); </span><span>if</span>(<span>$gzip</span>) curl_setopt(<span>$curl</span>, CURLOPT_ENCODING, "gzip"); <span>//</span><span> 关键在这里</span><span>$content</span> = curl_exec(<span>$curl</span><span>); curl_close(</span><span>$curl</span><span>); </span><span>return</span><span>$content</span><span>; }</span>
:
<span>file_get_contents</span>("compress.zlib://".<span>$url</span>);
無論頁面是否經過gzip壓縮,上述程式碼都可以正常運作!
PHP 4.3.0以後版本支持,還可以用於fopen之類的函數~! 解決方法:
<span>$url</span> = 'http://m.weather.com.cn/data/101170101.html'<span>; </span><span>echo</span> '<pre class="brush:php;toolbar:false">'<span>; </span><span>print_r</span>(<span>file_get_contents</span>("compress.zlib://".<span>$url</span>));<span>//</span><span>打开gzip压缩过的页面。 路径前不加compress.zlib:// 打开会有乱码。 </span>
以上就介紹了php file_get_contents讀取遠端檔案的亂碼問題gzip壓縮引起的,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

curl和Pythonrequests都是发送HTTP请求的强大工具。虽然curl是一种命令行工具,可让您直接从终端发送请求,但Python的请求库提供了一种更具编程性的方式来从Python代码中发送请求。将curl转换为Pythonrequestscurl命令的基本语法如下所示:curl[OPTIONS]URL将curl命令转换为Python请求时,我们需要将选项和URL转换为Python代码。这是一个示例curlPOST命令:curl-XPOSThttps://example.com/api

在Linux下更新curl版本,您可以按照以下步骤进行操作:检查当前curl版本:首先,您需要确定当前系统中安装的curl版本。打开终端,并执行以下命令:curl--version该命令将显示当前curl的版本信息。确认可用的curl版本:在更新curl之前,您需要确定可用的最新版本。您可以访问curl的官方网站(curl.haxx.se)或相关的软件源,查找最新版本的curl。下载curl源代码:使用curl或浏览器,下载您选择的curl版本的源代码文件(通常为.tar.gz或.tar.bz2

php blob转file的方法:1、创建一个php示例文件;2、通过“function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })}”方法实现Blob转File即可。

PHP8.1发布:引入curl多个请求并发处理近日,PHP官方发布了最新版本的PHP8.1,其中引入了一个重要的特性:curl多个请求并发处理。这个新特性为开发者提供了一个更加高效和灵活的方式来处理多个HTTP请求,极大地提升了性能和用户体验。在以往的版本中,处理多个请求往往需要通过创建多个curl资源,并使用循环来分别发送和接收数据。这种方式虽然能够实现目

从头到尾:如何使用php扩展cURL进行HTTP请求引言:在Web开发中,经常需要与第三方API或其他远程服务器进行通信。而使用cURL进行HTTP请求是一种常见而强大的方式。本文将介绍如何使用php扩展cURL来执行HTTP请求,并提供一些实用的代码示例。一、准备工作首先,确保php已安装cURL扩展。可以在命令行执行php-m|grepcurl查

PHPCurl中如何处理网页的301重定向?在使用PHPCurl发送网络请求时,时常会遇到网页返回的301状态码,表示页面被永久重定向。为了正确处理这种情况,我们需要在Curl请求中添加一些特定的选项和处理逻辑。下面将详细介绍在PHPCurl中如何处理网页的301重定向,并提供具体的代码示例。301重定向处理原理301重定向是指服务器返回了一个30

Nginx开启Gzip压缩功能,可以使网站的css、js、xml、html文件在传输时进行压缩,提高访问速度,进而优化Nginx性能!Web网站上的图片,视频等其它多媒体文件以及大文件,因为压缩效果不好,所以对于图片没有必要支压缩,如果想要优化,可以图片的生命周期设置长一点,让客户端来缓存。开启Gzip功能后,Nginx服务器会根据配置的策略对发送的内容,如css、js、xml、html等静态资源进行压缩,使得这些内容大小减少,在用户接收到返回内容之前对其进行处理,以压缩后的数据展现给客户。这样

动态压缩动态压缩实际上就是由nginx服务器对编译造物进行压缩,需要在nginx.conf的http、https模块中开启下面的配置:gzipon;#开启gizo压缩gzip_min_length1k;#gizp压缩起点,文件大于1k才进行压缩gzip_comp_level6;#压缩级别数字越大压缩得越小但是越耗性能根据实际情况而定gzip_proxiedany;#nginx做为反向代理时启用,详细见官方文档:http://nginx.org/en/docs/http/ngx_http_gzip


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),