国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP fopen 讀取帶中文URL地址的一點見解

2024-05-04 23:13:53
字體:
來源:轉載
供稿:網友
但昨天在讀取一張圖片的時候出問題了,后來發現是URL里帶中文字符。

例如下面這種情況:

復制代碼 代碼如下:


$files = fopen('http://www.website.com/我的PP.jpg', 'rb');


那“$files”的返回值將會是“False”。首先我想到的是將URL用urlencode編碼一下,發現還是不行,原來urlencode會把“:”、“/”字符也編碼了,那URL就不是URL了。呵,說得有些繞口,那就把“:”、“/”字符的編碼替換回來就應該行的。

復制代碼 代碼如下:


$url = 'http://www.website.com/我的PP.jpg';
$url = preg_replace('//%3A/i', ':', preg_replace('//%2F/i', '/', urlencode(urldecode($url)))); $file = fopen($url, 'rb');



試試,嘿~還真是行了。下面再溫習一下fopen()函數:

fopen() 函數打開文件或者URL。 如果打開失敗,本函數返回FALSE。 打開成功,本函數返回TRUE。

一、語法:

復制代碼 代碼如下:

fopen(filename, mode, include_path, context)



參數描述

filename規定要打開的文件或 URL。

mode規定要求到該文件/流的訪問類型。可能的值見下表。

include_path如果也需要在 include_path 中檢索文件的話,可以將該參數設為 1 或 TRUE。

context規定文件句柄的環境。Context 是可以修改流的行為的一套選項。

二、mode 參數的可能的值:

mode說明

"r"只讀方式打開,將文件指針指向文件頭。

"r+"讀寫方式打開,將文件指針指向文件頭。

"w"寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建之。

"w+"讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建之。

"a"寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。

"a+"讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。

"x"創建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。
這和給底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。
此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。

"x+"創建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。
這和給底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。
此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇远县| 杭锦旗| 涿鹿县| 乐东| 禄丰县| 腾冲县| 虞城县| 巴林右旗| 托克托县| 金阳县| 米林县| 娱乐| 文安县| 大同县| 兴仁县| 堆龙德庆县| 广东省| 阳东县| 清河县| 琼海市| 汾西县| 龙游县| 西青区| 庆安县| 武城县| 梁河县| 英吉沙县| 石家庄市| 金门县| 阳谷县| 哈尔滨市| 承德市| 西吉县| 星子县| 抚顺县| 禄劝| 襄垣县| 曲沃县| 凤阳县| 杨浦区| 饶河县|