Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: fsockopen google utf-8 i polskie znaki...
Forum PHP.pl > Forum > PHP
anopak
mam taki skrypcik:

  1. <?php
  2.  
  3. include('positionSearch.php');
  4.  
  5. function fetchURL( $url ) {
  6.  $url_parsed = parse_url($url);
  7.  $host = $url_parsed["host"];
  8.  $port = $url_parsed["port"];
  9.  if ($port==0)
  10.  $port = 80;
  11.  $path = $url_parsed["path"];
  12.  if ($url_parsed["query"] != "")
  13.  $path .= "?".$url_parsed["query"];
  14.  
  15.  echo $path;
  16.  
  17.  $out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
  18.  
  19.  $fp = fsockopen($host, $port, $errno, $errstr, 30);
  20.  
  21.  fwrite($fp, $out);
  22.  while (!feof($fp)) {
  23.  $s = fgets($fp, 1024);
  24.  $in .= $s;
  25.  }
  26.  
  27.  fclose($fp);
  28.  
  29.  return $in;
  30. }
  31.  
  32. $mm[]=' '; $rr[]='+';
  33. //$mm[]='ś'; $rr[]='%C5%9B';
  34.  
  35. $query=str_replace($mm,$rr,$_GET['q']);
  36.  
  37. $path='http://www.google.com/search?q='.$query.
  38. '&hl=pl&lr=&btnG=Szukaj&site=search&num=100';
  39.  
  40. $string=fetchURL($path);
  41.  
  42. $t=positionSearch($string,$_GET['site']);
  43.  
  44. echo $t;
  45.  
  46. ?>


No i wszystko ładnie działa, dopóki nie użyje polskiego znaku w $_GET['q']... Strona kodowana jest oczywiście w utf-8, dla zachowania zgodności z Google, ale to niestety nic nie daje.

Miał ktoś może już z czymś takim problem, lub może ktoś jest mi wstanie pomóc.

Przykład oparty na "śruby"

Próbowałem już takich rzeczy jak:
htmlentities($_GET['q'],1,'UTF-8');
str_replace('ś','%C5%9B',$_GET['q']);
mb_convert_variables('UTF-8',$ary,$_GET['q']); //$ary - tablica ze wszystkimi kodowaniami
mb_convert_variables('HTMLENTITIES',$ary,$_GET['q']);


Niestety w każdym przypadku jest to samo, czyli Google próbuje szukać albo "ruby" albo "Ĺ›ruby"

Proszę bardzo o pomoc.
hwao
rawurldecode -- Decode URL-encoded strings
rawurlencode -- URL-encode according to RFC 1738
urldecode -- Decodes URL-encoded string
urlencode -- URL-encodes string
anopak
Cytat(hwao @ 2006-02-15 16:48:33)
rawurlencode -- URL-encode according to RFC 1738


ok, to mi zmienia:
Kod
śruby => %C5%9Bruba


ale niestety nie zmienia to mojego problemu, gdyż jak pisałem w poprzednim poście to próbowałem już wpisać tak ręcznie na stałem, że ś, zmienia się na %C5%9B i niec to nie pomogło. Przetestowałem rawurlencode w skrypcie i niestety dalej to samo (czyli google próbuje wyszukać: "Ĺ›ruby")...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.