如何解决PHP中&timestamp变成×tamp问题
如何解决PHP中&timestamp变成×tamp问题

如何解决PHP中&timestamp变成×tamp问题

之前做的项目有一个返回给前端浏览器重定向的地址,每次&timestamp=时间戳都变成×tamp=时间戳,突然懵逼了,接着看异常截图,发现是浏览器中显示的都是×tamp=时间戳这种,查询了后台日志发现都是×tamp=时间戳这种,突然想到是不是浏览器转义的问题,一查果然是。

解决办法有:

1:把timestamp=时间戳这个参数放到最前面没有&符号就不好被转义了,但是我的这个项目参数是必须按ASCII码升序排列然后进行签名的,不适合;

2:再有一种方法是把&改为&   (记得加分号),把参数中的所有&符号改为& ,这个可以。但考虑到项目一直正常在运行最近并没有版本上线,故放弃修改,保持原样,同时通知前端该问题可以忽略(查询时需要留意一下,但实际不影响使用)。

附:HTML转义字符

为什么要用转义字符串?
HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢?

这就要说到HTML转义字符串(Escape Sequence)了。

转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直 接当作文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转 义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。

转义字符串的组成
转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。

比如,要显示小于号(<),就可以写 < 或者 < 。

用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。

提示:实体名称(Entity)是区分大小写的。

备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。

不间断空格(non-breaking space)
     HTML 中的常用字符实体是不间断空格( )。通常情况下,HTML会自动截去多余的空格。不管你加多少空格,都被看做一个空格。比如你在两个字之间加了10个空格,HTML会截去9个空格,只保留一个。为了在网页中增加空格,你可以使用 &nbsp; 表示空格。

HTML 中有用的字符实体
注释:实体名称对大小写敏感!

显示结果    描述    实体名称    实体编号
     空格    &nbsp;    &#160;
<    小于号    &lt;    &#60;
>    大于号    &gt;    &#62;
&    和号    &amp;    &#38;
"    引号    &quot;    &#34;
'    撇号     &apos; (IE不支持)    &#39;
¢    分(cent)    &cent;    &#162;
£    镑(pound)    &pound;    &#163;
¥    元(yen)    &yen;    &#165;
€    欧元(euro)    &euro;    &#8364;
§    小节    &sect;    &#167;
©    版权(copyright)    &copy;    &#169;
®    注册商标    &reg;    &#174;
™    商标    &trade;    &#8482;
×    乘号    &times;    &#215;
÷    除号    &divide;    &#247;
HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集。

ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 7 比特 ASCII。

ISO-8859-1 的较高部分(从 160 到 255 之间的代码)全都有实体名称。

这些符号中的大多数都可以在不进行实体引用的情况下使用,但是实体名称或实体编号为那些不容易通过键盘键入的符号提供了表达的方法。

注释:实体名称对大小写敏感。

带有实体名称的 ASCII 实体
结果    描述    实体名称    实体编号
"    quotation mark    &quot;    &#34;
'    apostrophe     &apos;    &#39;
&    ampersand    &amp;    &#38;
<    less-than    &lt;    &#60;
>    greater-than    &gt;    &#62;
ISO 8859-1 符号实体
结果    描述    实体名称    实体编号
     non-breaking space    &nbsp;    &#160;
¡    inverted exclamation mark    &iexcl;    &#161;
¢    cent    &cent;    &#162;
£    pound    &pound;    &#163;
¤    currency    &curren;    &#164;
¥    yen    &yen;    &#165;
¦    broken vertical bar    &brvbar;    &#166;
§    section    &sect;    &#167;
¨    spacing diaeresis    &uml;    &#168;
©    copyright    &copy;    &#169;
ª    feminine ordinal indicator    &ordf;    &#170;
«    angle quotation mark (left)    &laquo;    &#171;
¬    negation    &not;    &#172;
­    soft hyphen    &shy;    &#173;
®    registered trademark    &reg;    &#174;
¯    spacing macron    &macr;    &#175;
°    degree    &deg;    &#176;
±    plus-or-minus     &plusmn;    &#177;
²    superscript 2    &sup2;    &#178;
³    superscript 3    &sup3;    &#179;
´    spacing acute    &acute;    &#180;
µ    micro    &micro;    &#181;
¶    paragraph    &para;    &#182;
·    middle dot    &middot;    &#183;
¸    spacing cedilla    &cedil;    &#184;
¹    superscript 1    &sup1;    &#185;
º    masculine ordinal indicator    &ordm;    &#186;
»    angle quotation mark (right)    &raquo;    &#187;
¼    fraction 1/4    &frac14;    &#188;
½    fraction 1/2    &frac12;    &#189;
¾    fraction 3/4    &frac34;    &#190;
¿    inverted question mark    &iquest;    &#191;
×    multiplication    &times;    &#215;
÷    division    &divide;    &#247;
ISO 8859-1 字符实体
结果    描述    实体名称    实体编号
À    capital a, grave accent    &Agrave;    &#192;
Á    capital a, acute accent    &Aacute;    &#193;
    capital a, circumflex accent    &Acirc;    &#194;
