2015-10-13 48 views
1

給定一個字符串,這樣如何在php中使用unescape字符串?

$str = '\007\t\007\006\006\t\n\026\r\\\045';

格式和輸出轉義字符串,以便 \t - tabulation等。

我可以通過使用替代解決這個問題,但也許有更好的解決方案?

+1

我可能是錯的,但我不認爲'$ str'有可以解碼的有效字符。你期望得到的解碼字符串是什麼? –

+2

你預期的確切輸出是什麼?輸出中的 – 2015-10-13 21:05:51

+0

需要是字符串或原始字節數組。 – Daniel

回答

1

我能想到的最好的是:

eval('$str_unescaped = "' . str_replace('"', '\"', $str) . '";'); 

str_replace需要的情況下,該字符串包含任何嵌入雙引號。但是如果它包含嵌入的\"序列,它仍然會出錯。

+0

它的作品!我的字符串還包含'$',添加了str_replace([''','$'],['\'','\ $'],$ str) – Daniel

1

stripcslashes將會忽略這一點,它可以識別類似C \ n \ t等等的八進制和十六進制表示。