要するに、VBScript や古い VB における Right 関数の代替えが目的です。 ただ、前ゼロしたいだけなら sprintf がありますし、他の言語でも行うには、文字列の長さと開始位置から指定長さを取得する処理があればできます。
<? // ********************************************************** // n 桁の前ゼロ文字列を作成するには // 以下で簡単に作成できますが、 // ********************************************************** $a = sprintf("%05d", 1); print "$a<br>"; // ********************************************************** // どんな言語でもたぶんある関数(メソッド)を使って行うには // ********************************************************** // 1) n 桁の 0 を目的の文字列の前に連結する $a = "00000" . 1; // 2) 全体の長さを取得する $len = strlen($a); // 3) 全体の長さ - 欲しい長さを開始位置とする $start = $len - 5; // 4) その位置から欲しい長さぶん切り取る $x = substr( $a, $start, 5 ); print "$x<br>"; // つまり function m_zero( $target, $n ) { $target = str_repeat("0",$n) . $target; $len = strlen($target); $start = $len - $n; $target = substr( $target, $start, $n ); return $target; }; print m_zero(1,5) . "<br>"; print m_zero("AA",5) . "<br>"; print m_zero("あA",5) . "<br>"; print m_zero(1234,5) . "<br>"; print m_zero(12345,5) . "<br>"; ?>
00001 00001 00001 000AA 00あA 01234 12345