>  기사  >  php教程  >  PHP에서 fopen() 함수를 통해 원격 파일에 액세스하는 예

PHP에서 fopen() 함수를 통해 원격 파일에 액세스하는 예

高洛峰
高洛峰원래의
2016-12-21 15:50:571840검색

PHP를 사용하면 사용자는 브라우저를 통해 서버 측 파일에 액세스할 수 있을 뿐만 아니라 HTTP 또는 FTP와 같은 프로토콜을 통해 다른 서버의 파일에 액세스할 수도 있습니다. 파일 이름을 매개변수로 요구하는 대부분의 기능에서 HTTP 및 FTP URL을 사용할 수 있습니다. . 파일 이름을 바꾸려면 . fopen() 함수를 사용하여 지정된 파일 이름과 리소스를 스트림에 바인딩합니다. 파일 이름이 "scheme://..." 형식인 경우 URL로 처리되며 PHP는 해당 파일을 검색합니다. 이 모드를 처리하기 위한 프로토콜 프로세서(캡슐화 프로토콜이라고도 함)

원격으로 파일에 액세스해야 하는 경우 PHP 구성 파일에서 "allow_url_fopen" 옵션을 활성화하여 fopen() 함수를 사용하여 원격 파일을 열어야 합니다. 또한 다른 서버의 파일에 액세스 권한이 있는지 확인해야 합니다. HTTP 프로토콜을 사용하여 원격 파일에 연결하는 경우 해당 파일은 "읽기 전용" 모드로만 열 수 있습니다. 액세스해야 하는 원격 FTP 서버에 제공된 사용자에 대해 "쓰기 가능 권한"이 활성화된 경우 FTP 프로토콜을 사용하여 원격 파일에 연결할 때 "쓰기 전용" 또는 "읽기 전용" 모드를 사용할 수 있습니다. 그러나 "읽기 및 쓰기 가능" 모드는 사용할 수 없습니다.

PHP를 사용하여 원격 파일에 액세스하는 것은 로컬 파일에 액세스하는 것과 같습니다. 원격 웹 서버. 필요한 출력 데이터를 구문 분석한 다음 이 데이터를 데이터베이스 검색에 사용하거나 단순히 웹 사이트 콘텐츠의 나머지 부분과 일치하는 스타일로 출력합니다.

<?php
//通过http打开远程文件
$file = fopen(http://www.php.cn, "r") or die("打开远程文件失败!!");
while (!feof($file)){
    $line = fgets($file,1024);     //每读取一行
//如果找到远程文件中的标题标记则取出标题,并退出循环,不在读取文件
    if (preg_match("/<titile>(.*/)<\/title>",$line,$out)){     //使用正则匹配标题标记
        $title = $out[1];     //将标题标记中的标题字符取出
        break;     //退出循环,结束远程文件读取
    }
}
 
fclose($file);
echo $title;
?>

합법적인 접근 권한이 있는 경우, 사용자로 FTP 서버에 연결하여 FTP 서버에 있는 파일에 쓸 수 있습니다. 이 기술을 사용하여 원격 로그 파일을 저장할 수 있지만, 이 방법은 기존 파일을 덮어쓰려고 하면 fopen() 함수 호출이 실패하므로 익명이 아닌 사용자 이름으로 서버에 연결해야 합니다. 사용자 이름(또는 비밀번호)을 지정해야 합니다. 예를 들어 "ftp://user:password@ftp.lampbrother.net/path/to/file"은 다음과 같습니다.

<?php
    //在ftp.lampbrother.net的远程服务器上创建文件,以写的模式打开
    file = fopen("ftp://user:password@ftp.lapbrother.net/path/to/file", "w");
    //将一个字符串写入到远程文件中去
    fwrite($file, "Linux+Apache+MySQL+PHP");
 
    fclose($file);
?>

원격 호스트에 액세스할 때 시간 초과 오류를 방지하려면 set_time_limit() 함수를 사용하여 프로그램의 실행 시간을 제한할 수 있습니다.

PHP의 fopen() 함수를 통해 원격 파일에 액세스하는 방법에 대한 자세한 내용은 다음과 같습니다. , PHP 중국어 웹사이트를 팔로우하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.