PHP microtime返回不同​​的结果

时间:2013-10-24 01:05:08

标签: php file-get-contents microtime

在PHP中使用microtime函数时,我似乎遇到了一个奇怪的问题。在我的index.php上,我有以下

$.ajax({
url:'loadtime.php',
datatype:"application/json",
type:'get',
data: "host=http://www.mywebsite.com",
success:function(data){
  document.getElementById('loadtime_com').innerHTML = data;
},
    error:function(){
  // code for error
}
});

在loadtime.php上

$host =  $_GET['host'];

$time = microtime( TRUE );
file_get_contents( $host );
$time = microtime( TRUE ) - $time;
echo $time;

当我转到我的index.php时,它显示的时间不到2.00秒(这是错误的)。然后我创建了另一个名为loadtime2.php的PHP文件,并将代码更改为

$host =  "http://www.mywebsite.com";

$time = microtime( TRUE );
file_get_contents( $host );
$time = microtime( TRUE ) - $time;
echo $time;

然后转到mywebsite.com/loadtime2.php测试脚本,这给了我超过5.00秒的时间。我无法解决导致这种差异的原因,就像microtime让我有时间从index.php中检索loadtime.php而不是获取网站内容的时间。

1 个答案:

答案 0 :(得分:0)

假设你的代码片段不是人为的例子,问题可能是这样的:

data: "host=http://www.mywebsite.com",

由于您正在使用GET,因此应在对查询字符串传递URL之前对URL进行编码。 PHP可能在2秒内收到一个404的乱码版本,而loadtime2.php文件正在给你(大致)实际的加载时间。 (您可以通过转储URL或响应来确认这一点)

尝试encodeURIComponent

data: "host=" + encodeURIComponent(url),

P.S。在PHP中,单个刻度'best for URLs