Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Krzaki zamiast polskich znaków
Forum PHP.pl > Forum > Przedszkole
Kaluza
Witam,

Mam problem z skryptem do sprawdzania domen. Stronę mam napisaną w utf8 (odrazu zaznaczam że nie chcę zmieniać kodowania strony). Po sprawdzeniu czy domena jest dostępna wyskakują komunikaty z krzakami. Komunikaty są pobierane z zewnętrznego serwera i nie ma możliwości ich zmiany. Co dodać w poniższym formularzu aby były wyświetlane polskie znaki ?

  1. <?
  2.  
  3. /* zamiana znaków z utf do iso */
  4. function utf_to_iso($utf_string)
  5. {
  6. $utf = array("'\xC4\x85'","'\xC4\x87'","'\xC4\x99'","'\xC5\x82'",
  7. "'\xC5\x84'","'\xC3\xB3'","'\xC5\x9B'","'\xC5\xBA'","'\xC5\xBC'","'\xC4\x84'",
  8. "'\xC4\x86'","'\xC4\x98'","'\xC5\x81'","'\xC5\x83'","'\xC3\x93'","'\xC5\x9A'","'\xC5\xB9'","'\xC5\xBB'");
  9. $iso = array("\xB1","\xE6","\xEA","\xB3", "\xF1",
  10. "\xF3", "\xB6", "\xBC", "\xBF", "\xA1", "\xC6", "\xCA",
  11. "\xA3", "\xD1", "\xD3", "\xA6", "\xAC", "\xAF");
  12. return preg_replace ($utf,$iso,$utf_string);
  13. }
  14.  
  15. /* komunikacja z serwerem rejestracji domen */
  16. function curl_send_query($addr)
  17. {
  18. $curl = curl_init ( $addr );
  19. curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1);
  20. curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0);
  21. if (!$res = curl_exec ( $curl ) ) return curl_error($curl);
  22. curl_close ( $curl );
  23. return $res;
  24. }
  25.  
  26. class domain
  27. {
  28.  
  29. var $addres_check = "https://hrd.pl/registry/domain_check.php?p=81e6da773f739e5436947d32492def45&domain=";
  30.  
  31. /* przeglądarka domen */
  32. function check($domain)
  33. {
  34. return curl_send_query("{$this->addres_check}$domain");
  35. }
  36.  
  37. /* whois z serwera csp (wymagany jest dostęp do komendy passthru)*/
  38. function whois($domain)
  39. {
  40.  
  41. $command = "whois $domain";
  42. $shell = passthru($command,$error);
  43.  
  44. if($error == false)
  45. {
  46. return $shell;
  47. }
  48. else
  49. {
  50. return 0;
  51. }
  52.  
  53. }
  54.  
  55. }
  56.  
  57. $domain = new domain();
  58. ?>
  59. <? /* odpowiedź z whois */ ?>
  60. <? if(isset($_POST["whois_domain"])){ ?>
  61. <?=$domain->whois($_POST["whois_domain"])?><?}?>
  62.  
  63. <? /* odpowiedź z whois w kodowaniu ISO-8859-2 */ ?>
  64. <? if(isset($_POST["whois_domain"])){ ?>
  65. <?=utf_to_iso($domain->whois($_POST["whois_domain"]))?><?}?>
  66.  
  67. <? /* odpowiedź z przeglądarki */ ?>
  68. <? if(isset($_POST["check_domain"])){ ?>
  69. <?=$domain->check($_POST["check_domain"])?><?}?>
  70.  
  71. <form method="post" action="">
  72. <input type="text" name="whois_domain"/>
  73. <input type="submit" name="submit" value="whois"/>
  74. </form>
  75. <form method="post" action="">
  76. <input type="text" name="check_domain"/>
  77. <input type="submit" name="submit" value="check_domain"/>
  78. </form>
benio101
Możesz zasadzić takiego krzaczka do naszego lasu? (czyt. podać przykład takiego komunikatu)
.. i Rozumiem, że kodowanie z pobranej strony jest Ci znane?
Kaluza
Po sprawdzeniu domeny testowa.pl:

Cytat
Domena testowa.pl nie jest dost�pna, domena jest zarejestrowana.


Kodowanie mojej strony to UTF-8. Kodowanie systemu z którego pobierany jest komunikat to ISO (na 99% ISO 2)

Więc w jaki sposób rozwiązać ten problem ?

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