2012-12-31 22 views
0

這真是奇怪,因爲我檢查了我已連接的兩個字符串在HTML源代碼中沒有它們之間的空格。但是,當PHP解析我的update.php文件中的文本時,它將返回string1 string2而不是string1string2,這是預期的輸出。爲什麼我的字符串與PHP表單連接後有空格?

出了什麼問題?

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; 
+1

什麼是$ _ POST [「字符串1」]和2 –

+0

值確定的空間是一個空間,而不是一個選項卡或換行字符? – Michael

+0

@HankyPanky:增加了值。 –

回答

3

$字符串1 = 「交易所名稱:大阪」;
$ string2 =「股票名稱:20」;
$ pattern ='/ [\ W]/i'; //你可以添加額外的條件來處理其他字符
$ replacement =「」;
echo preg_replace($ pattern,$ replacement,$ string1).preg_replace($ pattern,$ replacement,$ string2);

+0

警告:preg_replace()[function.preg-replace]:未知在第11行的D:\ wamp \ www \ update.php中修改'\' –

+1

刪除中間的斜槓應該是'$ pattern ='/ \ n \ t/i';' – Michael

2

可能嘗試使用修整,而不是替代。

trim(substr($string1,14)); 

希望有幫助。

+3

trim會從結束中刪除空格,如果它們在任何其他位置 –

0

填充文件名後,您可以使用

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

但這是不考慮我們沒有還沒有找出其中的問題在於一個妥善的解決辦法,它只是一個修復。所以首先找到問題,所以你知道它爲什麼發生

然後以某種方式,你從表單中發佈這些值的新行字符。試試這個

$filename = str_replace("\r", "", $filename); 
$filename = str_replace("\n", "", $filename); 
+0

我在發佈之前嘗試過這裏。沒有工作:( –

+0

我剛剛運行你的代碼,它看起來像你期望的那樣工作。你確定它爲你顯示一個空間嗎? –

+0

我在windows上運行,我不確定這是否會影響結果? –

0

我解決它通過使用下列內容:

echo str_replace(PHP_EOL, '', $filename); 
相關問題