OS (Ubuntu) の idn 関数を使用して、国際化されたドメイン名 (IDN) を同等の punycode に変換しようとしています。ここに私の簡単なスクリプトがあります:
<?php
$dom = "名がドメイン.net";
echo $dom."\n";
exec("idn $dom", $out, $var);
print_r($out);
echo "\n";
echo "result :$var\n";
?>
このコードはブラウザで機能しません。$out は空の配列で、$var = 1 です (エラーがあると思われます)。しかし、php-cli でコードを実行すると、すべて問題なく、結果は次のようになります。
名がドメイン.net
Array
(
[0] => xn--v8jxj3d1dzdz08w.net
)
result :0
何が起こっているのか手がかりはありますか?