在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的时间,而不是获取网站内容的时间。
发布于 2014-04-30 00:34:52
假设您的代码片段不是人为的示例,问题可能是这样的:
data: "host=http://www.mywebsite.com",由于您使用的是GET,因此在将URL传递到查询字符串之前,应该对它们进行编码。PHP可能会收到一个乱码版本的URL,它会在2秒内显示404秒,而loadtime2.php文件会给出(大致)实际的加载时间。(可以通过转储URL或响应来确认这一点)
data: "host=" + encodeURIComponent(url),备注:在PHP中,single ticks '是best for URLs。
https://stackoverflow.com/questions/19555098
复制相似问题