![]() |
![]() |
![]() ![]()
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%) ![]() ![]() |
1. base_convert pracuje nad tekstem i zwraca tekst, więc jest tutaj kompletnie nieodpowiedni.
2. Praca z danymi binarnymi w PHP jest wyjątkowo nieprzyjazna. Nie istnieje typ zmiennej byte/char, typ integer jest zmiennej długości (SIC!) i jedyne co nam pozostaje to... tekst. Stringi w PHP można traktować jako tablicę typu byte/char (Google: binary string). 3. Na dobrą sprawę wszystko co musisz zrobić to upewnić się, że tekst jest w odpowiednim kodowaniu (iconv, mb_convert_encoding) i traktować tekst jako dane binarne od tego momentu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 00:53 |