There is a bug in search_files where you both escape and quote filenames. You only need to do one or the other.

The php command escapeshellcmd() will escape & and other characters in unix, which is fine if you are not quoting. However as soon as you put quotes around it the escape character "\" because a valid character in the filename and not an escape character.

This causes your helper command to fail because it cannot find the correct file.

In the best of worlds non-devs wouldn't use filenames with spaces and ampersands in them, but thus is the world of business.

In any case, I'd probably remove the escapeshellcmd() and just use quotes for unix, though not sure what to do about php in windows...