GoのバイナリをPHPスクリプトとしても扱う
$ ./main This is Go world!! 今度は Perl で実行してみましょう $ perl -x ./main Hello, Perl World!! ワオ!!
ほほう。
phpではどうすべきか
-x
オプションはないが、<?php
まではSTDOUTにそのまま出力されてコードとしては解釈されません。なので…
$ cat main.go package main import ( "fmt" "io/ioutil" ) const script = `<?php file_put_contents("php://stderr", "This is PHP world!!!".PHP_EOL); __halt_compiler(); ` func init() { ioutil.Discard.Write([]byte(script)) } func main() { fmt.Println("This is Go world!!") } $ go build -o main main.go $ ./main This is Go world!! $ php ./main 2>&1 > /dev/null This is PHP world!!!
こちらからは以上です。
なお、このエントリは8分でかかれました。
(が、やり方をちゃんと理解してなかったので、なおしました…)