0

HTMLソースコードで連結している2つの文字列の間にスペースがないことを確認したので、これは本当に奇妙です。ただし、PHPがファイル内のテキストを解析すると、期待される出力ではなく、update.php返されます。string1 string2string1string2

何が悪かったのか?

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; 
4

4 に答える 4

3
$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);
于 2012-12-31T06:15:59.633 に答える
2

おそらく、置換の代わりにトリムを使用してみてください。

    trim(substr($string1,14));

お役に立てば幸いです。

于 2012-12-31T06:11:14.923 に答える
1

ファイル名を入力した後、次を使用できます

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

しかし、問題がどこにあるのかまだわからないことを考えると、これは適切な解決策ではなく、単なる修正です。だから最初に問題を見つけて、なぜそれが起こっているのかを知ってください

次に、どういうわけか、これらの値を投稿したフォームから改行文字を取得しています。これを試して

$filename = str_replace("\r", "", $filename);
$filename = str_replace("\n", "", $filename);
于 2012-12-31T06:14:58.247 に答える
0

私は以下を使用してそれを解決しました:

echo str_replace(PHP_EOL, '', $filename);
于 2012-12-31T06:32:32.727 に答える