PHP把字转成&# ASCII 码

echo ascii_decode("お金を働かせます。");
 
echo ascii_encode("らのためにお金を働かせます");
function ascii_decode($str, $prefix="&#") {
$string = '';
$str = str_replace($prefix, "", $str);
$strArr = explode(";", $str);
foreach ($strArr as $dec) {
if ($dec < 128) {
$string .= chr((int)str_replace($prefix,"",$dec));
} else if ($dec < 2048) {
$string .= chr(192 + (($dec - ($dec % 64)) / 64));
$string .= chr(128 + ($dec % 64));
} else {
$string .= chr(224 + (($dec - ($dec % 4096)) / 4096));
$string .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
$string .= chr(128 + ($dec % 64));
}
}
return $string;
}
function ascii_encode($str, $prefix = "&#") {
$ascii = '';
$len = strlen($str);
$a = 0;
while ($a < $len) {
$ud = 0;
if (ord($str[$a]) >= 0 && ord($str[$a]) <= 127) {
$ud = ord($str[$a]);
$a += 1;
} else if (ord($str[$a]) >= 192 && ord($str[$a]) <= 223) {
$ud = (ord($str[$a]) - 192) * 64 + (ord($str[$a + 1]) - 128);
$a += 2;
} else if (ord($str[$a]) >= 224 && ord($str[$a]) <= 239) {
$ud = (ord($str[$a]) - 224) * 4096 + (ord($str[$a + 1]) - 128) * 64 + (ord($str[$a + 2]) - 128);
$a += 3;
} else if (ord($str[$a]) >= 240 && ord($str[$a]) <= 247) {
$ud = (ord($str[$a]) - 240) * 262144 + (ord($str[$a + 1]) - 128) * 4096 + (ord($str[$a + 2]) - 128) * 64 + (ord($str[$a + 3]) - 128);
$a += 4;
} else if (ord($str[$a]) >= 248 && ord($str[$a]) <= 251) {
$ud = (ord($str[$a]) - 248) * 16777216 + (ord($str[$a + 1]) - 128) * 262144 + (ord($str[$a + 2]) - 128) * 4096 + (ord($str[$a + 3]) - 128) * 64 + (ord($str[$a + 4]) - 128);
$a += 5;
} else if (ord($str[$a]) >= 252 && ord($str[$a]) <= 253) {
$ud = (ord($str[$a]) - 252) * 1073741824 + (ord($str[$a + 1]) - 128) * 16777216 + (ord($str[$a + 2]) - 128) * 262144 + (ord($str[$a + 3]) - 128) * 4096 + (ord($str[$a + 4]) - 128) * 64 + (ord($str[$a + 5]) - 128);
$a += 6;
} else if (ord($str[$a]) >= 254 && ord($str[$a]) <= 255) {
$ud = false;
}
$ascii .= $prefix . $ud . ";";
}
return $ascii;
}

### 回答1: 可以使用 PHP 内置的 `ord()` 函数将一个符转换为 ASCII ,例如: ```php $char = &#39;A&#39;; $ascii = ord($char); echo $ascii; // 输出 65 ``` 如果需要将一个符串中的每个符都转换为 ASCII ,可以使用循环遍历符串中的每个符并调用 `ord()` 函数,例如: ```php $str = &#39;Hello, world!&#39;; for ($i = 0; $i < strlen($str); $i++) { $char = $str[$i]; $ascii = ord($char); echo $ascii . &#39; &#39;; // 输出每个符的 ASCII ,以空格分隔 } ``` 输出结果为: ``` 72 101 108 108 111 44 32 119 111 114 108 100 33 ``` ### 回答2: 在PHP中将符串转化为ASCII可以使用ord()函数。ord()函数可以返回指定符的ASCII值。 例如,我们有一个符串"Hello",我们想要将它转换为ASCII。我们可以使用ord()函数将每个符转换为ASCII。代如下: ```php $str = "Hello"; $asciiStr = ""; for ($i = 0; $i < strlen($str); $i++) { $asciiValue = ord($str[$i]); $asciiStr .= $asciiValue . " "; } echo $asciiStr; ``` 运行以上代,输出将会是"H e l l o"每个符对应的ASCII值,例如"72 101 108 108 111"。 另外,如果我们想要将ASCII转换回符串,我们可以使用chr()函数。chr()函数可以将ASCII值转换为对应的符。 例如,我们有一个ASCII符串"72 101 108 108 111",我们想要将它转换为符串"Hello"。我们可以使用explode()函数将符串拆分为一个数组,然后使用chr()函数将每个ASCII值转换为对应的符,并使用implode()函数将符数组合并为一个符串。代如下: ```php $asciiStr = "72 101 108 108 111"; $asciiArr = explode(" ", $asciiStr); $str = ""; foreach ($asciiArr as $asciiValue) { $char = chr($asciiValue); $str .= $char; } echo $str; ``` 运行以上代,输出将会是符串"Hello"。 ### 回答3: 在PHP中,可以使用`ord()`函数将一个符转换为对应的ASCII。`ord()`函数接受一个符作为参数,并返回对应的ASCII值。 示例代如下: ```php <?php $char = &#39;A&#39;; $ascii = ord($char); echo "符 $char 的ASCII为 $ascii"; // 输出结果:符 A 的ASCII为 65 ?> ``` 需要注意的是,`ord()`函数只能转换一个符,如果传入的参数是一个符串,它只会处理第一个符,并且忽略其他符。 如果需要将一个符串转换为对应的ASCII数组,可以使用`str_split()`函数将符串拆分成符数组,然后利用循环结构处理每个符。 示例代如下: ```php <?php $str = &#39;Hello&#39;; $asciiArray = []; foreach (str_split($str) as $char) { $ascii = ord($char); $asciiArray[] = $ascii; } print_r($asciiArray); // 输出结果:Array ( [0] => 72 [1] => 101 [2] => 108 [3] => 108 [4] => 111 ) ?> ``` 上述示例将符串`Hello`转换为对应的ASCII数组`[72, 101, 108, 108, 111]`。 这是在PHP中将符或符串转换为ASCII的基本方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值