3v4l.org

run code in 500+ PHP versions simultaneously
<?php declare(strict_types = 1); $disabledDay = new DateTimeImmutable('2026-07-07'); // day DD was disabled $enableDay = new DateTimeImmutable('today'); // last day for witch import should run $path = '/home/users/slevomat/slevomat.cz/version/20260802212854'; $parts = ['bank']; $otherIncomeStart = $disabledDay->modify('-1 day'); $bankStart = $disabledDay; $bankFinal = $enableDay->modify('-5 days'); $otherIncomeFinal = $enableDay->modify('-1 day'); $since = min($otherIncomeStart, $bankStart); $partOptions = array_filter(array_map(function(string $part): string {return in_array($part, ["bank", "vcn"]) ? '' : ' --part='.$part;}, $parts ?? [])); while ($since <= max($bankFinal, $otherIncomeFinal)) { if (in_array('bank', $parts, true) && $since <= $bankFinal && $since > $bankStart) { $commands[] = sprintf('echo "%1$s bank" && %2$s/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "%1$s"', $since->format('Y-m-d'), $path); } if (in_array('vcn', $parts, true) && $since <= $bankFinal && $since > $bankStart) { $commands[] = sprintf('echo "%1$s vcn" && %2$s/bin/cli abra:import-virtual-cards -vvv -- "%1$s"', $since->format('Y-m-d'), $path); } if (count(array_intersect(['obligations', 'giftcards', 'earnings'], $parts)) !== 0 && $since <= $otherIncomeFinal && $since > $otherIncomeStart) { $commands[] = sprintf('echo "%1$s other income" && %2$s/bin/cli --memory-limit=6G abra:daily-dose:other-income%3$s -vvv -- "%1$s"', $since->format('Y-m-d'), $path, implode('', $partOptions)); } $since = $since->modify('+1 day'); } echo '#!/bin/bash'."\n\n"; echo implode(" && \\\n", $commands);
Output for 8.2.31 - 8.2.33, 8.3.0 - 8.3.33, 8.4.1 - 8.4.24, 8.5.0 - 8.5.9
#!/bin/bash echo "2026-07-08 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-08" && \ echo "2026-07-09 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-09" && \ echo "2026-07-10 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-10" && \ echo "2026-07-11 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-11" && \ echo "2026-07-12 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-12" && \ echo "2026-07-13 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-13" && \ echo "2026-07-14 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-14" && \ echo "2026-07-15 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-15" && \ echo "2026-07-16 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-16" && \ echo "2026-07-17 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-17" && \ echo "2026-07-18 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-18" && \ echo "2026-07-19 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-19" && \ echo "2026-07-20 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-20" && \ echo "2026-07-21 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-21" && \ echo "2026-07-22 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-22" && \ echo "2026-07-23 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-23" && \ echo "2026-07-24 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-24" && \ echo "2026-07-25 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-25" && \ echo "2026-07-26 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-26" && \ echo "2026-07-27 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-27" && \ echo "2026-07-28 bank" && /home/users/slevomat/slevomat.cz/version/20260802212854/bin/cli --memory-limit=6G abra:daily-dose:bank -vvv -- "2026-07-28"

preferences:
52.12 ms | 1075 KiB | 4 Q