Powiedz, mam ciąg w PHP, który drukuje się do pliku tekstowego jak ten:Jak uzyskać wartości bajtów ciągu w PHP?
nÖ§9q1Fª £
Jak mogę dostać kody bajt o to do mojego pliku tekstowego zamiast funky ASCII postacie?
Powiedz, mam ciąg w PHP, który drukuje się do pliku tekstowego jak ten:Jak uzyskać wartości bajtów ciągu w PHP?
nÖ§9q1Fª £
Jak mogę dostać kody bajt o to do mojego pliku tekstowego zamiast funky ASCII postacie?
korzystać z funkcji ORD
np.
<?php
$var = "nÖ§9q1Fª£ˆæÓ§Œ_»—Ló]j";
for($i = 0; $i < strlen($var); $i++)
{
echo ord($var[$i])."<br/>";
}
?>
Ord()
wykonuje sztuczkę z zestawem znaków ASCII. Jeśli jednak wtrącasz się w ciągi wielobajtowe (np. UTF-8), nie masz szczęścia i musisz je zhakować samodzielnie.
Jeśli chcecie Państwo uzyskać ciąg jako tablicę kodów całkowitych, jest ładny jedno- liniowa:
unpack('C*', $string)
Uwaga: wynikowa tablica jest indeksowana od 1, a nie od 0!
+1 - _exactly_ to, czego potrzebowałem – Hobo
@YzmirRamirez: aby wyświetlić bajty, potrzebujesz długości bajtów, a nie długości znaku, więc użycie 'mb_strlen' jest w rzeczywistości błędem. – Ped7g
Masz rację @ Ped7g. Zwykle używam funkcji mb_ i widziałem wyżej wymienione połączenie. Ale lepsza odpowiedź jest poniżej, która nie wymaga pętli. –