Получить содержимое файла домена в другом домене на том же сервере

У меня есть два домена на одном сервере. www.domain1.com и www.domain2.com.

на www.domain1.com есть папка под названием «Картинки». В эту папку пользователь может загружать свои фотографии, создавая папку по их идентификатору. (www.domain1.com/Pictures/User_iD) Эскиз создается с использованием загруженного изображения в одно и то же время и сохраняется на этом пути, который создается динамически. (www.domain1.com/Pictures/User_iD/thumbs)

Это происходит с использованием PHP-скрипта в нашей системе.

Поэтому моя проблема: мне нужно отображать эти загруженные пользователем изображения на www.domain2.com. Я использовал следующий код для этого, но он не работает.

$image_path="http://www.domain1.com/Pictures/"."$user_id"; $thumb_path="http://www.domain1.com/Pictures/"."$user_id/"."thumbs"; $images = glob($image_path.'/*.{jpg,jpeg,png,gif}', GLOB_BRACE); 

получая изображения, подобные этому,

  foreach ($images as $image) { // Construct path to thumbnail $thumbnail = $thumb_path .'/'. basename($image); // Check if thumbnail exists if (!file_exists($thumbnail)) { continue; // skip this image } 

но когда я попытаюсь это сделать, изображения не будут отображаться на www.domain2.com/user.php. если я использую тот же код для отображения изображений, которые находятся в одном домене, изображения выглядят отлично.

Надеюсь, я правильно объясню ситуацию. Пожалуйста помоги.

заранее спасибо

Glob требует доступа к файлам. Но так как он находится в другом домене. Он не получает доступ к файлам (и не должен). Даже если они находятся на одном сервере, они не должны иметь доступ к файлам друг друга по многим причинам.

Что вы можете сделать, так это написать небольшой API на домене1.com, который возвращает список изображений для определенного пользователя. Затем вы получаете доступ к этой информации, используя forntnt curl

на domain1.com, где хранятся снимки:

 <?php //get the user id from the request $user_id = $_GET['user_id']; $pathToImageFolder = 'path_to_pictures' . $user_id ; $images = glob($pathToImageFolder.'/*.{jpg,jpeg,png,gif}', GLOB_BRACE); //return a JSON array of images print json_encode($images,true); #the true forces it to be an array 

на домен2.com:

 <?php //retrieve the pictures $picturesJSON = file_get_contents('http://www.domain1.com/api/images.php?user_id=1'); //because our little API returns JSON data, we have to decode it first $pictures = json_decode($picturesJSON); // $pictures is now an array of pictures for the given 'user_id' 

Заметки:

1) Я использовал file_get_contents вместо curl здесь, так как это проще в использовании. Но не все хосты разрешают файлу_get_contents в другом домене. Если они не позволяют использовать завиток (в Интернете много обучающих программ)

2) Вы должны проверить правильность $ user_id и даже добавить секретный ключ к запросу, чтобы сохранить hack0rs. например: file_get_contents('http://www.domain1.com/api/images.pgp?user_id=1&secret=mySecret') а затем на domain1.com выполните проверку на симплекс, чтобы убедиться, или секрет верен.