2009-08-10 5 views
2

Возможно ли использовать серверную часть для доступа к файлам, находящимся за пределами сервера?На стороне сервера

Если нет, то каковы другие варианты для этого?

+0

Я пытаюсь получить доступ к информации из txt-файла, который будет находиться за пределами папки на диске, чтобы люди могли загружать информацию в этот файл, и она могла отображаться на веб-сайте, быть опубликованным – 2009-08-10 20:09:09

+0

ничего себе, я не слышал о SSI с looooong времени ... –

ответ

1

Вы можете сделать что-то вроде file_get_contents() или fopen(), чтобы сделать это в php, например.

<?php 
    echo file_get_contents('http://www.example.com/include'); 
?> 
3

Использование cURL для получения данных за пределами домена. Если вы хотите затем выполнить данные, которые вы получаете, перейдите и eval(). Но, быть предупреждены, что это получит «выход» на странице. Значение, если это выполненная страница, такая как страница «.php», вы получите данные, которые появляются в результате обработки.

<?php 
// create a new cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

// grab URL and pass it to the browser 
curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 
?> 

То же самое верно и для file_get_contents() и fopen()

Если вы хотите, чтобы захватить «фактические» содержимое файла, вы хотите настроить прокси рода на другом сервере. (Вы не можете сделать это на своем сервере, потому что тогда это будет недостатком безопасности в том, как работает серверный скриптинг).

<?php 

// Read the requested file out 
readfile($_GET['file']); 

Это даст вам содержимое любого файла вы запрашиваете:

http://test.com/handler.php?file=handler.php

Но, если кто-то находит его, это может быть опасно.

0

Да, на стороне сервера Nginx включает в себя может использовать любой полный URL-адрес, например:

<!--# include virtual="http://www.stackoverflow.com/" --> 
1

Вы не упоминаете серверное программное обеспечение, но я предполагаю, что Apache, где SSI обеспечиваемой mod_include модуля. Элемент включает в себя элемент, который не позволяет удалять файлы. Однако у вас есть exec, что позволяет выполнять любой внешний инструмент; вы можете использовать его для вызова wget или любой другой команды по вашему выбору.

Однако это может быть не так сложно. Если вы можете подключить удаленный каталог в локальной системе, вы можете создать простую символическую ссылку и использовать обычный , включая.

Или, как уже было сказано, PHP очень прост в использовании.

Смежные вопросы