Bug #54422 [NoF]: possibly a bug in file_exists() found
| From: | requinix@php.net | Date: | Tue, 26 Mar 2019 02:18:04 +0000 |
| Subject: | Bug #54422 [NoF]: possibly a bug in file_exists() found | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-220180@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=54422&edit=1
ID: 54422
Updated by: requinix@php.net
Reported by: f dot roze dot n at hush dot ai
Summary: possibly a bug in file_exists() found
Status: No Feedback
Type: Bug
Package: Filesystem function related
Operating System: linux
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
@christo: PHP 5.3 fell out of support years ago. Can you reproduce with PHP 7.1 or later?
Previous Comments:
------------------------------------------------------------------------
[2019-03-26 00:52:02] christo at iagauctions dot com
I am having the same issue with file_exists:
I retrieve clients data from the DB, loop through it in while loopd, then check if they have an
invoice:
$filename =
"/invoices/invoice_".$auction_short_name."_".$lname."_".$member_id.".pdf";
if(file_exists($filename)) {
$pdf_previw = "<a
href=\"/invoices/invoice_".$auction_name."_".$member_name."_".$member_id.".pdf">INVOICE</a>";
} else {
$pdf_previw = "";
}
This works as expected in all cases EXCEPT when there is an apostrophe in the clients name, IE
$member_name=O'Rourke.
When i remove the "if(file_exists($filename))" check and just display:
$pdf_previw = "<a
href=\"/invoices/invoice_".$auction_name."_".$member_name."_".$member_id.".pdf">INVOICE</a>";
it displays it correctly, and when clicked on displays the PDF file as expected. This to me
indicates that the file_exists function is not executing properly.
PHP Version: 5.3.29
System: Linux
------------------------------------------------------------------------
[2013-02-18 00:34:47] php-bugs at lists dot php dot net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.
------------------------------------------------------------------------
[2011-04-06 16:02:04] cataphract@php.net
Can't reproduce this. Are you sure the filename doesn't have a backslash?...
$ ls
file\' 1 file' 2
$ ~/php-t/bin/php
<?php
var_dump(file_exists("file\' 1"), file_exists("file' 2"));
bool(true)
bool(true)
------------------------------------------------------------------------
[2011-03-30 14:19:05] f dot roze dot n at hush dot ai
Description:
------------
When using built-in function "file_exists" in 5.3.5 I encountered a trouble of locating
one file, which had apostrophe in its' name.
$filename = "America's Army.png";
if ( file_exists($filename) ) echo "found it";
else echo "bug";
After backslashing the single quote ("America\'s Army.png"), I managed to get things
working.
I considered this as bug since it has nothing o do with DB/HTML backslashing, and also took me a few
hours to find out what the problem was.
Test script:
---------------
// To test, copy a single file called "America's Army.png" to the initial dir
$filename = "America's Army.png";
if ( file_exists($filename) ) echo "found it";
else echo "bug";
Expected result:
----------------
found it
Actual result:
--------------
bug
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=54422&edit=1