ホームページ バックエンド開発 PHPチュートリアル PHP fopen 读取带中文URL地址的一点见解_PHP

PHP fopen 读取带中文URL地址的一点见解_PHP

Jun 01, 2016 pm 12:10 PM
fopen

但昨天在读取一张图片的时候出问题了,后来发现是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 以及以后的版本所支持,仅能用于本地文件。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 警告の解決方法: fopen(): ストリームを開けませんでした: そのようなファイルまたはディレクトリはありません PHP 警告の解決方法: fopen(): ストリームを開けませんでした: そのようなファイルまたはディレクトリはありません Aug 19, 2023 am 10:44 AM

PHPWarning:fopen():failedtoopenstream:No suchfileordirectory PHP 開発を使用する過程で、ファイル操作の問題がよく発生します。その 1 つが「PHPWarning:fopen():failedtoopenstream:No suchfileordirectory」です。

PHP 警告: fopen(): SSL 操作が file.php の X 行目で失敗した場合の解決方法 PHP 警告: fopen(): SSL 操作が file.php の X 行目で失敗した場合の解決方法 Aug 25, 2023 am 09:22 AM

PHPWarning:fopen():SSLoperationfailedinfile.phponlineX を解決する方法 PHP プログラミングでは、fopen 関数を使用してファイルまたは URL を開いて関連する操作を実行することがよくあります。ただし、fopen 関数を使用すると、Warning:fopen():SSLoperationfailedinfile.p のようなエラーが発生することがあります。

PHP 警告の解決方法: fopen(): ストリームを開けませんでした: 許可が拒否されました PHP 警告の解決方法: fopen(): ストリームを開けませんでした: 許可が拒否されました Aug 20, 2023 pm 01:45 PM

PHPWarning:fopen():failedtoopenstream:Permissiondenied を解決する方法 PHP プログラムの開発プロセスでは、PHPWarning:fopen():failedtoopenstream:Permissiondenied などのエラー メッセージに遭遇することがよくあります。このエラーは通常、ファイルまたはディレクトリのアクセス許可が正しくないことが原因で発生します。

Matlab での fopen 関数の使用法 Matlab での fopen 関数の使用法 Nov 28, 2023 am 11:03 AM

Matlab では、関数 fopen を使用してファイルを開き、その後のファイルの読み取りまたは書き込み操作のためにファイル識別子を返します。必要に応じて適切な権限オプションを選択してファイルを開き、操作が完了したらすぐにファイルを閉じます。ファイルを開いた後、システム リソースを解放する必要がなくなった時点でファイルを確実に閉じる必要があることに注意してください。また、ファイルのオープンに失敗したり、操作エラーが発生した場合には、エラー処理機構を使用して適切に処理できます。

PHPでファイル操作にfopen、fwrite、fcloseを使用するにはどうすればよいですか? PHPでファイル操作にfopen、fwrite、fcloseを使用するにはどうすればよいですか? Jun 01, 2023 am 08:46 AM

PHP 開発では、ファイル操作が非常に一般的です。通常の状況では、ファイルの読み取り、書き込み、削除などの操作を実行する必要があります。このうち、fopen 関数と fread 関数はファイルの読み取りに使用でき、fopen 関数、fwrite 関数、fclose 関数はファイルの書き込みに使用できます。この記事では、PHP が fopen、fwrite、fclose を使用してファイル操作を実行する方法を紹介します。 1. fopen 関数 fopen 関数はファイルを開くために使用され、その構文は次のとおりです。

C言語では、fopen()関数を使用して既存のファイルを書き込みモードで開きます。 C言語では、fopen()関数を使用して既存のファイルを書き込みモードで開きます。 Aug 27, 2023 pm 10:33 PM

C の fopen() メソッドは、指定されたファイルを開くために使用されます。問題の構文を理解するために例を見てみましょう FILE*fopen(filename,mode) ファイルを開くために fopen() を使用するための有効なモードは次のとおりです: 'r'、'w'、'a'、'r+'、'w+ '、'a+'。詳細については、C ライブラリ function-fopen() を参照してください。

PHP 警告: fopen(): ストリームを開けませんでした: X 行目の file.php にそのようなファイルまたはディレクトリがありません PHP 警告: fopen(): ストリームを開けませんでした: X 行目の file.php にそのようなファイルまたはディレクトリがありません Aug 26, 2023 pm 12:46 PM

PHPWarning:fopen():failedtoopenstream:No suchfileordirectoryinfile.phponlineX を解決する方法 PHP プログラムを開発および実行するときに、PHPWarning:fopen():failedtoopenstream:No suchfileor が発生することがあります。

PHPでのfopen関数の使用法は何ですか PHPでのfopen関数の使用法は何ですか Sep 18, 2021 pm 03:43 PM

PHPでのfopen関数の使い方は「fopen(filename, mode, include_path, context)」です。 fopen() 関数は、ファイルまたは URL を開くために使用されます。失敗すると、エラー メッセージとともに false が返されます。

See all articles