정보 상자에서 Wikipedia 이미지에 대한 링크를 얻으려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/1026337

문제

위키피디아 정보 상자를 분석 중인데 일부 정보 상자에 이미지 필드가 있는 것을 발견했습니다. 이 필드에는 위키피디아 어딘가에 숨겨져 있는 이미지 파일의 이름이 들어 있습니다.그러나 실제 링크가 아닌 파일 이름만 포함됩니다.

실제 라이브 정보 상자에서 이미지 링크를 확인했는데 링크가 하나의 소스에서 나온 것이 아닌 것 같지만 소스는 다양합니다.정보 상자 항목의 이미지 이름만 가지고 있는데 어떻게 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;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top