数字超过255的php chr()

数字超过255的php chr(),php,Php,我一直在使用phpchr()函数,我的想法是使用一个从一开始的变量打印每个字符,打印ASCII值,然后递增,然后重复此操作。这就是我所做的: <?php $i = 0; while($i<255) { echo chr($i)."\n"; $i++; } ?> 一旦超过255,它将重新开始运行。因此,我想知道,如果超过255,是否有必要让php打印两个字符(例如,当您使用数字300时,它将字符255后跟字符45)。这可能吗?如果是这样,我该怎么做?给你。它是一

我一直在使用php
chr()
函数,我的想法是使用一个从一开始的变量打印每个字符,打印ASCII值,然后递增,然后重复此操作。这就是我所做的:

<?php
$i = 0;
while($i<255)
{
    echo chr($i)."\n";
    $i++;
}
?>

一旦超过255,它将重新开始运行。因此,我想知道,如果超过255,是否有必要让php打印两个字符(例如,当您使用数字300时,它将字符255后跟字符45)。这可能吗?如果是这样,我该怎么做?

给你。它是一个无限循环,毫无意义,但它应该可以工作

<?php
$i = 0;
$string = '';

do
{
    if($i<255) {
      echo $string . chr($i)."\n";
      $i++;
    } else {
      $string .= chr(255);
      $i = 0;
    }
}
while($i<255);
?>

这里是循环的极限:

<?php
$i = 0;
$j = 0;
$limit = 255*4;

$string = '';

do
{
    $j++;
    if($i<255) {
      echo $string . chr($i)."\n";
      $i++;
    } else {
      $string .= chr(255);
      $i = 0;
    }
}
while($i<255 && $j<$limit);
?>
    if ($char < 256) {
        echo chr($char);
        break;
    }
}

为了好玩,这里有一个递归解决方案:

<?php

function char($i, $max = 255) {
    if ($i > $max) {
        return char($max, $max) . char($i-$max, $max);
    }
    return chr($i);
}

echo char(365, 66);
echo "\n";
echo char(1365, 122);
echo "\n";

这基本上就是你想要的(但毫无意义):

输入变量。这是一个整数。您想做一些事情直到,因此我们进行
while
循环:

while ($char >= 0) {
$char
大于或等于零时,有一些事情要做。如果它也低于255,我们将输出它并中断循环:

<?php
$i = 0;
$j = 0;
$limit = 255*4;

$string = '';

do
{
    $j++;
    if($i<255) {
      echo $string . chr($i)."\n";
      $i++;
    } else {
      $string .= chr(255);
      $i = 0;
    }
}
while($i<255 && $j<$limit);
?>
    if ($char < 256) {
        echo chr($char);
        break;
    }
}
总是吗?是的,总是这样。当我们输出它时,我们从值中减去它

    $char -= 256;
然后我们再次尝试循环:

<?php
$i = 0;
$j = 0;
$limit = 255*4;

$string = '';

do
{
    $j++;
    if($i<255) {
      echo $string . chr($i)."\n";
      $i++;
    } else {
      $string .= chr(255);
      $i = 0;
    }
}
while($i<255 && $j<$limit);
?>
    if ($char < 256) {
        echo chr($char);
        break;
    }
}
正如你所看到的,这毫无意义:

$char = (int) X;
while ($char >= 0) {
    if ($char < 256) {
        echo chr($char);
        break;
    }
    echo chr(255);
    $char -= 256;
}
$char=(int)X;
而($char>=0){
如果($char<256){
echo-chr($char);
打破
}
echo-chr(255);
$char-=256;
}

如果大于255,它只会在一些模值前面加上
chr(255)
。为了什么?对于
chr(255)
前缀?

目标不明确。如果你喂它300,你期望得到什么?字符255后接字符45?反过来说?多字节Unicode字符?嘿,如果有人回答了你的问题,请将其标记为beset答案。