PHP Str_replace不能处理大字符串

时间:2012-09-16 23:14:36

标签: php

我正在使用str_replace格式化一个字符串,该字符串具有相对较大(我认为)的字符数,但它不会处理字符串。下面是我的字符串和使用

的代码
$formlink = str_replace('&stepvars='.$_GET['stepvars'],'',$link);

字符串长度为1004个字符

?content=com_motor&folder=same&file=motor_form&step=one&stepvars=VzNOMGNERmRkR2wwYkdVOVBsTmxiR1ZqZENCVWFYUnNaU3h3Y205d2IzTmxjbDl6ZFhKdVlXMWxQVDVOZFdOb2FYSnBMRzkwYUdWeVgyNWhiV1Z6UFQ1VVpYTjBJRTkwYUdWMExHOWpZM1Z3WVhScGIyNWZjSEp2Wm1WemMybHZiajArVjJWaUlFUmxjMmxuYm1WeUxHUmhlVDArTVRjc2JXOXVkR2c5UGs5amRHOWlaWElzZVdWaGNqMCtNakF3TWl4d2FXNWZibTg5UGpFeU16UTFOaXhwWkY5dmNsOXdZWE56Y0c5eWRGOXViejArTmpVME16SXhMR1J5YVhabGNsOXNhV05sYm5ObFgyNXZQVDQyTXpJMU5ERXNlV1ZoY2w5bWFYSnpkRjlrY21sMmFXNW5YMnhwWTJWdWMyVmZhWE56ZFdWa1BUNHlNREEwTEc1MWJXSmxjbDl2Wmw5NVpXRnljMTlrY21sMmFXNW5YMlY0Y0dWeWFXVnVZMlU5UGpVc1pXMWhhV3hmWVdSa2NtVnpjejArYzI1bmRXMXZRR2R0WVdsc0xtTnZiU3h0YjJKcGJHVmZiblZ0WW1WeVBUNHdOelF4TlRJMk15eHdYMjlmWW05NFBUNHhNalUwZEdWemRDeHdiM04wWVd4ZlkyOWtaVDArTVRJMU5EYzRMSFJ2ZDI0OVBrNWhhWEp2WW1rc1pHOWZlVzkxWDE5aGJtUnZjbDloYm5sZmIzUm9aWEpmY0dWeWMyOXVjMTkzYUc5ZmRHOWZlVzkxY2w5cmJtOTNiR1ZrWjJWZmQybHNiRjlrY21sMlpWOTBhR1ZmWTJGeVgxOXpYMTlmYzNWbVptVnlYMlp5YjIxZlpHVm1aV04wYVhabFgzWnBjMmx2Ymw5dmNsOW9aV0Z5YVc1blgyOXlYMkZ1ZVY5d2FIbHphV05oYkY5cGJtWnBjbTFwZEhsZmFXNWpiSFZrYVc1blgyWnBkSE05UGpBc1czeHpkSEF4WFE9PQ%3D%3D&msgvalid=Now_enter_your_vehicle_details

请帮助我解决我的错误。

由于

2 个答案:

答案 0 :(得分:3)

可能发生的事情是您的网址已经转义了其中的字符(%3D%3D),而您的$ _GET是未转义的字符,因此它们不匹配。 str_replace可以在没有问题的情况下处理非常大的字符串。

如果你想摆脱这个价值,那就这样做:

$query_params = $_GET;
unset($query_params['stepvars']);
$new_link = http_build_query($query_params);

即使参数是第一个(?stepvars = ...)

,这也会有效

答案 1 :(得分:0)

在宏观方案中,该字符串不是很大,这不太可能成为问题的根源。

更有可能的是,问题是由字符串末尾的%3D%3D引起的,$_GET会转换为==,这会导致字符串不匹配如果您正在寻找%3D%3D