3

環境ごとに適切な構成を使用しています。たとえば、「HTTP_HOST」変数で識別しなければならないことを確認するには、次のようにします。

if($_SERVER['HTTP_HOST']=='example.com'){

問題は、 cli からコードを実行すると、ローカルで環境が何であるかがわからないことです。

問題を解決するコードを見つけました

function getIPs($withV6 = true) {
     preg_match_all('/inet'.($withV6 ? '6?' : '').' addr: ?([^ ]+)/', `ifconfig`, $ips);
   return $ips[1];
}
if($_SERVER['HTTP_HOST']=='example.com'||getIPs()[0]=='55.789.258.66'){

しかし ifconfig、Linux でのみ動作します。どの OS を特定し、次を使用して「ifconfig」を「ipconfig」(windows) に変更します。

$getIpFunc = PHP_OS=='Linux'?`ifconfig`:`ipconfig`;
preg_match_all('/inet'.($withV6 ? '6?' : '').' addr: ?([^ ]+)/', $getIpFunc, $ips);

しかし、私はWindowsでIPを受け取りません

4

1 に答える 1