php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #69434 php_uname('m') reports unexpected machine type
Submitted: 2015-04-13 07:17 UTC Modified: 2021-08-09 14:33 UTC
Votes:5
Avg. Score:1.8 ± 1.2
Reproduced:2 of 3 (66.7%)
Same Version:1 (50.0%)
Same OS:1 (50.0%)
From: tm8544 at hotmail dot com Assigned:
Status: Open Package: *General Issues
PHP Version: 5.6.7 OS: Windows
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: tm8544 at hotmail dot com
New email:
PHP Version: OS:

 

 [2015-04-13 07:17 UTC] tm8544 at hotmail dot com
Description:
------------
PHP_uname('m') gives wrong machine type.
In my case, processor is Intel Pentium 4, but PHP_uname('m')gives AMD64.




Test script:
---------------
<?php
echo php_uname('m');
?>



Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2015-04-13 07:58 UTC] tm8544 at hotmail dot com
SYSTEM_INFO structure
PROCESSOR_ARCHITECTURE_AMD64 stands for x64 (AMD or Intel)

I suggest that instead of reporting "AMD64" PHP_uname('m') would report "x64".
 [2015-04-13 08:18 UTC] derick@php.net
I believe it should return x86_64 - like it does on Linux:

php -r 'echo php_uname("m");'
x86_64
 [2015-04-13 08:34 UTC] krakjoe@php.net
To change it would be a considerable BC break though, http://lxr.php.net/xref/PHP_TRUNK/ext/standard/info.c#php_get_windows_cpu has been like that for a long time.

Not sure what is the best thing to do, it would be nice if they were consistent with each other, but I don't see a good way to actually do it.
 [2015-04-13 09:24 UTC] ab@php.net
IMHO this shouldn't be changed. AMD64 is historically a synonymous for any 64-bit architecture. This is a common terminology, on Windows it's a standard keyword, on some Linux distros  (fe Gentoo) as well.

Thanks.
 [2016-03-28 22:58 UTC] walts at jtechmedical dot com
I'm also seeing php_uname() reporting the wrong machine information

example output from php_uname()
Windows NT ELITE800 6.2 build 9200 (Windows 8 Professional Edition) i586

vs as reported from the substring in the user agent
Windows NT 10.0; WOW64

Machine is actually Windows NT 10.0; WOW64 so it seems something isn't reporting or parsing correctly in php_uname().
 [2016-03-28 23:00 UTC] walts at jtechmedical dot com
I should mention the PHP version is 5.5.30
 [2021-08-09 14:33 UTC] cmb@php.net
-Summary: php_uname('m') reports wrong machine type +Summary: php_uname('m') reports unexpected machine type -Type: Bug +Type: Documentation Problem -Operating System: Windows 7 x64 +Operating System: Windows
 [2021-08-09 14:33 UTC] cmb@php.net
> To change it would be a considerable BC break though, 

Right.  Changing to doc problem.

> Machine is actually Windows NT 10.0; WOW64

No.  WOW64 means that the browser is a 32bit application running
on a 64bit Windows.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 16:01:28 2024 UTC