Как скрыть url картинки

Статус
В этой теме нельзя размещать новые ответы.
Лепи дополнительный слой над каждой картинкой с пустым прозрачным изображением внутри.
Да интересно, вот только мне нужно сохранить чтобы картинка открывалась полноразмерно по клику. Как это сделать при данном исполнении?
 
Покажи тэги, которыми выводишь 1 картинку, любую.
стандартно вывожу
<a href="Для просмотра ссылки Войди или Зарегистрируйся" target="_blank" title="Открыть в полном размере"> <img src="Для просмотра ссылки Войди или Зарегистрируйся" style="max-width: 120px; height: auto;"></a>
нужно чтобы при наведении на ссылку не было видно домена на котором расположена картинка в данном примере - Для просмотра ссылки Войди или Зарегистрируйся
 
Подробно может кто нибудь расписать? Или задача не выполнима без загрузки изображений на на свой сервер или в облако?
Вы скажите-то толком, зачем Вам это? Вы же понимаете, что при подмене адреса неправильным картинка перестанет отображаться?

Чтобы на своём сайте выводить чужие картинки, выдавая за свои адреса, можно использовать следующий алгоритм:
1. Берём реальный урл картинки и шифруем обратимым шифрованием, например base64 с помощью base64_encode
2. Создаем файл php, отображающий картинки, например img.php В качестве адреса картинки передаем ему шифрованный адрес из п. 1, если в файл прилетит гет-параметр img. Примерно так:
PHP:
if (isset($_GET['img'])) {
   $filename=base64_decode($_GET['img']);
    $file=file_get_contents($filename);
    if (!empty($file)){
       $info=strtolower(end(explode(".", $filename)));
        switch  ($info){
            case 'gif': $ext='gif'; break;
            case 'jpg': $ext='jpeg'; break;
            case 'jpeg': $ext='jpeg'; break;
            case 'png': $ext='png'; break;
            case 'bmp': $ext='bmp'; break;
            default: die();
        }
        header("Content-type: image/$ext");
        echo $file;
        die();
    }
}
3. Подменяем реальные адреса картинок 'src="'.$filename.'"' на 'src="img.php?img='.base64_encode($filename).'"' В результате адреса реальных картинок скрыты. img.php работает как прокси, беря контент с чужого сайта и отображая на своем. В идеале дописать этот код так, чтобы раз взятая картинка сохранялась (кешировалась) на своем сервере и при повторном заходе уже бралась из кеша. Ну тут конечно надо иметь ресурс жесткого диска на хостинге. А так напрямую может подтормаживать и зря жрать трафик, к тому же сторонние картинки иногда могут сменить место или внезапно удалиться.

Алгоритм не проверял, могут быть опечатки.
 
Последнее редактирование:
нужно чтобы при наведении на ссылку не было видно домена на котором расположена картинка
HTML:
<a href="https://ya.ru" onclick="window.open('https://www.nulled.cc/styles/default/nulled/logo.png'); return false;" title="Открыть в полном размере"><img src="https://www.nulled.cc/styles/default/nulled/logo.png" style="max-width: 120px; height: auto;"></a>
 
<a href="Для просмотра ссылки Войди или Зарегистрируйся" onclick="window.open('Для просмотра ссылки Войди или Зарегистрируйся return false;" title="Открыть в полном размере"><img src="Для просмотра ссылки Войди или Зарегистрируйся" style="max-width: 120px; height: auto;"></a>
Не подходит. При клике изображение открывается на том сайте который нужно скрыть.
 
Не подходит. При клике изображение открывается на том сайте который нужно скрыть.
...и выясняется это только сейчас. что было прошено, то я и сделал. так бы сразу и говорили: нужна полная подмена везде абсолютно. а то вводите в заблуждение неправильными формулировками вопроса.
выше вам написали пример, как делать на php. вот так и делайте, как советуют.
 
Вы скажите-то толком, зачем Вам это? Вы же понимаете, что при подмене адреса неправильным картинка перестанет отображаться?

Чтобы на своём сайте выводить чужие картинки, выдавая за свои адреса, можно использовать следующий алгоритм:
1. Берём реальный урл картинки и шифруем обратимым шифрованием, например base64 с помощью base64_encode
2. Создаем файл php, отображающий картинки, например img.php В качестве адреса картинки передаем ему шифрованный адрес из п. 1, если в файл прилетит гет-параметр img. Примерно так:
PHP:
if (isset($_GET['img'])) {
   $filename=base64_decode($_GET['img']);
    $file=file_get_contents($filename);
    if (!empty($file)){
       $info=strtolower(end(explode(".", $filename)));
        switch  ($info){
            case 'gif': $ext='gif'; break;
            case 'jpg': $ext='jpeg'; break;
            case 'jpeg': $ext='jpeg'; break;
            case 'png': $ext='png'; break;
            case 'bmp': $ext='bmp'; break;
            default: die();
        }
        header("Content-type: image/$ext");
        echo $file;
        die();
    }
}
3. Подменяем реальные адреса картинок 'src="'.$filename.'"' на 'src="img.php?img='.base64_encode($filename).'"' В результате адреса реальных картинок скрыты. img.php работает как прокси, беря контент с чужого сайта и отображая на своем. В идеале дописать этот код так, чтобы раз взятая картинка сохранялась (кешировалась) на своем сервере и при повторном заходе уже бралась из кеша. Ну тут конечно надо иметь ресурс жесткого диска на хостинге. А так напрямую может подтормаживать и зря жрать трафик, к тому же сторонние картинки иногда могут сменить место или внезапно удалиться.

Алгоритм не проверял, могут быть опечатки.
Полностью поддерживаю данного участника. Этот вариант является самым верным и самым надежным. Еще один вариант - это копировать сначала картинку к вам на сайт и потом подменять УРЛ, но это будет занимать больше времени и ресурсов.
 
а то вводите в заблуждение неправильными формулировками вопроса.
На сайте А располагаются картинки с сайта Б нужно чтобы пользователь не видел сайт Б.
Что здесь не правильно сформулировано?
 
Не подходит. При клике изображение открывается на том сайте который нужно скрыть.
можно картинку скрытно преобразовать в холст канвас.
примерно набросал
HTML:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
  <script>
$(document).ready(function(){
  $('.hide_url').on('mouseenter click', function(e){
    var $t = $(this);
    var href = $t.attr('href');
    if(href != '#'){
     $t.data('href', href); // сохр значение href
     $t.attr('href','#'); // меняем значение href
    }
    if(e.type == 'click'){
      var img = $('<img />', { // созд объект картинки
        src: $t.data('href')
      });
      img.load(function(){ // ивент загрузки
        var cnv = document.createElement('canvas'); // созд канву
        cnv.width = this.naturalWidth;
        cnv.height = this.naturalHeight;
        var cnt = cnv.getContext('2d');
        cnt.drawImage(this, 0, 0); // заполняем полигон изображением
        var wnd = window.open();
        $(wnd.document.body).append(cnv); // вставляем канву в новое окно ( лучше переделать на модальное окно)
      });
    }
  return false;
});
});
</script>
  <title>JS Bin</title>
</head>
<body>

<a class="hide_url" href="http://djinjik.ru/uploads/posts/2017-05/prognoz-kursa-dollara-2017-sovety-ekspertov_1.jpg">
  <img src="https://www.intuit.ru/EDI/13_05_16_2/1463091622-23109/course/768/files/extPicture.jpg"></a>
</body>
</html>
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху