Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> fsockopen google utf-8 i polskie znaki..., ...czyli czemu nie działa :(
anopak
post 15.02.2006, 11:18:17
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


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.


--------------------
Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox
Go to the top of the page
+Quote Post
hwao
post 15.02.2006, 17:48:33
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




rawurldecode -- Decode URL-encoded strings
rawurlencode -- URL-encode according to RFC 1738
urldecode -- Decodes URL-encoded string
urlencode -- URL-encodes string
Go to the top of the page
+Quote Post
anopak
post 16.02.2006, 08:33:25
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


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")...


--------------------
Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.07.2025 - 08:13