我在發佈£符號到我的數據庫時遇到了一個問題,它似乎在它之前添加了一些奇怪的字符。我決定,最好的做法是在符號進入數據庫之前去掉符號,並在讀取數據時再次將其添加回來。PHP,去掉髮布到MySQL之前的貨幣符號
是否有一個簡單的PHP函數需要我的$變量,在我發送它之前取出特定的字符,然後創建一個新的$ variable_new,我可以發送到數據庫。
感謝,強尼
我在發佈£符號到我的數據庫時遇到了一個問題,它似乎在它之前添加了一些奇怪的字符。我決定,最好的做法是在符號進入數據庫之前去掉符號,並在讀取數據時再次將其添加回來。PHP,去掉髮布到MySQL之前的貨幣符號
是否有一個簡單的PHP函數需要我的$變量,在我發送它之前取出特定的字符,然後創建一個新的$ variable_new,我可以發送到數據庫。
感謝,強尼
這應該是你在找什麼。
$variable_new = str_replace('£','',$variable);
之前添加了一個£100。這實現了訣竅,好東西,謝謝。 – Cliftwalker 2011-02-07 18:10:03
我會用string replace作爲一個快速的解決辦法,但最好我永遠不會符號添加到變量擺在首位。
$newvar = str_replace('£', '', $oldvar);
最簡單的(也是最好的)解決方案可能是讓您的字符編碼正確。首先確保你已經有網頁瀏覽器發送你的東西在utf-8
然後確保你的數據庫正在存儲UTF-8或編碼ignostic。我知道MySQL關心字符編碼,如果你的字符集不正確,轉換就會發生(在PHP和/或MySQL的某處)。
我把:AddDefaultCharset UTF-8
在我的所有網站的.htaccess文件,以確保所有的數據被髮送到我的UTF-8
我試圖做到這一點改變MySQL到utf-8,但它似乎沒有解決問題。我不確定發生了什麼事。當我的INSERT查詢運行並且有£符號時,它似乎在符號 – Cliftwalker 2011-02-07 18:11:13
你總是可以只使用str_replace(),或者你可以使用的preg_replace來替換所有非數字/點/逗號字符。但是,我認爲任何一個都不是最好的解決方案。
我認爲最好是改變你的腳本,以便符號永遠不會附加到數值上。不過,請記住該符號,也可以將其存儲在數據庫的單獨列中,以便知道使用了哪種貨幣。擁有嚴格的數值可以讓您(更容易)在未來做更多的事情。
請指出爲什麼這些幫助解決您的問題:http://stackoverflow.com/search?q=remove+character+from+string+php – Gordon 2011-02-07 17:48:04