php 從textarea傳來的字串出現空格如何儲存

html表單的textarea有空格有斷行,要將所有字串存入mysql.

我試過將空格取代

$text= preg_replace('/[\n\r\t]/', ' ', text);

$text = preg_replace('/\s(?=\s)/', '', $text);

$text= preg_replace("/\&nbsp\;/i", " ", $text);

但每次空格之後就消失了,請教大家!! 謝謝!

Update:

明祥

謝謝你分享!

但我試了$text=mysql_real_escape_string(nl2br($text));

mysql還是只能儲存空格前的字串,空格後的字串都消失了

ps.ck套件以後再看看,想先用單純的方式解決 :)

Update 2:

茶葉

的確只存到1而已

我有另寫一個網頁呈現輸入結果都正常,只是一但存到mysql就這樣了

欄位編碼是utf-8

謝謝你!!

Update 3:

Dear All

我在textarea打

1 2

3

我換了另一個網頁作,用$text=str_replace(" ", " ", $text); 可以看到1 2 所以空格沒問題了

不過$text=nl2br($text); 換行判斷,存到mysql卻變成1 2

Update 4:

1 2

Update 5:

只有1 2 看不到3

2 Answers

Rating
  • 6 years ago
    Favorite Answer

    $texta = mysql_real_escape_string(nl2br($_POST['texta']));

    $sql_insert = "insert into textarea (`texta`)values('".$texta."')";

    mysql_query($sql_insert);

    空格 並不需要特別轉換 它自己會 空一格

    跳行的話 用 nl2br

    2014-02-04 23:26:22 補充:

    不過 話說回來 通常 如果 textarea 需要被編輯的話 很多都是套用 ck 這類的套件下去製作 (因為很多使用者連 html 的基礎都沒有) 然後 把它整個 存進 資料庫裡面 再抓出來印在頁面上就可以了

    2014-02-05 05:02:23 補充:

    $sql_select = "select * from textarea";

    $sql_query = mysql_query($sql_select);

    while($sql_row = mysql_fetch_assoc($sql_query)){

    echo nl2br($sql_row["texta"])." ";

    }

    放在 輸出這邊 而不放在上面那段 也是可以的

    2014-02-05 21:28:43 補充:

    mysql_query("SET NAMES 'utf8'");

    在 連線程式那邊 加上 這個試試

  • 茶葉
    Lv 6
    6 years ago

    正常來說,在一般情況下,空白或換行都不會導致儲存的問題。通常問題比較會出現在特殊符號或中文big-5所導致的特殊符號。我建議你先單純的輸入1 2 3,看看這樣是不是還如你所說的只存到1,後面就不見了。另外我也建議你不要執行sql語法,而是將sql語法輸出在螢幕上,然後複製文字到phpMyAdmin那邊貼上並執行SQL,看看結果如何

Still have questions? Get your answers by asking now.