不从ECHO PHP打印最后一个值
问题是我需要按以下方式打印来自fgets(STDIN)的值:不从ECHO PHP打印最后一个值,php,echo,Php,Echo,问题是我需要按以下方式打印来自fgets(STDIN)的值: INPUT - STRING OUTPUT ++++++++ +STRING+ ++++++++ 不幸的是我卡住了,请检查我的代码: <?php echo "start!!\n"; $input_line = fgets(STDIN); $input_nobreaks = str_replace("\n",""
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\u 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!+
+++++++++++++
+++++++++++++
+地狱世界+
+++++++++++++
看
注意:对于多字节字符串,您可以使用
mb\u strlen()
而不是strlen()
。您应该使用$i,您可以使用str\u repeat($x,$length+2)
。2因为前面有一个“+”,后面有一个“+”。++++++++++++++++++
这是我现在的结果,我希望我在输入ooo
时能有+ooo+,非常感谢,但我仍然有同样的问题。我已经用loop交换了行,但是仍然缺少last+`psc:\Users\jakub\www>php test.php start!!000+000+000+end`请看。您是否也尝试过替换\r
<代码>str_replace([“\n”、“\r”]、“,$input_line)-就像这样。谢谢您,先生,但它在我的终端中不起作用,我不知道为什么,这很奇怪。非常感谢您抽出时间。也许这与FGET有关;(我已经使用PowerShell和Unix终端进行了测试。它工作正常。可能是trim()
?