백엔드 개발 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 Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 경고 해결 방법: fopen(): 스트림을 열지 못했습니다: 해당 파일이나 디렉터리가 없습니다. PHP 경고 해결 방법: fopen(): 스트림을 열지 못했습니다: 해당 파일이나 디렉터리가 없습니다. Aug 19, 2023 am 10:44 AM

PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory 해결 방법 PHP 개발을 사용하는 과정에서 "PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory"와 같은 파일 작업 문제가 종종 발생합니다.

PHP 경고 해결 방법: fopen(): X 라인의 file.php에서 SSL 작업이 실패했습니다. PHP 경고 해결 방법: fopen(): X 라인의 file.php에서 SSL 작업이 실패했습니다. 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 함수는 파일을 여는 데 사용됩니다. r은 다음과 같습니다.

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 라이브러리 함수 fopen()을 참조하세요.

如何解决PHP 경고: fopen(): 스트림을 열지 못했습니다: X 라인의 file.php에 해당 파일이나 디렉터리가 없습니다. 如何解决PHP 경고: fopen(): 스트림을 열지 못했습니다: X 라인의 file.php에 해당 파일이나 디렉터리가 없습니다. Aug 26, 2023 pm 12:46 PM

PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectoryinfile.phponlineX를 해결하는 방법 PHP 프로그램을 개발하고 실행할 때 때때로 PHPWarning:fopen():failedtoopenstream:Nosuchfileor가 발생합니다.

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