不打印来自 ECHO PHP 的最后一个值

Not printing the last value from ECHO PHP

问题是我需要按以下方式打印来自 fgets(STDIN) 的值:

INPUT - STRING
OUTPUT  ++++++++
        +STRING+
        ++++++++

不幸的是我卡住了,请检查我的代码:

<?php
    echo "start!!\n";
    $input_line = fgets(STDIN);
    $input_nobreaks = str_replace("\n","",$input_line);
    $length = strlen($input_nobreaks);
    $x="+";
    
    for ($i = 0; $i < ($length + 1); $i++) {
        echo $x;
    }
    echo "\n";
    echo $x,$input_nobreaks,$x;
    echo "\n";
    
    for ($i = 0; $i < ($length + 1); $i++) {
        echo $x;
    }
    //echo "\n".$input_nobreaks;
    echo "\nend!!";
?>

感谢您分享您的智慧。

您可以使用 str_repeat($x, $length + 2)。 2 因为前面有一个+,后面有一个+

$input_line = "Hello\nworld!";
$input_nobreaks = str_replace(["\n", "\r"], '', $input_line);
$length = strlen($input_nobreaks);
$x = '+';

echo str_repeat($x, $length + 2) . "\n";
echo $x . $input_nobreaks . $x . "\n";
echo str_repeat($x, $length + 2) . "\n";

输出:

+++++++++++++
+Helloworld!+
+++++++++++++

str_repeat()

注意:如果是多字节字符串,您可以使用 mb_strlen() 而不是 strlen()