PHP删除空格-出现“幽灵”行

问题描述

我有一个HTML表单,用于查询MysqL数据库中的条目并将这些值输入几个文本区域,在其中可以对其进行编辑并随后保存这些更改。

sql / PHP交互似乎可以正常工作,我得到了查询的信息,并能够相应地更新数据库。但是,每当我访问(string)信息并将echo插入文本区域时,突然在实际字符串内容的前面突然插入了四行空白行。

我不知道这些空白行是从哪里来的,以及如何消除它们。

这是表单文本区域中的代码

<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>标签之间没有其他空格或换行符。因为这些也可能是不需要符号的来源。