2012-03-10 12 views
11

Tôi hiện đang phát triển một vài plugin cho Sublime Text 2 trên OS X và tôi muốn biến chúng thành nền tảng chéo, có nghĩa là tôi phải tìm hiểu xem liệu có và cài đặt php.exe hay không.Cách xác định đường dẫn đến php.exe trên cửa sổ - tìm đường dẫn mặc định?

Ngay bây giờ tôi gọi /usr/bin/php bằng Python, mà rõ ràng là chỉ hoạt động trên OS X và Linux:

phppath = '/usr/bin/php'<br> 
pluginpath = sublime.packages_path() + '/HtmlTidy/tidy.php'<br> 
retval = os.system('%s "%s"' % (phppath, scriptpath)) 

Nhưng trên Windows, có vẻ là không có đường dẫn mặc định cho definitve php.exe. Tôi càng googled cho nó, càng có nhiều possibilies xuất hiện. Cho đến nay tôi nghĩ rằng tôi sẽ phải kiểm tra từng đường dẫn sau đây để tồn tại:

c:\php\php.exe 
c:\php5\php.exe 
c:\windows\php.exe 
c:\program files\php\php.exe 
c:\wamp\bin\php\php5\php.exe 
c:\xampp\php\php.exe 

Đó là đã khá một bộ sưu tập, nhưng những gì tôi yêu cầu cho là một trong hai danh sách hoàn bao gồm tất cả possibilties - hoặc một cách khác để tìm ra điều đó phải mạnh mẽ như kiểm tra từng đường dẫn có thể.

Vì vậy, nếu bạn có php.exe được cài đặt ở một số nơi khác, hãy để lại nhận xét với đường dẫn của bạn và tôi sẽ thêm nó vào danh sách ở trên.

Bên cạnh đó, có vẻ như là php.exephp-cli.exe. Tôi đoán nó sẽ là ok để loop trough mỗi con đường có thể, kiểm tra đầu tiên cho php-cli.exe, sau đó kiểm tra php.exe và có trận đấu đầu tiên. Điều đó đúng hay là có một thực hành tốt hơn?

+2

Tôi chỉ sẽ tìm kiếm nó trong PATH Windows, và sau đó nếu nó không có ở đó, nhắc nhở người dùng cho nó . Danh sách của bạn không bao giờ có thể được hoàn thành. Và, nếu người dùng có nhiều đường dẫn đến một php.exe thì sao? Tôi có 5 hoặc 6 php.exe ngay bây giờ. – Corbin

+3

Hãy tìm biến môi trường 'PHPRC'. Nó chứa thư mục chứa 'php.exe'. Nó thường có sẵn trên các hệ thống cửa sổ. – hakre

+0

bạn có thể tìm kiếm sổ đăng ký, nhưng tôi không có chuyên gia về nó vì vậy tôi không thể nói như thế nào. – aquavitae

Trả lời

25

Nếu người dùng đã xác định đã thêm thư mục bin của PHP vào hệ thống PATH thì bạn chỉ có thể thử và thực hiện php -v để kiểm tra xem nó có mặt hay không.

Nếu bạn muốn để có được đầy đủ đường dẫn đến php thực thi và hệ thống mục tiêu là Windows 2003 hoặc sau đó (vì vậy Vista, và 7) sau đó bạn có thể sử dụng WHERE lệnh, ví dụ:

C:\>where php.exe 
C:\Program Files (x86)\WAMP\bin\php\php5.3.5\php.exe 

Cũng xem câu hỏi có thể có liên quan: Is there an equivalent of 'which' on the Windows command line?.

Nếu bạn đang thực sự tuyệt vọng để tìm tập tin bất kỳ trên máy tính của người dùng, bạn có thể thử thực hiện các equivilent của một find - nhưng nó sẽ là slooow!

C: && cd \ && dir /s /b php.exe 
+1

Làm thế nào tôi không biết rằng Windows đã thêm lệnh "where"? – Kibbee

+0

'where' không tìm thấy' php.exe' của tôi. Thật vậy, có vẻ như chỉ nhìn vào PATH và thư mục hiện tại. – Kos

+0

@Bạn có thể cho chúng tôi biết, địa chỉ * của bạn * php.exe thực sự là? – Matt

4

Từ PHP 5.4 trở lên, bạn có thể sử dụng hằng số PHP_BINARY.

+0

Đối với tất cả chúng ta noobies ra khỏi đó, nó sẽ hữu ích nếu điều này đã được cập nhật với một lời giải thích dài hơn. –

+0

'echo PHP_BINARY;' nhưng nó cho tôi không có gì trên Linux. –

+0

Trong trường hợp của tôi nó trả về C: \ xampp \ apache \ bin \ httpd.exe mà không thực hiện một tệp, trong khi C: \ xampp \ php \ php.exe không – ymakux

-1

thử

echo PHP_BINDIR; 

Nó hoạt động, tôi thử nghiệm nó trên hệ điều hành MacOS như với php 5.6

+0

Câu hỏi là về Windows không Mac . Điều này không hoạt động – Ryall

+0

Điều cần biết. Cảm ơn vì đã chia sẽ kinh nghiệm của bạn. Bạn đã thử cấu hình hệ thống nào? Php vercsion và vân vân ... –