Hello,
indem Du 1.) dafür sorgst, dass es Zahlen _sind_ (also insbesondere keine Strings),
Er kann nur prüfen, ob der übermittelte String eine gültige Zahl repräsentiert. Und das muss er auch, wenn er 0 als gültige Eingabe zulassen will. Anderenfalls würde ein $zahl=intval($zahlstring) genügen mit anschließendem Rangecheck.
Um eine Prüfung per Muster kommt er also hier nicht herum.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg