2016-03-21 137 views
0

我剛開始這個項目和PHP不是我的語言(對不起,如果這是一個愚蠢的問題!試圖谷歌,但也許我正在尋找錯誤的東西)。

我試圖從一個GET獲取數據,並最終將其記錄到一個MySQL數據庫

的數據看起來就像是: http://127.0.0.1/index.php?foo=1&hello+this+is+my+name=bob

foreach ($_GET as $key => $value){ 
    echo "Key: $key Val: $value<br>" ; 
} 

這將輸出:

Key: foo Val: 1 
Key: hello_this_is_my_name Val: bob 

當然這工作正常,但我怎樣才能從$鍵刪除+符號或下劃線?

回答

1

您可以使用str_replace用空格替換下劃線。就像這樣:

echo str_replace('_', ' ', $value); 

但是,當然,這也將取代你可能想保留的下劃線。因此,更好的選擇是urldecode()函數。

echo urldecode($value); 

您可以閱讀更多關於它here

+0

我試過echo urldecode($ key);但它留下下劃線 – JJD

+0

噢好吧。這是因爲它們是數組中的「$ key」。無論如何,超全局數組都是隱式解碼的。你必須用'str_replace'去。 –

1

您可以使用PHP函數str_replace函數和顯示輸出後

<?php 
echo str_replace("_"," ",$key); 
?> 

語法

str_replace(find,replace,string,count) 
0

可以使用preg_replace()去除強調(_)和加(+)標誌從您的字符串:

示例字符串:

$yourString = "This+is+my Testing_string_test"; 
$replace = preg_replace('/[^a-zA-Z0-9]/', ' ', $yourString); 
echo $replace; // This is my Testing string test 

這種模式/[^a-zA-Z0-9]/將取代下劃線和加號進入太空' '