PHP - 给字符串添加空字符

4
我正在尝试在PHP中向字符串追加一些空字符'\0'。
$s = 'hello';
while(strlen($s) < 32) $s .= '\0';

然而,PHP添加了2个字符(\和0),而不是转义字符并添加NULL。是否有人知道如何在字符串中添加NULL字符?


= null; 可能吗?但会导致无限循环。 - Daan
不,添加null并不会增加字符串长度。因此,循环是无限的。 - goocreations
1
这个世界上没有空字符。 - Josua Marcel C
str_pad($s, 32, "\0"); - billyonecan
5个回答

9

我不确定在你的情况下\0是否正确,但你应该使用"

$s = 'hello';
while(strlen($s) < 32) $s .= "\0";

嗯,嗯,嗯。那个起作用了。我以为在 PHP 中 ' 和 " 是同义词? - goocreations
2
这里有进一步的解释:https://dev59.com/WknSa4cB1Zd3GeqPKQRd - t.h3ads
谢谢。学到了新东西。 - goocreations

3

由于 ' 应该使用 " 导致问题。

使用单引号时,PHP不会解释代码或特殊字符(如\n\r\0),而使用双引号时会。


2
这似乎可以工作:
$result = str_pad($str, 32, "\0");
echo strlen($result); // output: 32

0
尝试以下代码
echo $str="Hello "; echo ' Length : '.strlen($str); while(strlen($str)<32) { $str.=' '; } echo '
'; echo $str; echo ' Length : '.strlen($str);
希望这能解决你的问题

0

只需要以下这一行:

$s = pack('a32', 'hello');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接