在 php 中回显输出时不需要的空格

Unwanted whitespace when echoing output in php

我目前正在尝试编写一个程序,将 c 程序的标准输出输出到 html 中的文本区域(使用 php)。

这是我目前所拥有的:

<?php
    $output = shell_exec("./hello");
?>
<textarea name="view" cols="80" rows="24" readonly>
    <?php echo $output; ?>
</textarea>

这会打印出正确的输出,但它在第一个字符之前添加了 2 个制表符,所以不是

Hello World!

它打印

        Hello World!

这是我第一次使用 php 或 html,所以我确信它很容易修复。我似乎无法在网上找到任何专门解决此问题的内容,因此我们将不胜感激!

(以防万一 c 程序只是一个简单的 hello world,在终端上打印正常)。

这是因为 <textarea> 标签内的空格:

<textarea name="view" cols="80" rows="24" readonly>
    <?php echo $output; ?>
</textarea>

标签之间的文本将被视为文本区域值。

因此您的值将是 4 个空格,然后是 echo 语句的输出。

tl;dr:删除缩进(4 个空格):

<textarea name="view" cols="80" rows="24" readonly>
<?php echo $output; ?>
</textarea>

php 标签之外的所有内容都会回显 "as-is"。因此,您在文本区域内 <?php echo $output; ?> 前面回显了两个选项卡。

试试这个:

<textarea name="view" cols="80" rows="24" readonly><?php echo $output; ?></textarea>