2011-12-20 96 views
1

我:爲什麼這不是一個加號?

$str = 'test%2B'; 
echo html_entity_decode($str); 

我想它返回test +

我在做什麼錯?

注意:對不起,字符串不能修改。它來自外部來源,我只需要用PHP以某種方式替換%2B。

+2

它是什麼回來? – 2011-12-20 19:15:30

+0

它正好返回字符串,因爲它已經是 – David19801 2011-12-20 19:16:50

回答

5

你沒有逃脫這個空間,你應該使用urldecode而不是html_entity_decode

嘗試

$str = 'test%20%2B'; 
echo urldecode($str); // test + 

如果您希望使用html_entity_decode,使用+

$str = 'test +'; 
echo html_entity_decode($str); // test + 

編輯:如果您需要解碼,你不能改變自己的URL,urldecode還是應該正常工作。

+0

downvote有什麼用? – mc10 2011-12-20 19:21:39

0

嘗試用+代替。在你的例子中,你使用的是URL編碼語法而不是HTML實體語法。

2

該字符串被編碼爲一個URL,而不是HTML實體。您需要urldecode

echo urldecode($str); // "test +" 

HTML編碼字符串應該是這樣的:test +,因爲沒有這些字符需要編碼的HTML。

+0

經過測試,作品!謝謝!! – David19801 2011-12-20 19:21:30

0

在html a ++。嘗試

$str = 'test +'; 
0
$str = "test %2B"; 
echo urldecode($str); 
相關問題