Php 安卓智能手机上显示的随机数字和字母?

Php 安卓智能手机上显示的随机数字和字母?,php,mysql,Php,Mysql,我所有的网页在我能看到的所有浏览器中都显示得很好,但我只是在运行安卓操作系统的移动设备HTC One和一些iPhone上发现了一些奇怪的东西,但不是所有的。Android浏览器在整个页面中显示随机数字和字母,只要文件中存在PHP代码,而不仅仅是在我回送数据的区域。它们不是特殊字符,这让我觉得这不是字符编码问题,而是它们看起来可能是十六进制字符——比如“c14”、“9e”、“22a”、“92d”、“fe3b”、“3471”只是几个例子——每次我刷新浏览器时,它们都会发生变化。如果我继续刷新,一些字

我所有的网页在我能看到的所有浏览器中都显示得很好,但我只是在运行安卓操作系统的移动设备HTC One和一些iPhone上发现了一些奇怪的东西,但不是所有的。Android浏览器在整个页面中显示随机数字和字母,只要文件中存在PHP代码,而不仅仅是在我回送数据的区域。它们不是特殊字符,这让我觉得这不是字符编码问题,而是它们看起来可能是十六进制字符——比如“c14”、“9e”、“22a”、“92d”、“fe3b”、“3471”只是几个例子——每次我刷新浏览器时,它们都会发生变化。如果我继续刷新,一些字符模式将再次出现,好像它正在循环通过某个东西,但我无法锁定模式。最大的问题是,有时这些东西会落在HTML表单输入标记的值中,并将提交的数据弄乱

我最初认为这可能是一个字符编码问题,所以我仔细检查了我的PHP文件是否编码为UTF-8,但这并没有改变任何事情

下面是一小段简单的代码,我一直在修补这些代码以尝试隔离问题:

<?php
include('connect-db.php');

if(isset($_GET['seid']) && is_numeric($_GET['seid']) && $_GET['seid'] > 0){
  $sub_event_id = $_GET['seid'];
  $sub_event_id = mysql_real_escape_string($sub_event_id);
  $result = mysql_query("SELECT sub_event_id, event_name
                         FROM event_details
                         WHERE sub_event_id=$sub_event_id") or die(mysql_error());

  $row = mysql_fetch_assoc($result);
  ?>
  <!DOCTYPE html>
  <html>
  <head>
  <meta charset="UTF-8">
  <title><?php echo $row['event_name']; ?></title>
  </head>
  <body>
  <?php echo $row['sub_event_id']; ?>
  </body>
  </html>
<?php } ?>
下面是浏览器中显示内容的示例

如果 $row['event_name']是,比如说在乔家的派对 和 $row['sub_event_id']是,比如说1

这是您在浏览器的视图源中看到的随机示例之一:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>22
Party at Joe's
18</title>
</head>
<body>
5
1
11
</body>
</html>
0
如果我刷新浏览器,随机数可能会消失然后返回,但底部的0通常大部分时间都在那里。代码较多的文件往往也包含随机字母。同样,这些似乎出现在文件中PHP代码所在的位置。有时也会出现在页面顶部。

首先尝试添加较旧的UTF-8元设置,以防特定设备上的浏览器不查找新的元属性:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
其次,我最近遇到了这种情况,尝试在一个新文件中手动重新键入代码,如果您从另一个源复制了代码,那么该源可能是在一个IDE中编写的,并且编码设置不正确,您可能已将示例代码中的不可见字符复制到新脚本中

最后,确保用于编写脚本的工具已正确配置为UFT-8,以确保以正确的编码键入代码。 即使使用正确的编码设置将编码错误的代码粘贴到IDE中,也无法解决所有字符编码问题

您可以通过使用十六进制编辑器打开脚本并查看二进制文件来确定脚本是否包含不可见字符,可能会有添加的字节没有突出显示任何内容。有时,不可见字符可以在十六进制编辑器中显示

或- 记事本++使用十六进制编辑器插件:


你所描述的行为显然是不可能的。即使您可以让PHP从该示例代码中输出,它也会出现在所有浏览器中,而不仅仅是“一些iPhone和Androids”。我能想到的唯一情况是一个糟糕的代理,天哪,移动提供商有很多这样的代理。3G/4G连接是否恰好是“受打击”设备之间的统一因素?不过,即使这样也无法解释为什么它似乎与PHP标记结合在一起。如果{…}阻塞并将结果分配给变量,然后在/tags中使用这些变量,您是否尝试将html部分移到PHP之外?Niels,3G/4G似乎不是统一因素。我现在正在看使用4G的iPhone和Android。Android正在显示额外的字符。iPhone并非如此。用户3806621,我只是尝试将html移出php块,并将结果分配给变量。人物还在出现。疯狂,我知道!