Google v zájmu ochrany puritánů nabízí tzv. bezpečné hledání – z výsledků odstraňuje „explicitní“ obrázky. Toto omezení jde vypnout, takže se zobrazují všechny obrázky, ale nepochopitelně chybí možnost zobrazovat jenom to „závadné“.
Jednoduchým PHP skriptem jde ale toto nepříjemné omezení odstranit:
<?php // skript očekává hledaný řetězec v kódování UTF-8 v parametru ?q= $root = "http://images.google.cz/images"; $self = "http://$_SERVER[SERVER_NAME]$_SERVER[PHP_SELF]"; $safe = file_get_contents("$root?q=" . urlencode($_GET["q"])); $all = file_get_contents("$root?q=" . urlencode($_GET["q"]) . "&safe=off"); preg_match_all('~,\\[".+"\\]~U', $safe, $matches); $unsafe = str_replace(str_replace("\\x26ie\\x3dUTF-8", "\\x26safe\\x3doff\\x26ie\\x3dUTF-8", $matches[0]), "", $all); $unsafe = str_replace("<head>", "<head><base href='$root'>", $unsafe); $unsafe = str_replace('action="/images"', 'action="' . htmlspecialchars($self) . '"', $unsafe); echo $unsafe; ?>
Kód stáhne obě verze dokumentů a z úplné odstraní to, co se nachází v omezené. Aby fungovaly relativní odkazy, tak doplní značku <base href="">
, a naopak přepíše cíl formuláře pro další vyhledávání zase zpátky.
Skript není zcela dokonalý, ale jako základ pro další úpravy posloužit může.
Diskuse je zrušena z důvodu spamu.