水曜日, 4月 17, 2013

PHPでJava風のstartsWith()とendsWith()がない件について

読みやすさ、美しさというのもプログラムの質に影響してくるとおもいます。

startsWith(), endsWith()という関数がJavaにはあります。

文字列を比較して、指定した文字列で始まっていれば startsWith()は true を返します。

指定した文字列で終わっていれば endsWith()で true を返します。

Javaのネーミングセンスは最高だと常々思うわけですが、これらの関数はPHPにはありません。

substr_compare()という関数を使って startsWith()とendsWith()を実現してみました。

#文字長を制限し比較するよう変更しました(2013-06-05)。

function endsWith($haystack,$needle,$case=FALSE)
{
  $len=mb_strlen($needle);
  if(0<mb_strlen($haystack) && mb_strlen($needle)<=mb_strlen($haystack))
    $res= (substr_compare($haystack,$needle,-$len,$len,$case)==0);
  return $res;
}

function startsWith($haystack,$needle,$case=FALSE)
{
  $res=false;
  if(mb_strlen($needle)<=mb_strlen($haystack))
    $res=(substr_compare($haystack,$needle,0,mb_strlen($needle),$case)==0);
  return $res;
}


Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...