Domanda

Sto analizzando le caselle informative di Wikipedia e ho notato che alcune caselle informative hanno campi immagine - questi campi contengono nomi di file immagine nascosti su Wikipedia da qualche parte. Tuttavia, contengono semplicemente il nome del file e non il collegamento effettivo.

Ho controllato i collegamenti delle immagini su vere info box dal vivo e i collegamenti non sembrano provenire da una fonte ma le fonti variano. Come posso fare un collegamento ipertestuale a un'immagine su Wikipedia considerando che ho solo il nome dell'immagine da una voce di infobox.

È stato utile?

Soluzione

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

Modifica: stai cercando di collegare a caldo l'immagine? In tal caso, Wikipedia proibisce il collegamento a caldo. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

Aggiornamento 10-gen-2019: l'hotlinking è ora consentito :

  

Hotlinking o InstantCommons : è possibile utilizzare i file direttamente su   Commons all'interno di un altro sito Web, creando un wiki MediaWiki con   InstantCommons, ...

Altri suggerimenti

Secondo Quali sono i componenti dal nome strano nei percorsi dei file Wikipedia , tu è necessario eseguire md5 per scoprire l'URL. Ora Wikipedia consente il collegamento a caldo, quindi:

Se hai codificato utf-8 $ name , devi fare quanto segue:

$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.

Ecco un'implementazione 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 devi includere la funzione md5 () esterna ( https: // github.com/blueimp/JavaScript-MD5 ); non è nativo di JS.

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;
scroll top