首页 > 解决方案 > PHP file_get_contents 执行前是否在线检查源代码

问题描述

我正在使用 PHPfile_get_contents来读取文本文件数据。

假设我有 2 个 IP 地址,1 个在线和 1 个离线:

192.168.180.181 - Online
192.168.180.182 - Offline

和 PHP

$fileAccept = file_get_contents("\\\\192.168.180.181\\Reports\\".$dModel['MODEL_NAME'].$source."\\Accept\\Accept_".$dDtl['MODEL_CODE']."_".$dateCode."_".$dDtl['TS_CODE'].".txt");

由于我们知道 IP 地址192.168.180.182处于脱机状态,因此我尝试运行代码。结果页面总是加载。

我的问题,我该如何防止它可能首先需要检查 IP 是否存在,如果存在则可以继续下一步。

也许是这样的:

if(IP IS OFFLINE)
{
    echo "do not do anything";
}
else
{
    echo "do something";
}

标签: phpfile-get-contents

解决方案


你可以尝试类似的东西

$scc = stream_context_create(array('http'=>
    array(
        'timeout' => 120,  //120 seconds 
    )
));
$url = "http://192.168.180.181/....";
$handle =  file_get_contents('$url, false, $scc);

您可以创建两个句柄并检查 if 语句是否正常,当然您可以将超时更改为适合您

更新:如果在本地访问文件,你可以检查这个 stream_set_timeout() 函数,文档在这里


推荐阅读