I would like to open a file inside a folder in PHP. The problem is that the folder that contains the file may have spaces in the name. The code I use to open the file (and doesn't work) is the following:
$myFile = "path/to the/file.txt";
$myFile = str_replace(' ', '\ ', $myFile);
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
echo $theData;
As you can see, I'm trying to solve the problem by putting a \
in front of the space, but this doesn't solve the issue. I still receive the following error:
Warning: fopen(path/to\ the/file.txt) [function.fopen]: failed to open stream: No such file or directory in /path/to/my/website on line 49
Any idea on how to solve this issue?
Thanks!
Backslashes are used to escape spaces on the command line, because spaces on the command line are argument separators. There's no such problem in PHP. If you give any string to fopen
, it expects that this one string is one path. It does not break the path into separate arguments at the spaces because that makes no sense in this context.
Therefore, just don't add any backslashes. The path path/to\ the/file.txt
is not the same as the path path/to the/file.txt
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With