Question

Je suis en train d’analyser les infoboxes wikipedia et j’ai remarqué que certaines infoboxes ont des champs d’image - ces champs contiennent des noms de fichiers d’images stockés quelque part sur wikipedia. Cependant, ils ne contiennent que le nom du fichier tel quel, par opposition au lien réel.

J'ai vérifié les liens des images sur des infoboxes réelles et les liens ne semblent pas provenir d'une seule source, mais les sources varient. Comment puis-je créer un lien hypertexte vers une image sur wikipedia, dans la mesure où je n'ai que le nom de l'image issue d'une entrée infobox.

Était-ce utile?

La solution

Avez-vous essayé http://fr.wikipedia.org/wiki/Fichier:nomfichier.jpg ? Même si les fichiers se trouvent sur Wikimedia Commons, l’URL ci-dessus devrait tout de même fonctionner.

Modifier: essayez-vous de créer un lien direct avec l'image? Si c'est le cas, Wikipedia interdit les hyperliens. >

Mise à jour le 10 janvier 2019: Le lien hypertexte a été maintenant. autorisé :

  

Hotlinking ou InstantCommons : il est possible d'utiliser des fichiers directement sur   Commons au sein d’un autre site Web, en créant un wiki MediaWiki avec   InstantCommons, ...

Autres conseils

Selon Quels sont les composants étrangement nommés dans les chemins de fichiers de Wikipedia , vous besoin de lancer md5 pour trouver l'URL. Maintenant, wikipedia permet les hyperliens, donc:

Si vous avez codé $ name en utf-8, vous devez procéder comme suit:

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

La même chose peut être utilisée pour les vignettes.

Voici une implémentation JavaScript d'une réponse PHP fonctionnelle (crédit de 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;

Notez que vous devez inclure la fonction externe md5 () ( https: //. github.com/blueimp/JavaScript-MD5 ); ce n'est pas natif à JS.

J'ai remarqué que le préfixe de l'URL devrait être:

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

De plus, le dossier doit contenir le nom répété du fichier avec une taille spécifiée comme préfixe:

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