php - 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";
}
解决方案
你可以尝试类似的东西
$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() 函数,文档在这里
推荐阅读
- java - 如何在圆角矩形上绘制图像?(爪哇)
- c++ - C++ 从函数返回 (uniform_int_distribution)
- d3.js - d3.js v3 时间刻度:如何将标签中的默认小时更改为特定小时
- excel - 使用不会过度杀伤文件的 excel 公式来自动化流程
- spring - 如何使用 Spring 批处理处理对象列表
- amazon-web-services - AWS :在另一个 AWS 账户上创建 Elastic Search 的 Cloud Watch 日志组订阅者
- jquery - 需要水平滚动固定表头及其行
- python - 从十六进制字符串构造一个 Numpy 数组
- android - 如何在 RecyclerView 更改项目的对齐方式?
- dns - 在 DNS 服务器上使用带有 CNAME 的 nrgrok