1. <?php
  2. /**
  3. * Limits output of URL parameters for short-lived tasks with graceful failure handling.
  4. *
  5. * @param array $params Array of URL parameters.
  6. * @param string $task_name Name of the task.
  7. * @return string|false Output string or false on failure.
  8. */
  9. function limitUrlParams(array $params, string $task_name): string|false
  10. {
  11. $output = '';
  12. $max_params = 5; // Limit the number of displayed parameters.
  13. if (empty($params)) {
  14. return ''; // Return empty string if no parameters are provided.
  15. }
  16. $count = 0;
  17. foreach ($params as $key => $value) {
  18. if ($count >= $max_params) {
  19. // Stop displaying parameters once the limit is reached.
  20. break;
  21. }
  22. // Sanitize the key and value for output.
  23. $sanitized_key = htmlspecialchars($key);
  24. $sanitized_value = htmlspecialchars($value);
  25. $output .= "$sanitized_key=$sanitized_value ";
  26. $count++;
  27. }
  28. if (empty($output)) {
  29. return "No parameters to display for task: $task_name";
  30. }
  31. return "Task '$task_name' parameters (limited): $output";
  32. }
  33. // Example usage:
  34. $params1 = ['param1' => 'value1', 'param2' => 'value2', 'param3' => 'value3', 'param4' => 'value4', 'param5' => 'value5', 'param6' => 'value6'];
  35. $result1 = limitUrlParams($params1, 'short_task');
  36. echo $result1 . "\n";
  37. $params2 = ['param1' => 'value1', 'param2' => 'value2'];
  38. $result2 = limitUrlParams($params2, 'another_short_task');
  39. echo $result2 . "\n";
  40. $params3 = [];
  41. $result3 = limitUrlParams($params3, 'empty_task');
  42. echo $result3 . "\n";
  43. ?>

Add your comment