php - 不打印 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";
输出:
+++++++++++++++ +你好世界!+ +++++++++++++++
注意:如果是多字节字符串,您可以使用mb_strlen()
而不是。strlen()
推荐阅读
- html - 我找不到使用 jQuery 的特定元素
- java - 使用素数java打印算术级数
- redis - 我可以这样使用nestjs缓存服务吗?
- kotlin - 避免使用多态性(或设计模式)进行强制转换
- apache-superset - 如何连接 Apache Druid 和 Apache Superset
- reactjs - Semantic UI Dropdown ,尝试将状态从子级设置为父级
- javascript - 在 react-select 中的选项末尾附加一个按钮
- java - SonarQube 安全热点,使用正则表达式
- video-streaming - 为什么流媒体下载器无法从某些流媒体网站下载?
- flutter - Flutter:如何在 google_maps_flutter 中为标记图标设置动画?