0

我正在使用 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

请帮助我了解我哪里出错了。

谢谢

4

2 回答 2

3

可能发生的情况是您的 URL 中包含转义字符(%3D%3D),而您的 $_GET 是未转义字符,因此它们不匹配。str_replace 可以毫无问题地处理非常大的字符串。

如果您想摆脱该值,只需执行以下操作:

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

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

于 2012-09-16T23:20:27.550 回答
0

从总体上看,那个字符串不是很大,这不太可能是这里问题的根源。

更有可能的是,问题是由%3D%3D字符串末尾的引起的,如果是您要查找的内容,$_GET它将转换为==将导致字符串不匹配的字符串。%3D%3D

于 2012-09-16T23:21:01.367 回答