使用PHP验证crontab条目的最佳方法是什么?我应该使用正则表达式还是外部库?我有一个PHP脚本,用于添加/删除crontab文件中的条目,但希望能够通过某种方式验证时间间隔部分是否为有效格式.
我有一个文本字段,用户可以在其中输入cron表达式(例如0 */5 * * * *).然后我拆分它并构建一个javax.ejb.ScheduleExpression.
现在javax.ejb.ScheduleExpression接受不同元素的任何String而不进行验证.我可以举个例子
scheduleExpression.minute("randomText");
Run Code Online (Sandbox Code Playgroud)
并被接受.如果然后尝试使用ScheduleExpression我显然会得到错误(例如,当我尝试用它创建一个计时器时).
我开始编写代码来验证输入,但规则不是那么简短和琐碎:http://docs.oracle.com/javaee/6/api/javax/ejb/ScheduleExpression.html
是否有一种简单的方法(在Java EE中)或已经完成工作的库?
Quartz 2.x 文档说
所以cron表达式可以这么简单:****?*或更复杂,如:0/5 14,18,3-39,52*?JAN,MAR,SEP MON-FRI 2002-2010
但是,如果我尝试
System.out.println(org.quartz.CronExpression.isValidExpression("* * * * ? * *"));
Run Code Online (Sandbox Code Playgroud)
它说
false
Run Code Online (Sandbox Code Playgroud)
为什么?
isValidExpression的Javadoc是http://quartz-scheduler.org/api/2.2.1/org/quartz/CronExpression.html
PS.这个问题不是重复验证cron表达式在Java中是否有效