2012-01-12 109 views
1

就像這個主題說我有一些$_POST數據,我需要去除所有斜線。但是,它會留下一個,當表單上出現錯誤時,會將發佈的數據打印回給用戶,以便他們不必重新輸入。當他們再次提交頁面時,每次提交錯誤時,斜槓的數量都會顯着增加。我擁有的代碼非常簡單,並使用stripslashes($_POST['first']),然後發回錯誤。我也試圖去str_replace擺脫最後\但這是行不通的。有任何想法嗎?php stripslashes留下了一個斜線

代碼EDIT --------

$first = stripslashes($_POST[f_name]); 
    $first = str_replace('\\' , '', $_POST[f_name]); 
+0

我們可以看看你的代碼嗎? – 2012-01-13 00:01:59

+0

我已經在 – Pengume 2012-01-13 00:24:06

回答

4

stripslashes()只去掉第一個連續反斜槓(當它們是連續的),因爲反斜槓用於轉義反斜槓。

您應該使用str_replace("\\", "", $_POST['first']);

更新,如果是前斜線你想刪除, 使用str_replace("/", "", $_POST['first']);

+0

以上添加了我的代碼我已經使用了/嘗試過,並沒有擺脫最後的/ – Pengume 2012-01-13 00:23:36

+2

的等待,它不應該擺脫正斜線......只是反斜槓。 – 2012-01-13 00:25:20

2

您是否啓用了magic_quotes的? stripslashes只會移除用來逃離角色的\。所以,如果你想在你的文本中使用\,你需要通過使用兩個來逃避它:\。在這種情況下,兩個\將被轉換爲一個\帶分隔線。在進行任何處理之前先執行print_r($ _ POST),以查看POST中的實際內容。

1

我有一個類似的問題,用了一個很粗的解決方案....我只是實現的stripslashes連續兩次的功能,或在您的情況:

$first_temp = stripslashes($_POST[f_name]); 
$first = stripslashes($first_temp); 

原油,但它爲我工作!

0

我認爲你的帖子數組包括從數據庫中取出的東西,比如「isn \'t或wouldn't」來更新到數據庫。然後,你當你讀數據的字段使用

stripeslashes(數據[ 'description_to_textarea'])

問題的修復做的一件事。