à   capital a, tilde    &Atilde;    &#195;
Ä    capital a, umlaut mark    &Auml;    &#196;
Å    capital a, ring    &Aring;    &#197;
Æ    capital ae    &AElig;    &#198;
Ç    capital c, cedilla    &Ccedil;    &#199;
È    capital e, grave accent    &Egrave;    &#200;
É    capital e, acute accent    &Eacute;    &#201;
Ê    capital e, circumflex accent    &Ecirc;    &#202;
Ë    capital e, umlaut mark    &Euml;    &#203;
Ì    capital i, grave accent    &Igrave;    &#204;
Í    capital i, acute accent    &Iacute;    &#205;
Π   capital i, circumflex accent    &Icirc;    &#206;
Ï    capital i, umlaut mark    &Iuml;    &#207;
Р   capital eth, Icelandic    &ETH;    &#208;
Ñ    capital n, tilde    &Ntilde;    &#209;
Ò    capital o, grave accent    &Ograve;    &#210;
Ó    capital o, acute accent    &Oacute;    &#211;
Ô    capital o, circumflex accent    &Ocirc;    &#212;
Õ    capital o, tilde    &Otilde;    &#213;
Ö    capital o, umlaut mark    &Ouml;    &#214;
Ø    capital o, slash    &Oslash;    &#216;
Ù    capital u, grave accent    &Ugrave;    &#217;
Ú    capital u, acute accent    &Uacute;    &#218;
Û    capital u, circumflex accent    &Ucirc;    &#219;
Ü    capital u, umlaut mark    &Uuml;    &#220;
Ý    capital y, acute accent    &Yacute;    &#221;
Þ    capital THORN, Icelandic    &THORN;    &#222;
ß    small sharp s, German    &szlig;    &#223;
à    small a, grave accent    &agrave;    &#224;
á    small a, acute accent    &aacute;    &#225;
â    small a, circumflex accent    &acirc;    &#226;
ã    small a, tilde    &atilde;    &#227;
ä    small a, umlaut mark    &auml;    &#228;
å    small a, ring    &aring;    &#229;
æ    small ae    &aelig;    &#230;
ç    small c, cedilla    &ccedil;    &#231;
è    small e, grave accent    &egrave;    &#232;
é    small e, acute accent    &eacute;    &#233;
ê    small e, circumflex accent    &ecirc;    &#234;
ë    small e, umlaut mark    &euml;    &#235;
ì    small i, grave accent    &igrave;    &#236;
í    small i, acute accent    &iacute;    &#237;
î    small i, circumflex accent    &icirc;    &#238;
ï    small i, umlaut mark    &iuml;    &#239;
ð    small eth, Icelandic    &eth;    &#240;
ñ    small n, tilde    &ntilde;    &#241;
ò    small o, grave accent    &ograve;    &#242;
ó    small o, acute accent    &oacute;    &#243;
ô    small o, circumflex accent    &ocirc;    &#244;
õ    small o, tilde    &otilde;    &#245;
ö    small o, umlaut mark    &ouml;    &#246;
ø    small o, slash    &oslash;    &#248;
ù    small u, grave accent    &ugrave;    &#249;
ú    small u, acute accent    &uacute;    &#250;
û    small u, circumflex accent    &ucirc;    &#251;
ü    small u, umlaut mark    &uuml;    &#252;
ý    small y, acute accent    &yacute;    &#253;
þ    small thorn, Icelandic    &thorn;    &#254;
ÿ    small y, umlaut mark    &yuml;    &#255;

https://blog.csdn.net/BenChiZhuBaDaoWang/article/details/126363701

发表回复

您的电子邮箱地址不会被公开。