ホームページ  >  記事  >  バックエンド開発  >  相手側のホットリンク対策処理により画像参照の読み込みに失敗する問題の解決方法

相手側のホットリンク対策処理により画像参照の読み込みに失敗する問題の解決方法

WBOY
WBOYオリジナル
2016-06-20 13:00:271785ブラウズ

相手のホットリンク対策処理により画像参照が読み込めない問題を解決するソリューション

多くの写真 Web サイトは現在、ホットリンクから保護されています。写真を Web ページに直接読み込むと、アクセスがブロックされるか、間違った写真が返されます。

通常、プログラムを介して画像を読み取ってから出力するしか方法がありません。プログラムを独自のサーバーに配置すると、一方では負荷が非常に高く、速度も低下します。一方で、相手の写真はネットワーク送信などを伴うため、読み込みが非常に遅いです。

比較的安定して高速な画像読み取りおよび出力プログラムはありますか? 継続的な努力の結果、画像アドレス 5&r= の前に http://read.html5.qq.com/image?src=forum&q= を追加することがわかりました。 0&imgflag=7&imageUrl= 、これで問題は解決します。 PHP プログラムなど、動的に出力される場合は、通常のパターンと一致し、 http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl= を追加することで、この問題を簡単に処理できます。住所の前にそれです。

静的 Web ページの場合、その実装方法。ここで例を示します。js コードを追加することも、js コードを別のファイルに記述して、それをページに導入して実行することもできます。

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div>
		<img style="max-width:100%;box-sizing:border-box;vertical-align:middle;" class="" src="http://img.xiumi.us/xmi/ua/77Lo/i/9d3d1481ba1067c000ad5f4db2013801-sz_183516.jpg@1l_640w.jpg">
	</div>

	<script type="text/javascript">
		//添加的代码,用于在图片地址前面加上指定字符串
		function showForbiddenImg(obj){
			for(var i=0;i<obj.length;obj++){
				if(!obj[i].getAttribute('img-src-f') && obj[i].getAttribute('src')){
					obj[i].setAttribute('img-src-f',obj[i].getAttribute('src'));
				}
				if(obj[i].getAttribute('img-src-f')){
					obj[i].setAttribute('src',(obj[i].getAttribute('img-src-f').indexOf('http://read.html5.qq.com')==-1) ? 'http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl='+obj[i].getAttribute('img-src-f') : obj[i].getAttribute('img-src-f'));
				}
			}
		}
		var img=document.getElementsByTagName('img');
		showForbiddenImg(img);
	</script>
</body>
</html>


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。