2015-03-25 16 views
-2

我觉得这可能是一个错误,但它也可能是一个小的已知PHP PHP的宏观性和修剪的结合使用的怪癖。如果您添加ENT_QUOTES参数ヶ辆,你会得到一个非常意外的结果带有修剪功能的PHP性能会产生不寻常的结果 - 删除3号

// Number is normally accessed using $_Post[], hard coded for example 
$rating = htmlentities(trim('3')); 

但是:

// Number is normally accessed using $_Post[], hard coded for example 
$rating = htmlentities(trim('3',ENT_QUOTES));   // Returns '' 
$rating = htmlentities(trim('3123',ENT_QUOTES));  // Returns 12 
$rating = htmlentities(trim('test3123',ENT_QUOTES)); // Returns test312 

有谁

此代码将正常工作与任何数据发送到其知道是什么导致这个错误?它似乎是PHP中的一个硬编码问题,所以我只会解决这个问题,但我很好奇什么是htmlentities正在做这件事。

PS - 我正在使用PHP 5.5.11版本

回答

1

不正确地放置了括号。在你的情况下,你通过ENT_QUOTES作为第二个参数trimENT_QUOTES常数设置为3,所以修剪删除3

ENT_QUOTES应改为是htmlentities秒参数:

htmlentities(trim('3'), ENT_QUOTES); 
+0

我觉得现在这样愚蠢的。我的错误是使用大量的查找和替换来加速编码。 – Blizzardengle 2015-03-25 02:13:45