Если действительно необходимо использовать split
, можно сделать a:
grep {length > 0} split(/(..)/, $string);
, Но я думаю, что самый быстрый путь был бы с unpack
:
unpack("(A2)*", $string);
Оба этих метода имеют "преимущество", что, если строка имеет нечетное число символов, она произведет последний на своем собственном.
Я думаю, вашу концепцию нужно изменить.
PHP не может запланировать задание, как и MySQL. Триггеры в MySQL выполняются при возникновении запроса mysql, а не в определенное время. Ни то, ни другое
Это ограничение обычно не является проблемой при веб-разработке. Причина в том, что ваше приложение PHP должно контролировать все входящие и исходящие данные. Обычно это означает просто HTML, который отображает эти данные или другие форматы для пользователей или других программ.
В вашем случае вы можете думать об этом так. Крайний срок - установленная дата. Вы можете рассматривать его как данные и сохранять в своей базе данных. Когда наступает крайний срок, это не важно, важно то, что данные, которые вы отправили в свою базу данных, отображаются правильно.
Когда к вашему приложению поступает запрос, проверьте, не наступила ли дата крайнего срока, если это так, затем отобразите, что проект закрыт - или обновите, что проект закрыт, непосредственно перед отображением.
На самом деле нет причин обновлять данные независимо от вашего PHP-приложения.
Обычно единственное, что вы хотите запланировать, - это задания, которые могут повлиять на ваше приложение с точки зрения нагрузки, или которые должны выполняться только один раз, или где параллелизм или время являются проблемой.
В вашем случае ничего из этого не применимо.
PS: Я не пробовал PHPscheduler, но могу предположить, что это не настоящий планировщик. Cron - это демон, который спит до тех пор, пока данная задача не будет в очереди, выполняет задачу, а затем спит до следующей (по крайней мере, это то, что он делает в текущем алгоритме). PHP не может этого сделать без сокетов и расширений вилки, как специальная установка. Таким образом, PHPscheduler, скорее всего, просто проверяет, истекла ли дата для задачи, при каждой загрузке веб-страницы (всякий раз, когда PHP выполняет страницу). Это ничем не отличается от того, что вы просто проверяете, истекла ли дата в проекте, без накладных расходов на PHPScheduler.
Я всегда беру cron для всего, что связано с планированием.
Большой бонус в том, что вы также можете выводить информацию эхом, и она будет отправлена вам по электронной почте.
Вы узнаете, как только начнете использовать cronjobs, трудно остановиться.
cron как таковой не существует в Vista, но существует стандартный диспетчер планирования Windows, который можно запустить с помощью командной строки, например "php -q -f myfile.php" который будет выполнять файл php в заданное время.
вы также можете использовать порт программы cron, их много.
если это не критично для второго, подойдет любое приложение для планирования Windows, просто убедитесь, что для простоты в переменной PATH указан путь к бину PHP.
Для задач Windows CRON я не могу порекомендовать PyCron достаточно.
как насчет PHPscheduler..R они не лучше, чем cronjobs? Я думаю, что crons не будет зависеть от приложения, поэтому было бы сложно изменить хост. Я не совсем уверен… Было бы здорово, если бы кто-нибудь мог это прокомментировать !! Спасибо!