Hledání nebezpečných obrázků
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.
Jakub Vrána, Řešení problému
Diskuse
 dqd:
 dqd: 
Klasický povedený apríl. Díky, pobavil jsem se!
 dqd:
 dqd: ameeck: 
Možná apríl, stejně ten skript ale funguje :P
ic: 
Skript ale neočekává hledaný řetězec v kódování UTF-8 v parametru ?url= . Skript očekává hledaný řetězec v kódování UTF-8 v parametru ?q= .
Jinak takový 'zvrhlý vyhledavač' obrázků by se myslím uživil :-)
 Jakub Vrána
 Jakub Vrána   :
: 
Díky za upozornění, opravil jsem to.
 Jakub Vrána
 Jakub Vrána   :
:  Homer:
 Homer: 
Skvělé, konečně první opravdu užitečný PHP skript. Funguje to naprosto dokonale.
 Homer:
 Homer: Petr Konůpek: 
Geniální myšlenka :D
 david@grudl.com:
 david@grudl.com: 
Zkusil jsem tím hledat "Jakub" a vypadly na mě dost strašlivé věci!
 david@grudl.com:
 david@grudl.com: Andrews13:
jak se to dá použít?Tonda:
Dobrý den,jak mám dotyčný skript použít? To si mám vytvořit vlastní stránku kam mám skript vložit nebo mám skript vložit do prohlížeče do URL nebo co s ním mám dělat aby fungoval?
Diskuse je zrušena z důvodu spamu.
 © 2005-2025 Jakub Vrána.
Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení
© 2005-2025 Jakub Vrána.
Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení  .
Můžeme si tykat.
Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset.
Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.
.
Můžeme si tykat.
Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset.
Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.


