v1rus74
Постоялец
- Регистрация
- 2 Авг 2016
- Сообщения
- 121
- Реакции
- 136
Покажи тэги, которыми выводишь 1 картинку, любую.Есть задача скрыть(или заменить) url картинки в браузере при наведении на неё.
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Покажи тэги, которыми выводишь 1 картинку, любую.Есть задача скрыть(или заменить) url картинки в браузере при наведении на неё.
Да интересно, вот только мне нужно сохранить чтобы картинка открывалась полноразмерно по клику. Как это сделать при данном исполнении?Лепи дополнительный слой над каждой картинкой с пустым прозрачным изображением внутри.
стандартно вывожуПокажи тэги, которыми выводишь 1 картинку, любую.
Вы скажите-то толком, зачем Вам это? Вы же понимаете, что при подмене адреса неправильным картинка перестанет отображаться?Подробно может кто нибудь расписать? Или задача не выполнима без загрузки изображений на на свой сервер или в облако?
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();
}
}
нужно чтобы при наведении на ссылку не было видно домена на котором расположена картинка
<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>
...и выясняется это только сейчас. что было прошено, то я и сделал. так бы сразу и говорили: нужна полная подмена везде абсолютно. а то вводите в заблуждение неправильными формулировками вопроса.Не подходит. При клике изображение открывается на том сайте который нужно скрыть.
Полностью поддерживаю данного участника. Этот вариант является самым верным и самым надежным. Еще один вариант - это копировать сначала картинку к вам на сайт и потом подменять УРЛ, но это будет занимать больше времени и ресурсов.Вы скажите-то толком, зачем Вам это? Вы же понимаете, что при подмене адреса неправильным картинка перестанет отображаться?
Чтобы на своём сайте выводить чужие картинки, выдавая за свои адреса, можно использовать следующий алгоритм:
1. Берём реальный урл картинки и шифруем обратимым шифрованием, например base64 с помощью base64_encode
2. Создаем файл php, отображающий картинки, например img.php В качестве адреса картинки передаем ему шифрованный адрес из п. 1, если в файл прилетит гет-параметр img. Примерно так:
3. Подменяем реальные адреса картинок 'src="'.$filename.'"' на 'src="img.php?img='.base64_encode($filename).'"' В результате адреса реальных картинок скрыты. img.php работает как прокси, беря контент с чужого сайта и отображая на своем. В идеале дописать этот код так, чтобы раз взятая картинка сохранялась (кешировалась) на своем сервере и при повторном заходе уже бралась из кеша. Ну тут конечно надо иметь ресурс жесткого диска на хостинге. А так напрямую может подтормаживать и зря жрать трафик, к тому же сторонние картинки иногда могут сменить место или внезапно удалиться.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(); } }
Алгоритм не проверял, могут быть опечатки.
можно картинку скрытно преобразовать в холст канвас.Не подходит. При клике изображение открывается на том сайте который нужно скрыть.
<!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>