2013-05-28 21 views
0

我在指定字符串(Con\\ec't)到$user_val的外觀下面如何找回電話和addslashes後1弦()函數在PHP

$user_val = addslashes(Con\\ec't); 

接下來,我想寫$user_val到另一個PHP文件作爲一個全球不變。之後,用斜槓該字符串指定NAME不斷

define ('NAME', 'Con\\\\ec\'t'); 

我試圖讓下面

$mystring = stripslashes(NAME); 

這給了我Con\ec't使用代碼的第一個字符串,但我想Con\\ec't$mystring。如果你知道請幫助我。

+0

你肯定'con是相同的\\\ \ ec \'t'實際上是不變的?你究竟如何定義它?我的意思是如果你'var_dump(NAME)'會發生什麼。 –

+1

偏離主題,但我很想知道你正在使用'stripslashes'和'addslashes' - 對於大多數情況下可能會使用它們,它們是功能的錯誤選擇。如果你使用它們,那麼你很有可能做錯了什麼。 – Spudley

+0

我想要的是將NAME定義爲Con \\ ec't,所以我首先嚐試'define(name'Con \\ ec't');'但是這個PHP語法錯誤。之後,我使用add addslashes()。當我使用addslashes()'Con \\ ec't'成爲'Con \\\\ ec \'t'這可以用php語法。現在我想從Con \\\\ ec \'t'打印'Con \\ ec't'。 – Duleep

回答

0

這可能並不完美,但這對我有用。

$user_val = base64_encode(Con\\ec't); 

,並定義爲

define ('NAME', base64_decode('aHR0cDovL3NheHdWIvc2VhcmNo')); 

輸出作爲用戶輸入值(Con\\ec't)請有此解決方案的任何缺點,請解釋

+1

缺點:人們必須對base64進行解碼才能確定其價值。對可讀性嚴重不良[因此對可維護性不利]。 – michaelb958

0
$mystring = preg_replace('/\\+/', '\\', NAME); 
1
define ('NAME', 'Con\\\\ec\'t'); 

我嘗試使用下面的代碼

$mystring = stripslashes(NAME); 

,給了我精讀\ ec't獲得1刺痛,但我想精讀\ ec't爲$的myString

你不能得到Con\\ec't strip_slashes,因爲你的常數NAME已經僅包含值Con\\ec't

您在常量定義中使用的四個斜槓僅導致兩個斜槓,因爲其中一個\轉義了下面的斜槓。

因此,兩個反斜槓上的strip_slashes自然只產生一個反斜槓。這裏絕對沒有「魔法」。

相關問題