首页 > 解决方案 > 我在 PHP 中有一个问题来检查标题

问题描述

我试图在 PHP 中创建仪表板我遇到了变量问题

第一个工作正常,但可以让第二个工作。说它已关闭 - 我知道它已启动并正在运行

有任何想法吗?

echo "Dashboard as at: " . date("Y-m-d") . "<br>";
echo " " . date("h:i:sa") . "<br>";
##########################
$url = "http://www.google.com.au"; 
$headers = @get_headers($url); 
if($headers && strpos( $headers[0], '200')) { 

    $status = "$url is up";
    $Color = "#00ff00";
    $Title = "$url";
} 
else { 

    $status = "$url is down";
    $Color = "#FF0000";
    $Title = "$url is down";
}
#############################
$url1 = "http://www.yahoo.com"; 
$headers1 = @get_headers($url1); 
if($headers1 && strpos( $headers1[0], '200')) { 

    $status1 = "$url1 is up";
    $Color1 = "#00ff00";
    $Title1 = "$url1";
} 
else { 

    $status1 = "$url1 is down";
    $Color1 = "#FF0000";
    $Title1 = "$url1 is down";
}
#####################
    echo "<br/><br/>";
    echo  "<table border=\"1\">";
    echo  "<th>API PROD Environment</th>";
    echo "<tr>";
    echo "<td BGCOLOR=$Color title=$status><a href=$url>$status</a></td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td BGCOLOR=$Color1 title=$status1><a href=$url1>$status1</a></td>";
    echo "</tr>";```

标签: php

解决方案


对于您的情况,网址“http://yahoo.com”将被重定向到本地 yahoo 服务器,因此实际上 headers[0] 将返回 301 而不是 200(但实际上从这个角度来看,如果您认为您的代码是正确的重定向为原始网址中的“关闭”状态)

因此,依靠包含 200 的 headers[0] 来确定服务器是否启动/关闭可能会遇到您遇到的问题,例如带有重定向的问题。

解决方案之一是仅使用标头返回(完全关闭的服务器(或不存在的服务器)不会返回任何内容):

<?php
echo "Dashboard as at: " . date("Y-m-d") . "<br>";
echo " " . date("h:i:sa") . "<br>";


$url = "http://www.google.om.au"; 
$headers = @get_headers($url); 
if($headers) { 

    $status = "$url is up";
    $Color = "#00ff00";
    $Title = "$url";
} 
else { 

    $status = "$url is down";
    $Color = "#FF0000";
    $Title = "$url is down";
}


$url1 = "http://yahoo.com"; 
$headers1 = @get_headers($url1); 
if($headers1) { 

    $status1 = "$url1 is up";
    $Color1 = "#00ff00";
    $Title1 = "$url1";
} 
else { 

    $status1 = "$url1 is down";
    $Color1 = "#FF0000";
    $Title1 = "$url1 is down";
}

echo  $status; 
echo "<br>";

echo  $status1; 
echo "<br>";

?>

推荐阅读