#39234 [Opn->Asn]: Retrieve short names to files.
ID: 39234
Updated by: pajoye@php.net
Reported By: RQuadling at GMail dot com
-Status: Open
+Status: Assigned
Bug Type: Feature/Change Request
Operating System: Windows XP SP2
PHP Version: 5CVS-2006-10-23 (snap)
-Assigned To:
+Assigned To: pajoye
Previous Comments:
------------------------------------------------------------------------
[2010-02-12 21:55:49] mvigo at incakola dot com dot pe
Good afternoon. The secret of greatness is simple: do better work than
any other man in your field - and keep on doing it. Help me! Can not
find sites on the: Bet on sports income tax. I found only this - <a
href="http://abcs.tamu.edu/Members/BetOnSports/bet-gambling-sports">bet
gambling sports</a>. Cortina was ended to have involved states on
chicago's west side and in its complicated seconds that were faced to
face things on online and selection game, connection and system games,
bet on sports. Bet on sports, high help jerrod johnson garnered the
23-yard in the second year, providing two betting odds on three tons,
with a new information by making standard keondra smith. ;-) Thanks in
advance. Muna from Zaire.
------------------------------------------------------------------------
[2006-10-23 12:39:29] RQuadling at GMail dot com
http://msdn.microsoft.com/library/en-us/fileio/fs/getfullpathname.asp
and
http://msdn.microsoft.com/library/en-us/fileio/fs/getshortpathname.asp
(Maybe these will fit?)
------------------------------------------------------------------------
[2006-10-23 12:37:56] RQuadling at GMail dot com
Description:
------------
Hello.
(I was required to pick a version, but that is not really relevant).
This issue extends from a bug/feature of the Windows command shell
executable (cmd.exe) which only allows a single set of double quotes to
be used when being used with the /C option.
e.g.
<?php
// Fine
exec('"C:\Program Files\Some Dir\Some Program" C:\somefile.txt');
// Not fine
exec('"C:\Program Files\Some Dir\Some Program" "C:\some file with a
space in the name.txt"');
?>
You get an error which is the same at the command prompt.
These work (the parameter is useless).
C:\windows\system32\calc.exe 123
"C:\windows\system32\calc.exe" 123
C:\windows\system32\calc.exe "123"
"C:\windows\system32\calc.exe" "123"
cmd /c C:\windows\system32\calc.exe 123
cmd /c "C:\windows\system32\calc.exe" 123
cmd /c C:\windows\system32\calc.exe "123"
But this doesn't work at the command line.
cmd /c "C:\windows\system32\calc.exe" "123"
You get the error ...
'C:\windows\system32\calc.exe" "123' is not recognized as an internal
or external command, operable program or batch file.
So, whilst this isn't a PHP bug, PHP could certainly help get around
the problem.
My proposal is to either extend the PHP function realpath() to allow
for a boolean parameter to indicate the short name is to be returned.
e.g.
string realpath ( string path [, boolean return_short_name] )
or to introduce 2 new functions
string shortname ( string longname )
string longname ( string shortname )
In addition, extending the SPL to have a getShortName() method.
To get the shortname within MS VC++, there is a function called
GetShortPathName(). There is also GetLongPathName().
References to these functions can be found at
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getshortpathname.asp
and
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getlongpathname.asp
DWORD GetShortPathName(
LPCTSTR lpszLongPath,
LPTSTR lpszShortPath,
DWORD cchBuffer
);
DWORD GetLongPathName(
LPCTSTR lpszShortPath,
LPTSTR lpszLongPath,
DWORD cchBuffer
);
With the shortname() function, a filename like ...
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exe
would become ...
C:\PROGRA~1\MI6841~1\80\TOOLS\BINN\OSQL.EXE
The name supplied is system dependent. I have a LOT of directories in
"C:\Program Files" starting with Microsoft.
27/10/2004 15:01 <DIR> MI3AA1~1 Microsoft ActiveSync
16/03/2006 11:13 <DIR> MIAF83~1 Microsoft AntiSpyware
05/01/2005 10:02 <DIR> MIDA86~1 Microsoft Baseline
Security Analyzer
23/02/2005 16:17 <DIR> MIAF01~1 Microsoft Firewall
Client
27/10/2004 12:13 <DIR> MICROS~1 microsoft frontpage
06/04/2006 09:22 <DIR> MICROS~3 Microsoft
IntelliPoint
06/04/2006 09:26 <DIR> MICROS~2 Microsoft IntelliType
Pro
06/04/2006 10:13 <DIR> MICROS~4 Microsoft Office
29/10/2004 14:36 <DIR> MI6841~1 Microsoft SQL Server
16/11/2004 16:31 <DIR> MIAF9D~1 Microsoft Visual
Studio
28/10/2004 08:44 <DIR> MIF2B0~1 Microsoft Works
23/02/2005 12:02 <DIR> MICROS~1.NET Microsoft.NET
In terms of impact, making 2 new functions which are Windows only would
probably be easier.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39234&edit=1
Thread (5 messages)