HTML 编码在 Apache 服务器中未发生


HTML Encoding Not Happening in Apache server

我正在编写一个php代码,其中一个方法返回以下文本,该文本将显示图像,

$ret = "<div align='"center'">" .
       "<image src='"" . "${webserviceDir}Graph.php?usr_id=" . urlencode($usr_id) .
          "&locale_id=" . urlencode($locale_id) . 
          "&session_key=" . urlencode($session_key) . 
          "&websession=" . urlencode($websession) . 
          "&lsweb_moca_service=" . urlencode($lsweb_moca_service) . 
          $service_qualifiers .
          $usr_dash_args .
          "'">" .
       "</div>";

在 IIS 服务器中,这将按预期显示图像。

其中,就像在 Apache 服务器中一样,它返回以下内容:

*div

align=centerimage src=Graph.php?usr_id=BRUNNERMlocale_id=USsession_key=%3Buid%3%7Csid%3Dv0websession=54deeabc51427e580alsweb_moca_service=http%3A%2F%2F1234%3A4600%2/div *

如您所见,它只返回字符串,但没有尖括号"<>"。我不确定为什么此问题只发生在 apache 服务器中而不是在 IIS 服务器中

请帮忙。我想知道为什么它在APACHE服务器中表现得像这样的原因

注意:我使用双引号而不是单引号的原因是因为我返回了很多动态信息。

为什么不使用单引号而不是转义" -

$ret = "<div align='center'>" .
   "<image src='" . "${webserviceDir}Graph.php?usr_id=" . urlencode($usr_id) .
      "&locale_id=" . urlencode($locale_id) . 
      "&session_key=" . urlencode($session_key) . 
      "&websession=" . urlencode($websession) . 
      "&lsweb_moca_service=" . urlencode($lsweb_moca_service) . 
      $service_qualifiers .
      $usr_dash_args .
      "'>" .
   "</div>";