php 编程,使用file_get_contents('http:www.vketch.com')获取远程页面超时为什么不会返回false

宝宝妈妈2023-05-24  42

你用的这个函数由于使用的是高层传输协议,很容易超时,即使能够判断也因为重试次数太多而无法使用。至于curl函数,则不是为这种应用设计的。最好是使用fsocket函数,不会存在你说的问题。

我略知一二,和你一起探讨。

首先,8/5和1是等价的,因为两个int数相除,结果也是int数。

其次,printf函数是从左往右读取参数的,然后将先读取的放到栈底,最后读取的放在栈顶,处理时则是从栈顶开始,所以我们看见的显示结果是,其实是从右边开始处理的。

最后,%lf以双精度型输出,要求输入为一个64位数。

你的程序相当于

#include<stdio.h>

int main(){

printf("%lf\n%d\n",1,1)

// 8/5就是1。

//从左往右取参数,先取%lf,64位数;再取%d,32位数。

//1是int,只有32位,所以光%lf就把两个1都取走了。%d取的是内存中后续的32位,不可预测。

//如果你把打印语句换成printf("%lf\n%d\n",1,1,3)你会发现,3正常输出了,说明%lf确实可能把两个1都取走。

//两个int型的1在内存中表示为0x0000000100000001,而按照双精度浮点型数的规则来解释这个数,就是0.

//浮点型的1.0和整型的1在内存里的表示方式是完全不同的,建议你google之。

//而8.0/5.0情况就完全不同了,商应该是一个64位的双精度浮点型数,与%lf匹配,这样第二个8/5就能顺利被%d取走。

return 0

}

希望帮到你。


转载请注明原文地址:https://54852.com/read/701673.html