PHP 删除空格 - "ghost" 行出现

PHP remove whitespaces - "ghost" lines appear

我有一个 HTML 表单,它查询 MySQL 数据库中的条目,并将这些值输入到几个文本区域,在那里可以编辑它们并随后保存这些更改。

SQL/PHP 交互似乎有效发现,我得到了查询的信息并且能够相应地更新数据库。但是,每当我访问 (string) 信息并将 echo this 放入文本区域时,突然在实际字符串内容前面不知从哪里插入了四个空行。

我不明白这些空行是从哪里来的,也不知道如何去掉它们。

这是来自表单文本区域的代码:

<textarea 
    name="MicroLoc_Entry" 
    id="MicroLoc_Entry" 
    style="position:absolute;left:581px;top:45px;width:73px;height:18px;z-index:14;" 
    rows="1" 
    cols="1" 
    spellcheck="false"
>
    <?php 
        include ('db_connect.php'); 
        $ID = $_POST['ItemID']; 
        $sql = "SELECT MicroLoc from Main WHERE ItemID = ".$ID ; 
        $result = mysqli_query($link, $sql); 
        $res = mysqli_fetch_array($result);  
        $msg = $res['MicroLoc'];
        echo preg_replace('/\s\s+/', '', $msg); 
    ?>
</textarea>

使用 ltrim($string)preg_replace('/\s+/g', '', $string)preg_replace('/\s\s+/', '', $string) 只会将空白减少为两个额外的空行,但不会将它们全部删除。

非常感谢您的帮助!

运行 您在 <textarea> 之前的代码,然后在 <textarea> 中回显结果。 因此,如果您的代码生成任何换行符 - 它将在 <textarea>.

之外
<?php 
        include ('db_connect.php'); 
        $ID = $_POST['ItemID']; 
        $sql = "SELECT MicroLoc from Main WHERE ItemID = ".intval($ID) ; 
        $result = mysqli_query($link, $sql); 
        $res = mysqli_fetch_array($result);  
        $msg = $res['MicroLoc'];
        $echomsg = preg_replace('/\s\s+/', '', $msg); 
?>
<textarea 
    name="MicroLoc_Entry" 
    id="MicroLoc_Entry" 
    style="position:absolute;left:581px;top:45px;width:73px;height:18px;z-index:14;" 
    rows="1" 
    cols="1" 
    spellcheck="false"
><?php echo $echomsg; ?></textarea>

另外请确保 <textarea></textarea> 标签之间没有任何其他空格或换行符。因为这些也可能是不需要的符号的来源。