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);

paramが最初のものであっても機能します(?stepvars = ...)

于 2012-09-16T23:20:27.550 に答える
0

物事の壮大な計画では、その文字列はそれほど大きくなく、それがここでの問題の原因になる可能性は低いです。

はるかに可能性が高いのは、問題が%3D%3D文字列の最後にあることによって引き起こされていることです。これは、探しているものである場合、文字列が一致しない原因になります$_GET==%3D%3D

于 2012-09-16T23:21:01.367 に答える