|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2011-03-30 14:19 UTC] 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
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Dec 08 14:00:02 2025 UTC |
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)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