2017-05-02 79 views
0

我有一個允許用戶輸入要從字符串末尾修剪的字符的窗體。這是一個簡單的例子。表單提交回自己並更改字符串測試123,如果在表單中輸入逗號,則返回測試123(逗號被移除)。但是如果同一個字符串在逗號後有一個換行符\ r \ n會怎麼樣?我希望能夠在表格中輸入,\ r \ n並返回測試123因此,空行和逗號都會被修剪。我認爲它必須逃脫,但我無法弄清楚。我已經試過了removalashes,htmlspecialchars,urldecode。我似乎無法得到它。php如何逃避POST變量中的換行符字符

<?php 
if (empty($_POST['trim'])) { 
echo "<form method='post' action='".$_SERVER["PHP_SELF"]."'> 
<input type='text' name='trim'> 
<input type='submit' value='submit'> 
</form>";exit;} 

$str="testing 123, 
"; 
$str=rtrim($str,$_POST['trim']); 
echo $str; 
?> 

回答

1
$str = rtrim($str); 
$str = rtrim($str, $_POST['trim']); 

將字符串那麼無論用戶提供的最後刪除空格。

+0

是的,我可以用trim修改它,但正如你從上面的代碼中看到的那樣,當',\ r \ n'輸入到窗體中,並且放入trim函數中時,它不起作用。例如,我可以這樣做'$ str = rtrim($ str,「,\ r \ n」);'但是爲什麼這不起作用?$ str = rtrim($ str,$ _ POST ['trim']) ;' – CheeseFlavored

+0

我增加了另外一行,我想這就是你要求的。 – Enstage

+0

嗯,不,因爲問題是用戶輸入他想要從現有字符串中刪除的內容。如果字符串是'Hello World!',並且你在表單中輸入'!','Hello World'將被返回。我希望能夠在這種情況下輸入',\ r \ n'來刪除我在代碼中提到的字符串中的逗號和換行符。出於某種原因,您不能將'\ r \ n'作爲表單數據發佈。 – CheeseFlavored