Как получить ссылку на изображение в википедии из инфобокса?

Я разбираю инфобокс википедии, и я заметил, что в некоторых инфобоксах есть поля изображений – эти поля содержат имена файлов изображений, спрятанных в wikipedia где-то. Однако они просто содержат имя файла, как в отличие от фактической ссылки.

Я проверил ссылки изображений на реальных живых инфобоксах, и ссылки, похоже, не из одного источника, но источники меняются. Как я могу гиперссылки на изображение в википедии, учитывая, что у меня есть только имя изображения из записи инфобокса.

    Вы пробовали http://img.ruphp.com/php/filename.jpg ? Даже если файлы находятся на Викискладе, указанный выше URL-адрес должен работать.

    Изменить: вы пытаетесь установить ссылку на изображение? Если это так, Wikipedia запрещает хотлинкинг. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

    В соответствии с тем, что являются странно названными компонентами в файлах Википедии , вам нужно запустить md5, чтобы узнать URL-адрес. Теперь wikipedia позволяет hotlinking, так:

    Если у вас 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; 

    То же самое можно использовать для эскизов.

    Вот реализация JavaScript для PHP-ответа (кредиты Юрию Бабурову):

     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.

    Я заметил, что префикс URL должен быть:

     http://upload.wikimedia.org/wikipedia/en/thumb/ 

    Кроме того, папка должна содержать повторное имя файла с размером, указанным в качестве префикса:

     http://img.ruphp.com/php/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; 

    Если вы заинтересованы в связывании файлов только на Викискладе, есть более простой способ – вы можете использовать специальную страницу FilePath . Например, если вы хотите связать файл «Mosaic_of_the_Arctic.jpg», вы можете использовать:

     http://img.ruphp.com/php/Mosaic_of_the_Arctic.jpg 

    Он также работает с <img> .