preg_match(): Compilation failed: nothing to repeat at offsetの意味

文字列マッチ関数preg_matchのX番目の文字列で繰り返す物がありません

考えられるエラーの原因

以下の例を見てみます。
preg_match(‘/^+[0-9]*$/’, ‘+1234567’)

この関数で+1234567にpreg_matchで正規表現のマッチさせようとしていますが、/^+[0-9]*$/ の+は正規表現では、一つ前の文字列の1回以上の繰り返しという意味ですので文頭には繰り返す文字列が指定されていません(+記号にマッチさせたいだけなのに+がエスケープされていません)。

エラーの対処方法・修正方法

正規表現の+をエスケープする

preg_match(‘/^+[0-9]*$/’, ‘+1234567’) 修正→ preg_match(‘/^\+[0-9]*$/’, ‘+1234567’)
とすることでワーニングは出なくなります

WordPress ワードプレスのエラーの修正のご依頼はWPドクターまでお気軽にどうぞ [お見積もりは無料です]