Autor Zpráva
Radim Hasalík
Profil *
Hezký den,

řeším poměrně složitý oříšek. Chci využít pro vyhledávání na svém webu Google API. V nápovědě jsem se dočetl, že Google komunikuje v UTF. Nastavil jsem proto všechny hlavičky souboru google.php na UTF-8. Přesto se čeština v mém skriptu zobrazuje špatně:

http://www.zacinej.cz/google/google.php?query=test&Search=Odeslat

Pro jistotu ještě kód PHP skriptu. Napadá někoho, jak tuto situaci vyřešit? Jsem opravdu bezradný. Včera jsem nad problémem strávil několik hodin a neposunul jsem se ani o píď (četl jsem velmi poctivě i dvě diskuse zde na podobné téma). Předem děkuji za vaše rady.

<?
header("Content-Type: text/html; charset=UTF-8");

$sitequery = "$q site:{$_SERVER['SERVER_NAME']} $restrict";

# Run the search only if you're provided a query to work with.
if ($HTTP_GET_VARS['query']) {

# Use the NuSOAP php library.
require_once('nusoap.php');

# Set parameters.
$parameters = array(
'key'=>'muj-klic-pro-google-api',
'q' => $sitequery,
'start' => 0,
'maxResults' => 10,
'filter' => false,
'restrict' => '',
'safeSearch' => false,
'lr' => '',
'ie' => 'latin',
'oe' => 'latin'
);

# Create a new SOAP client, feeding it GoogleSearch.wsdl on Google's site.
$soapclient = new soapclient("http://api.google.com/search/beta2");

# Query Google.
$results = $soapclient->call('doGoogleSearch',$parameters, 'urn:GoogleSearch',
'urn:GoogleSearch');

# Results?
if ( is_array($results['resultElements']) ) {
print "<p>Your Google query for '" . $HTTP_GET_VARS['query'] . "' found "
. $results['estimatedTotalResultsCount'] . " results, the top ten of which are:</p>";

foreach ( $results['resultElements'] as $result ) {

$textik = $result['title'];
$textik = AutoCzech($str, $code);
echo $textik;

print
"<p><a href='" . $result['URL'] . "'>" .
( $result['title'] ? $result['title'] : 'no title' ) .
"</a><br />" . $result['URL'] . "<br />" .
( $result['snippet'] ? $result['snippet'] : 'no snippet' ) .
"</p>";
}
}

# No results.
else {
print "Your Google query for '" . $HTTP_GET_VARS['query'] . "' returned no results";
}

}
?>
habendorf
Profil
Možná pomůže, možná ne, zkus se podívat na http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=11647&foru m=9&page=-1 .
Radim Hasalík
Profil *
Ahoj habendorfe,

díky. Tuto diskusi jsem četl včera. Nepochopil jsem, kde mám měnit to kódování. Zkoušel jsem konverzi u $result['title']; a nefungovalo to.
Radim Hasalík
Profil *
Teď jsem v jedné diskusi narazil na informaci:

So make sure your strings are encoded correctly before submitted as a
query and make sure the responses you are reading in are encoded
correctly so you can display it properly.

To znamená, že zřejmě musím kódovat na UTF před tím než to odešlu. Pak bych měl dostat správný výsledek.
Radim Hasalík
Profil *
Takže nic. Všechno stále špatně - stránka se zobrazuje s nesmyslným kódováním.
Radim Hasalík
Profil *
Tak jsem na to přišel. Problém byl v balíčku nusoap.php, který slouží ke komunikaci s Googlem. Napíšu sem odkaz na návod. Třeba to někomu pomůže.
pitomec
Profil
mas tam nenastaveny kodovani <meta
Radim Hasalík
Profil *
Je to tam nastavené. Vše funguje v pořádku:

http://zacinej.cz/hledej/
Jirka878899
Profil *
Lidičky já to pořád nechápu a češtinu mi to nevrací správně. Vyšel jsem z příkladu vysvětleného na adrese http://www.fiftyfoureleven.com/weblog/web-development/programming-and- scripts/apis/google-search-api. Funguje mi to ale ještě bych do toho potřeboval hodit tu češtinu. Stránky ze kterých hledám jsou teď ve cp-1250 ale i když jsem je hodil do utf-8 tak to nechodí správně.

Pak ještě jedna maličkost, ve výsledcích se zobrazují html tagy, např. <b> nebo <a> tak jak jsou v prohledávaném textu. Bylo by fajn je buď odfiltrovat nebo je interpretovat ale ne zobrazit jako zdrojový kód :-)

Doufám, že mi poradíte, je to prima funkce, kterou určitě nevyužiju jen já.
Radime, poskytnul bys ten odkaz? Díky Jirka.
pavel prochazka.zde.cz
Profil *
zdravim, podivej se ma muj web do sekce PHP.....
Toto téma je uzamčeno. Odpověď nelze zaslat.

0