現在のプロジェクト用のテンプレートシステムがあります。str_replace()を使用して、HTMLドキュメント内のトークンを動的データに置き換えます。
たとえば、{%TEAM_NAME%}は、特定の要因に応じてテーブルから取得したチームの名前に置き換えられます。
あるケースでは、トークンの数(または検索パラメーターの文字列の長さ)が非常に長くなり、置き換えられなくなったようです。
これが私が言及しているものを示すためのスニペットです:
$tokens = array('{%T_ID%}','{%NAV_BAR%}','{%TEAM_NAMES%}','{%CLUB_NAME%}','{%TEAM_NAME%}','{%STATE%}', '{%AGE_GROUP%}','{%LEVEL%}','{%CONTACT_NAME%}','{%CONTACT_ADDRESS%}','{%CONTACT_CITY%}','{%CONTACT_ZIP%}','{%CONTACT_EMAIL%}','{%CONTACT_PHONE_NUM%}','{%COACH_NAME%}','{%COACH_EMAIL%}','{%COACH_PHONE_NUM%}','{%SECRET_Q%}','{%SECRET_A%}','{%SO_CAL_ID%}','{%STATE_ID%}','{%NUM_PLAYERS%}','{%NOTES%}','{%SCORE_W%}','{%SCORE_L%}','{%SCORE_T%}','{%SCORE_GF%}','{%SCORE_GA%}','{%SCORE_GD%}','{%SCORE_POINTS%}');
$replace = array(
$tId => null,
$navBar->Parse() => null,
$teamNameOptions => null,
_CLUB_NAME_ => _TEAM_TABLE_,
_TEAM_NAME_ => _TEAM_TABLE_,
_STATE_ => _TEAM_TABLE_,
$ageOptions => null,
$levelOptions => null,
_CONTACT_NAME_ => _TEAM_TABLE_,
_CONTACT_ADDRESS_ => _TEAM_TABLE_,
_CITY_ => _TEAM_TABLE_,
_ZIP_ => _TEAM_TABLE_,
_CONTACT_EMAIL_ => _TEAM_TABLE_,
_CONTACT_PHONE_NUM_ => _TEAM_TABLE_,
_COACH_NAME_ => _TEAM_TABLE_,
_COACH_EMAIL_ => _TEAM_TABLE_,
_COACH_PHONE_NUM_ => _TEAM_TABLE_,
_SECRET_Q_ => _TEAM_TABLE_,
_SECRET_A_ => _TEAM_TABLE_,
_SO_CAL_ID_ => _TEAM_TABLE_,
_STATE_ID_ => _TEAM_TABLE_,
_NUM_PLAYERS_ => _TEAM_TABLE_,
_NOTES_ => _TEAM_TABLE_,
_SCORE_W_ => _TEAM_TABLE_,
_SCORE_L_ => _TEAM_TABLE_,
_SCORE_T_ => _TEAM_TABLE_,
_SCORE_GF_ => _TEAM_TABLE_,
_SCORE_GA_ => _TEAM_TABLE_,
_SCORE_POINTS_ => _TEAM_TABLE_
);
いくつかの広範なホワイトボックステストを実行すると、値はすべてそこにありますが、最後のトークンと置換{%SCORE_POINTS%}は、本来あるべき数値に置き換えられるのではなく、nullになります。
これ:
<input type="text" name="fScorePoints" value="{%SCORE_POINTS%}">
次のようになります。
<input type="text" name="fScorePoints" value="5">
しかし、実際には次のようになります。
<input type="text" name="fScorePoints" value="">
別のトークンと置換を追加してさらにテストしましたが、それも適切に置換されていないため、何らかの形式の文字制限があると思いますか?
他のすべてのトークンと置換が完全に正常に機能することを確認できますが、この最後のトークンだけではありません。
どうしたの?
洞察をありがとう。