Nasıl infobox gelen wikipedia bir görüntüye bağlantı alabilirim?

3 Cevap php

Ben wikipedia infoboxes ayrıştırma ve ben bazı infoboxes görüntü alanları olduğunu fark ettim - bu alanlar yere wikipedia saklanmış görüntü dosyalarının adlarını tutun. Ancak onlar sadece gerçek bağlantı zıt olarak olduğu gibi dosyanın adını içerir.

Ben tek bir kaynaktan olmak görünmüyor gerçek canlı infoboxes ve bağlantıları görüntülerin bağlantıları kontrol ama kaynaklar değişir. Nasıl Ben sadece bir infobox girmesinden itibaren görüntünün adı dikkate alınarak wikipedia bir görüntüye köprü olabilir.

3 Cevap

Eğer çalıştı http://en.wikipedia.org/wiki/File:filename.jpg? Var Dosya Wikimedia Commons'da bulunan olsa bile, yukarıdaki URL hala çalışması gerektiğini.

Düzenle: görüntüyü hotlink çalışıyorsun? Eğer öyleyse, Wikipedia olurlar yasaklamaktadır. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

Göre What are the strangely named components in Wikipedia file paths, sen url öğrenmek için md5 çalıştırmak gerekir. Şimdi wikipedia, böylece olurlar sağlar:

Eğer utf-8 kodlanmış varsa $name, aşağıdakileri yapmanız gerekir:

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

Aynı küçük için kullanılabilir.

Ben URL öneki olması gerektiğini fark ettim:

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

Ayrıca klasör önek olarak belirtilen bir boyutu ile dosyanın tekrarlanan adını içermelidir:

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;