PHP fopen 读取带中文URL地址的一点见解_PHP
但昨天在读取一张图片的时候出问题了,后来发现是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 以及以后的版本所支持,仅能用于本地文件。 |

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

PHPWarning:fopen():SSLOperationfailedinfile.phponlineX 해결 방법 PHP 프로그래밍에서는 fopen 함수를 사용하여 파일이나 URL을 열고 관련 작업을 수행하는 경우가 많습니다. 그러나 fopen 함수를 사용할 때 때때로 Warning:fopen():SSLOperationfailedinfile.p와 유사한 문제가 발생할 수 있습니다.

PHPWarning:fopen():failedtoopenstream:Permissiondenied 문제 해결 방법 PHP 프로그램을 개발하는 과정에서 PHPWarning:fopen():failedtoopenstream:Permissiondenied와 같은 오류 메시지를 자주 접하게 됩니다. 이 오류는 일반적으로 잘못된 파일 또는 디렉터리 권한으로 인해 발생합니다.

Matlab에서 fopen 함수는 파일을 열고 파일에 대한 후속 읽기 또는 쓰기 작업을 위해 파일 식별자를 반환하는 데 사용됩니다. 필요에 따라 적절한 권한 옵션을 선택하여 파일을 열고 작업이 완료되면 즉시 파일을 닫습니다. 파일을 연 후에는 시스템 리소스를 해제하는 데 더 이상 필요하지 않은 시간에 파일이 닫히는지 확인해야 합니다. 또한 파일 열기에 실패하거나 작업 오류가 발생하는 경우 오류 처리 메커니즘을 사용하여 그에 따라 처리할 수 있습니다.

PHP 개발에서는 파일 작업이 매우 일반적입니다. 정상적인 상황에서는 파일 읽기, 쓰기, 삭제 및 기타 작업을 수행해야 합니다. 그 중 fopen 함수, fread 함수를 사용하여 파일을 읽을 수 있고, fopen 함수, fwrite 함수, fclose 함수를 사용하여 파일을 쓸 수 있습니다. 이 기사에서는 PHP가 fopen, fwrite 및 fclose를 사용하여 파일 작업을 수행하는 방법을 소개합니다. 1. fopen 함수 fopen 함수는 파일을 여는 데 사용됩니다. r은 다음과 같습니다.

C의 fopen() 메소드는 지정된 파일을 여는 데 사용됩니다. 문제 구문 FILE*fopen(filename,mode)을 이해하기 위해 예를 들어 보겠습니다. 다음은 fopen()을 사용하여 파일을 여는 데 유효한 모드입니다: 'r', 'w', 'a', 'r+', 'w+ ', 'a+'. 자세한 내용은 C 라이브러리 함수 fopen()을 참조하세요.

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

PHP에서 fopen 함수의 사용법은 "fopen(filename, mode, include_path, context)"입니다. fopen() 함수는 파일이나 URL을 여는 데 사용됩니다. 실패하면 오류 메시지와 함께 false를 반환합니다.
