Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kwadraciki
Forum PHP.pl > Inne > Hydepark
pEbE
Wie ktoś jak można "odczytać" te kwadraciki przy niektorych plikach?
np:
Kod

Chewolf
Jest to znak nowej linii, w php(i nie tylko) równoznaczny z "\n". Nie za bardzo wiem co masz na myśli pisząc "odczytać". Plik z nimi spróbuj otworzyć np. pod Notatnikiem.
pEbE
tutaj mi to nie wyszło...
normalnie wyglada to tak:

  1. <?php
  2.  
  3. $info = preg_replace("/\r\n|\n|\r/", '<br>', $info);
  4.  
  5. ?>


Czyli znaki nowej lini zostały wyeliminowane. Jak chcecie pokażee cały kod który możecie uruchomic sami.

Tak to wyglada u mnie:
sztosz
Często czcionki nie posiadają wszystkich możliwych znaków do zimplentowania. Wtedy też dana aplikacja używając danej czcionki, jezeli nie potrafi w danej czcionce znaleźć "glyph'u" (znaczka, literki) odpowidnigo dla danej wartości binarnej wyświetla kwadracik. Zamiast kwadracika może bć wyświetlona kropka, albo też nic nie będzie wyswietlone.

Po prostu te kwadraciki nie są po to by je człowiek czytał, tylko komputer winksmiley.jpg
pEbE
A jak je odczytac za pomacoa skryptu php?
sztosz
A co to za plik? Bo mi to wygląda na jakiś plik binarny (exe winksmiley.jpg ) i nie rozumiem po co php miałby to odczytywać :|
pEbE
Chciałbym podzielic ten plik na tablice (explode) i zeby tam zostaly tylko te dane ktore mozna odczytac, a te kwadraciki, myslalem ze da sie je uzyc jako pierwszy parametr funkcji explode jednak to nie zawsze dziala.

Jeśli chodzi o plik, tak jest to plik exe, jest to serwer gry internetowej.
sztosz
Poszukaj gdzieś tabelę znaków ASCII i na jej podstwie wychwyć te znaki które ci są potrzebne i upakuj je w tablicę, może jakoś się da. Ale nadal nie rozumiem po co ty chcesz to wpakowaćw tablicę sad.gif
pEbE
Ach namęczyłem sie napisałem kody ascii:
  1. <?php
  2.  
  3.  
  4. echo $playerInfoHex = bin2hex($playerInfo); echo '<br>';
  5. $ascii = array(
  6. '000','001','002','003','004','005','006','007','008','009','010','011','00A','00B','00C','00D','00E','00F',
  7. '012','013','014','015','016','017','018','019','01A','01B','01C','01D','01E','01F','07F'
  8. );
  9. $playerInfoReplaced = str_replace($ascii, '', $playerInfoHex);
  10. $ascii = array (
  11. '024','025','026','027','028','029','02A','02B','02C','02D','02E','02F','030','031','032','033','034','035',
  12. '048','049','04A','04B','04C','04D','04E','04F','050','051','052','053','054','055','056','057','058','059',
  13. '06C','06D','06E','06F','070','071','072','073','074','075','020','021','022','023','036','037','038','039',
  14. '03A','03B','03C','03D','03E','03F','040','041','042','043','044','045','046','047','05A','05B','05C','05D',
  15. '05E','05F','060','061','062','063','064','065','066','067','068','069','06A','06B','076','077','078','079',
  16. '07A','07B','07C','07D','07E'
  17. );
  18. $txt = array (
  19. '$','%','&',"'",'(',')','*','+',',','-','.','/','0','1','2','3','4','5','H','I','J','K','L','M','N','O','P',
  20. 'Q','R','S','T','U','V','W','X','Y','l','m','n','o','p','q','r','s','t','u',' ','!','"','#','6','7','8','9',
  21. ':',';','<','=','>','?','@','A','B','C','D','E','F','G','Z','[','\\',']','','_','`','a','b','c','d','e','f',
  22. 'g','h','i','j','k','v','w','x','y','z','{','|','}','~'
  23. );
  24.  
  25. $playerInfo = str_replace($ascii, $txt, $playerInfoReplaced); // NIE DZIAŁA?
  26.  
  27.  
  28. ?>


Ale jak to teraz polaczyc? Inteligentne str replace nie dziala...
sztosz
@Chewolf: Ok ale co innego parsować stronę w HTML'u, XML'a albo nawet zwykły txt, a co innego próbować parsować Binarkę :| To jest zadanie naprawdę karkołomne, może gdyby pEbE powiedział co chce wyciągnąć z tego pliku było by łatwiej... ale nie jestem o tym przekonany.
pEbE
Edit[/php]: po wielu myśłowych kłopotach doszłem do tego metodą polaka tongue.gif

  1. <?php
  2.  
  3. $reg = '/\w+|\s|\d+|[a-zA-Z0-9\!\@\#\$\%\^\&\*\(\)\_\\\+\-\=\|\/\*'\"\:\;\<\>\,\.\?]/';
  4. preg_match_all($reg, $playerInfo, $dane);
  5.  
  6. ?>



Drugi DUŻO LEPSZY sposób to przeposcic $str przez ten filtr:
  1. <?php
  2.  
  3. $arr = array();
  4. for($i=1; $i<=31; $i++) {
  5.  $arr[chr($i)] = ' ';
  6. }
  7. $arr[chr(255)] = ' ';
  8. $parsed = strtr($str,$arr);
  9.  
  10. ?>



Temat uważam za zakończony, dzięki
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.