- var_dump: documentation ( source)
- mb_check_encoding: documentation ( source)
- ord: documentation ( source)
<?php
$str = chr(255);
var_dump(
$str,
strtobits($str),
mb_check_encoding($str, '7bit'),
is_7bit_clean($str)
);
function is_7bit_clean(string $str):bool{
for($i=0,$imax=strlen($str);$i<$imax;++$i){
if(ord($str[$i]) & (1 << 7)){
return false;
}
}
return true;
}
function strtobits(string $str): string
{
$ret = "";
for ($i = 0; $i < strlen($str); ++ $i) {
$ord = ord($str[$i]);
for ($bitnum = 7; $bitnum >= 0; -- $bitnum) {
if ($ord & (1 << $bitnum)) {
$ret .= "1";
} else {
$ret .= "0";
}
}
}
return $ret;
}