为什么有我的字符串与PHP形式连接后的空间


Why is there space between my string after concatenation with PHP form?

这真的很奇怪,因为我检查了我连接的两个字符串在HTML源代码中没有空格。然而,当PHP解析我的update.php文件中的文本时,它返回string1 string2而不是string1string2,这是预期的输出。

出什么事了?

Update.php

<?php
    $string1 = $_POST['string1'];
    $string2 = $_POST['string2'];
    $filename = str_replace(" ", "", substr($string1, 14))
        . str_replace(" ", "", substr($string2, 11));

    echo $filename;
?>
$_POST['string1'] = Exchange Name: Osaka;
$_POST['string2'] = Stock Name: 20; 
$string1 = "Exchange Name: Osaka";
$string2 = "Stock Name: 20";
$pattern = '/['W]/i'; // you can add extra conditions to handle other chars as well
$replacement = "";
echo preg_replace($pattern, $replacement, $string1)
    . preg_replace($pattern, $replacement, $string2);

可以尝试使用trim代替replace。

    trim(substr($string1,14));

希望对你有帮助。

填写完filename后,可以使用

$filename = str_replace(" ", "", $filename);

但考虑到我们还没有弄清楚问题在哪里,这不是一个合适的解决方案,它只是一个修复。所以首先要找到问题,这样你就知道为什么会发生

然后不知何故,您将从发布这些值的表单中获得新的行字符。试试这个

$filename = str_replace("'r", "", $filename);
$filename = str_replace("'n", "", $filename);

我用下面的方法解决了这个问题:

echo str_replace(PHP_EOL, '', $filename);