Я разбираю инфобокс википедии, и я заметил, что в некоторых инфобоксах есть поля изображений – эти поля содержат имена файлов изображений, спрятанных в 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>
.