2009-06-22 13 views
6

Sto analizzando wikipedia infoboxes e ho notato che alcune infobox hanno campi immagine - questi campi contengono nomi di file immagine nascosti su wikipedia da qualche parte. Tuttavia essi contengono solo il nome del file come è in contrasto con il link effettivo.Come posso ottenere il collegamento a un'immagine su wikipedia dal riquadro informazioni?

Ho controllato i collegamenti delle immagini su informazioni reali e i collegamenti non sembrano provenire da una fonte, ma le fonti variano. Come posso un collegamento ipertestuale a un'immagine su wikipedia considerando che ho solo il nome dell'immagine da una voce infobox.

+1

hai mai avuto la risposta a questa domanda ?? – rockit

risposta

1

Hai provato http://en.wikipedia.org/wiki/File:filename.jpg? Anche se i file si trovano su Wikimedia Commons, l'URL sopra dovrebbe funzionare.

Modifica: stai cercando di collegare l'immagine hotlink? Se è così, Wikipedia vieta il collegamento in hotlink. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

+0

Whoa! Non sapevo che era proibito collegarsi a wikipedia, grazie per avermelo informato. In realtà mi piacerebbe mostrare le foto a cui si fa riferimento nelle informazioni che ho esportato. Mi piacerebbe un modo per scaricare queste immagini in qualche modo in modo programmatico - come ottenerlo da wikipedia? – Ali

+0

Considera che ho circa alcune migliaia di caselle di informazioni e ogni casella di informazioni fa riferimento a una o tre immagini. – Ali

+6

@Ali: la pagina ora dice che l'hotlinking è consentito – Casebash

12

Secondo What are the strangely named components in Wikipedia file paths, è necessario eseguire md5 per individuare l'url. Ora wikipedia consente hotlinking, quindi:

Se si dispone di codifica UTF-8 $name, è necessario effettuare le seguenti operazioni:

$filename = replace($name, ' ', '_'); 
$digest = md5($filename); 
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . urlencode($filename); 
$url = 'http://upload.wikimedia.org/wikipedia/commons/' . $folder; 

Lo stesso può essere usato per le miniature.

+0

Grazie, questo funziona bene. Ho tradotto la tua risposta a JS. –

+0

@Yuri Baburov http://upload.wikimedia.org/wikipedia/commons/ non è corretto qualche volta questo link https://upload.wikimedia.org/wikipedia/en/7/75/Cruciblecover.jpg qualche idea su come ottieni un URL dinamico? –

0

ho notato che il prefisso URL dovrebbe essere:

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

Inoltre la cartella deve contenere il nome ripetuto del file con una dimensione specificata come prefisso:

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; 
2

Qui è un'implementazione di JavaScript di una risposta PHP funzionante (crediti a Yuri Baburov):

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; 

Nota che è necessario include la funzione esterna md5() (https://github.com/blueimp/JavaScript-MD5); non è nativo di JS.

0

Se sei interessato a collegare solo file su Wikimedia Commons, c'è un modo più semplice: puoi utilizzare lo FilePath special page. Ad esempio, se si desidera hotlink il file "Mosaic_of_the_Arctic.jpg", è possibile utilizzare:

https://commons.wikimedia.org/wiki/Special:FilePath/Mosaic_of_the_Arctic.jpg 

Funziona con il tag <img> troppo.

Problemi correlati