![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 3 Dołączył: 30.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
nie mogę znaleść odpowiedzi na moje pytanie, które jest dość proste jednak z tego co widzę sprawia jakies problemy, bo nie mogę nic znaleść w sieci (IMG:style_emoticons/default/worriedsmiley.gif) Jak można w PHP 5.3 w optymalny sposób przekonwertować text np. "Ala ma kota" na ciąg binarny, tak aby zapisać to wszystko w bazie danych w polu BLOB w taki sposób aby można było to odczytać z powrotem jako text? W efekcie chcę uzyskać odpowiednia wartość aby zapisać do DB (Firebird) jako BLOB sub_type binary. "W sposób optymalny" mam na myśli coś lepszego niż przeglądanie textu po każdym znaczku i konwertowanie... to nie zadziała dla dużych ilości textu. Dodatkowo taka funkcja powinna przyjmować jako parametr kodowanie w jakim jest zakodowany text dla poprawnej zamiany, mam rację? Kombinowałem w tej sposób:
ale to nie działa poprawnie i wydajnie... (IMG:style_emoticons/default/worriedsmiley.gif) Próbowałem też czegoś takiego: ale to też nie działa poprawnie... W ASP.NET jest funkcja które przyjmuje właśnie jako parametr kodowanie oraz text i konwertuje do ciągu binarnego, jednak w PHP nie mogę znaleść odpowiednika, a wiem że się da to zrobić. Proszę o sugestie, z czego skorzystać i jakich funkcjo użyć w tym celu. Z góry dzięki! Ten post edytował iwosz 28.09.2012, 15:18:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Tekst w PHP zawsze jest w formie binarnej. Jeżeli w wyniku użycia var_dump() wyświetli Ci się "5f1e" oznacza to tablicę następujących bajtów: 0x35 0x66 0x31 0x65. Jeżeli wyświetli się "01011110101" oznacza to tablicę następujących bajtów: 0x30 0x31 0x30 0x31 0x31 0x31 0x31 0x30 0x31 0x30 0x31. Jeżeli natomiast wyświetli Ci się "cześć" oznacza to tablicę następujących bajtów: 0x63 0x7a 0x65 0xc5 0x9b 0xc4 0x87.
Pamiętaj, że w każdym przypadku istotne jest kodowanie ciągu. W przypadku użycia UTF-16 w pierwszym przykładzie otrzymalibyśmy: 0x00 0x35 0x00 0x66 0x00 0x31 0x00 0x65. Pokaż kod dodający i pobierający dane z bazy. PS. Dlaczego nie korzystasz z PDO? Ten post edytował Crozin 1.10.2012, 10:02:11 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 10:12 |