Bug #54422 [Com]: possibly a bug in file_exists() found

From: Date: Tue, 26 Mar 2019 00:52:02 +0000
Subject: Bug #54422 [Com]: possibly a bug in file_exists() found
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-220179@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 Comment by: christo at iagauctions dot com 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: 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 Previous Comments: ------------------------------------------------------------------------ [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

« previous php.bugs (#220179) next »