fork(1) download
  1. <?php
  2.  
  3. $strings = ["folders/folder1/folder5/../../folder2", "folders/folder1/../../../folder2", "folders/folder1/folder5/../folder2"];
  4.  
  5. function make_path($string) {
  6. $parts = explode("/", $string);
  7. $new_folder = [];
  8. for ($i=0; $i<count($parts); $i++) {
  9. if ($parts[$i] == "..") {
  10. if (count($new_folder) === 0) {
  11. $new_folder[] = $parts[$i];
  12. } else {
  13. array_pop($new_folder);
  14. }
  15. } else {
  16. $new_folder[] = $parts[$i];
  17. }
  18. }
  19. return implode("/", $new_folder);
  20. }
  21.  
  22. $new_folders = array_map('make_path', $strings);
  23. print_r($new_folders);
  24. ?>
Success #stdin #stdout 0.02s 25636KB
stdin
Standard input is empty
stdout
Array
(
    [0] => folders/folder2
    [1] => ../folder2
    [2] => folders/folder1/folder2
)