首页 > 解决方案 > 不打印 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!!";
?>

谢谢你分享你的智慧。

标签: phpecho

解决方案


您可以使用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";

输出:

+++++++++++++++
+你好世界!+
+++++++++++++++

str_repeat()

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


推荐阅读