정보 상자에서 Wikipedia 이미지에 대한 링크를 얻으려면 어떻게 해야 합니까?
-
06-07-2019 - |
문제
위키피디아 정보 상자를 분석 중인데 일부 정보 상자에 이미지 필드가 있는 것을 발견했습니다. 이 필드에는 위키피디아 어딘가에 숨겨져 있는 이미지 파일의 이름이 들어 있습니다.그러나 실제 링크가 아닌 파일 이름만 포함됩니다.
실제 라이브 정보 상자에서 이미지 링크를 확인했는데 링크가 하나의 소스에서 나온 것이 아닌 것 같지만 소스는 다양합니다.정보 상자 항목의 이미지 이름만 가지고 있는데 어떻게 Wikipedia의 이미지에 하이퍼링크를 걸 수 있나요?
해결책
시도해 보셨나요? http://en.wikipedia.org/wiki/File:filename.jpg
?파일이 Wikimedia Commons에 있더라도 위의 URL은 계속 작동합니다.
편집하다:이미지를 핫링크하려고 하시나요?그렇다면 Wikipedia에서는 핫링크를 금지합니다. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking
2019년 1월 10일 업데이트: 핫링크는 이제 허용됨:
핫링크 또는 InstantCommons:InstantCommons와 함께 MediaWiki Wiki를 설정하여 다른 웹 사이트 내 공통점에서 직접 파일을 사용할 수 있습니다.
다른 팁
에 따르면 Wikipedia 파일 경로에서 이상하게 명명 된 구성 요소는 무엇입니까?, URL을 찾으려면 MD5를 실행해야합니다. 이제 Wikipedia는 핫 링크를 허용하므로 :
UTF-8 인코딩 된 경우 $name
, 다음을 수행해야합니다.
$filename = replace($name, ' ', '_');
$digest = md5($filename);
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . urlencode($filename);
$url = 'http://upload.wikimedia.org/wikipedia/commons/' . $folder;
썸네일에는 동일하게 사용할 수 있습니다.
다음은 작동하는 PHP 답변 (Yuri Baburov에 대한 크레딧)의 JavaScript 구현입니다.
var name = "filename.jpg";
var filename = name.replace(/ /g, "_");
var digest = md5(filename);
var folder = digest[0] + '/' + digest[0] + digest[1] + '/' + encodeURIComponent(filename);
var url = 'http://upload.wikimedia.org/wikipedia/commons/' + folder;
외부를 포함해야합니다 md5()
기능 (https://github.com/blueimp/javaScript-md5); JS에 고유하지 않습니다.
이제 Wikipedia의 파일을 스페셜 : FilePath 페이지. 따라서 English Wikipedia에서 파일 example.jpg를 연결하려면 사용할 수 있습니다. https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg
.
다른 Wikimedia Foundation 사이트 (예 : Wikimedia Commons)에서도 비슷한 링크가 작동해야합니다.
핫 링크에 관한 세부 사항 및 권장 사항은 Wikimedia 's에서 확인할 수 있습니다. 커먼즈 : reusing_content_outside_wikimedia.
URL 접두사는 다음과 같아야합니다.
http://upload.wikimedia.org/wikipedia/en/thumb/
또한 폴더에는 Prefix로 지정된 크기가있는 파일의 반복 이름이 포함되어야합니다.
http://upload.wikimedia.org/wikipedia/en/thumb/d/dd/Ruins-imperial-complex-milan-.jpg/220px-Ruins-imperial-complex-milan-.jpg
$filename = replace($name, ' ', '_');
$digest = md5($filename);
$urlencfile = urlencode($filename)
$imgwidth = 220
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . $urlencfile . '/' . $imgwidth . 'px-' . $urlencfile;
$url = 'http://upload.wikimedia.org/wikipedia/en/thumb/' . $folder;