Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Wikipedia Fi/Eng reititin

kayttaja-2791 [17.04.2005 17:36:13]

#

Skripti on rakennettu Gwaur:in (Ohjelmointiputkassa) skriptin pohjalta. Kiitos ideasta hänelle, paljon muuta hänen koodistaan ei kyllä enään jäljellä olekaan :)

Eli tämä reitittää annetun s:n parametrien avulla oletuksena käyttäjän fi.wikipedia.org:in halutulle sivulle.
Mikäli haluat etsiä en.wikipedia.org:ista sinun tulee kirjoittaa ensin vaikka "eng hakusana", eri altterit eng-kieliselle hakuehdolle löytyvät alta koodista (26).

Eli siis tämä yhdistää kummatkin Wikipedian haut yhteen. Tätä voi sitten käyttää vaikka kotisivuillaan... Itse alunperin tein tämän lisäksi tekemiini Firefoxin hakuihin.

Versio 1.0 - Ensimmäinen julkaistu versio

<?php
/*
Skripti on rakennettu Gwaur:in (Ohjelmointiputkassa) skriptin pohjalta.
Eli tämä reitittää annetun s:n parametrien avulla oletuksena käyttäjän fi.wikipedia.org:in halutulle sivulle.
Mikäli haluat etsiä en.wikipedia.org:ista sinun tulee kirjoittaa ensin vaikka "eng hakusana", eri altterit eng-kieliselle hakuehdolle löytyvät alta koodista (26).

Sovitaan nyt vaikka että tämä on versio 1.0 :)
*/

//Näytetään source jos sitä kaivataan
if ($_GET["source"] == true)
    show_source(__FILE__);
//Muuten käytetään itse skriptiä
elseif(!$_GET) {
    echo "<html><head><title>Wikigateway (FI/EN)</title></head><body><h1>Wikigateway (FI/EN)</h1><p>Tämä on yksinkertainen reititin jolla pystyy yhdellä haulla käyttämään sekä suomen- että englannin-kielistä Wikipediaa. Hakuehdot siis get-parametriin s.</p><p>Käyttö-en:<br><i>eng iraq war</i></p><p>Käyttö-fi:<br><i>irakin sota</i><br> tai<br><i>fi irakin sota</i></p><p>Sekä EN että FI sisältävät erilaisia vaihtoehtoja kielen valinnaksi, kuten fin, finland, suomi, fi, eng, en, english, e, jne. Mutta kuten jo sanottua, suomalaiseen hakuun ei etuliitteitä välttämättä tarvitse. Mutta jos haku sisältää vaikka sanan suomi, niin silloin etuliitettä pitää käyttää, esim seuraava etsii vain hakuehdolla \"suomi\":<br><i>fin suomi</i><br>Kuten seuraavakin:<br><i>suomi suomi</i></p><p>Ei sen kummalisempaa. Sivun lähdekoodia voit katsella <a href=\"?source=1\">tästä</a>.</body></html>";
}
else {
    //Kohde on ensimmäinen parametri, poistetaan se tallennuksen jälkeen ettei se sotke itse hakusanoja
    $kohde = explode(" ", $_GET["s"]);
    $kieliversio = $kohde[0];
    unset($kohde[0]);

    //Kohdesivu on seuraavat parametrit
    $kohdesivu = implode(" ", $kohde);

    //Tässä on eri vaihtoehdot eri Wikipedian versioille
    $altsuomi = array("fi", "fin", "finland", "suomi", "suomen", "suomiwiki", "finn", "finnish", "s", "f");
    $alteng = array("eng", "en", "englanti", "e", "english");

    //Mikäli ensimmäinen parametri on jokin Suomen alttereista
    if (in_array(strtolower($kieliversio), $altsuomi))
        $kieliversio = "fi";
    //Mikäli ensimmäinen parametri on jokin Eng alttereista
    elseif(in_array(strtolower($kieliversio), $alteng))
        $kieliversio = "en";
    //Muuten kieliversio on Suomi ja kohdesivut koostuu myös ensimmäisestä parametristä
    else {
        $kohdesivu = $kieliversio." ".$kohdesivu;
        $kieliversio = "fi";
    }
    //Lähetetään header että selain siirtyy Wikipedian hakuun
    header("Location: http://". $kieliversio .".wikipedia.org/wiki/Special:Search?search=".urlencode(utf8_encode($kohdesivu)));
    //print "http://". $kieliversio .".wikipedia.org/wiki/Special:Search?search=".urlencode(utf8_encode($kohdesivu));
}
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta