phpのビルトインサーバーで簡単に動作確認

昔はWebサーバーにphpを使って確認しようとしたら
ApacheとかNginxとかWebサーバーが必要でしたが
php 5.4からはphpにサーバーがついています

php -S localhost:8000

とかすればWebサーバーが起動します
起動したディレクトリのファイルにアクセスできるので
ブラウザで

http://localhost:8000/sample.php

とかでアクセスできます
(index.phpを用意してればhttp://localhost:8000/だけでOK)

php -S 0.0.0.0:8000

としてあげれば、ネットワークがつながっている違うPCからもアクセスできます

アクセスするときは、

http://立ち上げたPCのIPアドレス:8000/sample.php
でアクセスできます

つながらないときは、ネットワークがつながってないか、ファイアーウォールなどで弾かれてるかだと思います

phpでin_arrayを使わずに同じことをする

phpではすごく大きな配列だとin_arrayが遅いようなので書き換えてみました

普通のin_array

$arr = [1,2,3, 4, 5];
if (in_array(2, $arr)) {
    echo 'exists';
}

issetが早いらしいので、isset版

$flipArr = array_flip($arr);
if (isset($flipArr[2])) {
    echo 'exists';
}

キーと値を反転させて、issetで判定しています
ベンチとればよかったですが、かなり早くなりました

phpで配列からカンマ区切りの文字列をつくる

phpで配列をカンマ区切りの文字列にするには

$arr = [1,2,3];
var_dump(implode(',', $arr));
// string(5) "1,2,3"

implodeを使うと簡単ですが、空の値があると

$arr = [1,2,'',null,5];
var_dump(implode(',',$arr));
// string(7) "1,2,,,5"

とちょっといけてない
からの要素を除いてからやるには

var_dump(array_filter($arr, 'strlen'));
/*
array(3) {
  [0] =>
  int(1)
  [1] =>
  int(2)
  [4] =>
  int(5)
}
 */
var_dump(implode(',', array_filter($arr, 'strlen')));
// string(5) "1,2,5"

array_filterを使ってやるとよさそうです