Користење на далечински датотеки
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Користење на далечински датотеки
Референца за `features.remote-files.php` со подобрена типографија и навигација.
Користење на далечински датотеки
Сè додека allow_url_fopen е овозможено во php.ini, можете да користите HTTP and FTP URL-и со повеќето од функциите што земаат име на датотека како параметар. Покрај тоа, URL-ите може да се користат со include, include_once, require and require_once изјави (allow_url_include мора да биде овозможено за овие). Видете Поддржани протоколи и обвивки за повеќе информации за протоколите поддржани од PHP.
На пример, можете да го користите ова за да отворите датотека на оддалечен веб-сервер, да го анализирате излезот за податоците што ги сакате, а потоа да ги користите тие податоци во барање до базата на податоци, или едноставно да ги прикажете во стил што одговара на остатокот од вашата веб-страница.
Пример #1 Добивање на насловот на оддалечена страница
<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
echo "<p>Unable to open remote file.\n";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
/* This only works if the title and its tags are on one line */
if (preg_match ("@\<title\>(.*)\</title\>@i", $line, $out)) {
$title = $out[1];
break;
}
}
fclose($file);
?>Можете исто така да пишувате во датотеки на FTP сервер (под услов да сте се поврзале како корисник со соодветни права за пристап). Можете да креирате само нови датотеки со овој метод; ако се обидете да презапишете датотека што веќе постои, повикот fopen() ќе пропадне.
За да се поврзете како корисник различен од 'anonymous', треба да го наведете корисничкото име (и евентуално лозинката) во URL-то, како што е 'ftp://user:[email protected]/path/to/file'. (Можете да го користите истиот вид на синтакса за пристап до датотеки преку
HTTP кога тие бараат основна автентикација.)
Пример #2 Чување податоци на оддалечен сервер
<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
echo "<p>Unable to open remote file for writing.\n";
exit;
}
/* Write the data here. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>
Забелешка:
Можеби ќе ја добиете идејата од горниот пример дека можете да ја користите оваа техника за да пишувате во оддалечена датотека за евиденција. За жал, тоа нема да работи бидејќи повикот fopen() ќе пропадне ако оддалечената датотека веќе постои. За да направите дистрибуирано евидентирање на тој начин, треба да го погледнете syslog().