I am working on a command line program in PHP and I am having trouble, my first problem is when I call PHP’s
mkdir() it is giving me this error
Warning: mkdir(): No such file or directory in E:\Server\_ImageOptimize\OptimizeImage.php on line 196
I then read in the PHP docs a user comment that said that the forward slash
/ does not work with this method under Windows but on Unix.
So I then changed my code to change them to backslashes but it did not change anything for me, I still got the same error on the same line.
Here is the code below can someone help me figure this out please
// I tried both of these below $tmp_path = '\tmp\e0bf7d6'; //$tmp_path = '/tmp/e0bf7d6'; echo $tmp_path; mkdir($tmp_path);
The actual problem is that
mkdir() only creates one subdirectory per call, but you passed it a path of two non-existant directories. You would normally have to do this step by step:
mkdir("/tmp"); mkdir("/tmp/e0b093u209"); mkdir("/tmp/e0b093u209/thirddir");
Or use the third parameter shortcut:
mkdir("/tmp/e0b093u209", 0777, TRUE);
I normally use the following line as a constant and I put in a global file to be used through my sites.
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
That should fix the separator problem. I would also try the recursive property found in mkdir that will allow you to make the nested structure.
Please see the foillowing, http://php.net/manual/en/function.mkdir.php
You will notice that you needs to call mkdir like below.
mkdir ($path, $mode, true)