Hướng dẫn where does php scripts are executed? - tập lệnh php được thực thi ở đâu?

PHP là ngôn ngữ được biên dịch kể từ PHP 4.0

Ý tưởng về một trình biên dịch dường như là một chủ đề gây ra sự nhầm lẫn lớn. Một số người cho rằng trình biên dịch là một chương trình chuyển đổi mã nguồn bằng một ngôn ngữ thành một chương trình thực thi. Định nghĩa về một trình biên dịch thực sự rộng hơn thế.

Trình biên dịch là một chương trình chuyển đổi mã nguồn thành một đại diện khác của mã. Biểu diễn mục tiêu thường là mã máy, nhưng nó cũng có thể là mã nguồn bằng ngôn ngữ khác hoặc thậm chí trong cùng một ngôn ngữ.

PHP trở thành ngôn ngữ được biên soạn vào năm 2000, khi Php 4 được phát hành lần đầu tiên. Cho đến phiên bản 3, mã nguồn PHP đã được phân tích cú pháp và thực hiện ngay lập tức bởi trình thông dịch PHP.

Php 4 giới thiệu động cơ Zend. Động cơ này chia việc xử lý mã PHP thành nhiều giai đoạn. Pha đầu tiên phân tích mã nguồn PHP và tạo biểu diễn nhị phân của mã PHP được gọi là mã hóa Zend. Opcodes là bộ hướng dẫn tương tự như các byte Java. Các opcode này được lưu trữ trong bộ nhớ. Giai đoạn thứ hai của xử lý động cơ Zend bao gồm thực hiện các mã hóa được tạo.

Hình thành thêm thông tin Truy cập http://www.phpclasses.org/blog/post/117-php-compiler-performance.html

Thực hiện các tệp PHP

Có ba cách khác nhau để cung cấp cho CLI SAPI mã PHP được thực thi:

  1. Nói với PHP để thực hiện một tệp nhất định.

    $ php my_script.php
    
    $ php -f my_script.php
    

    Cả hai cách (dù sử dụng công tắc -f hay không) thực thi tệp my_script.php. Lưu ý rằng không có giới hạn nào về các tệp có thể được thực thi; Cụ thể, tên tệp không bắt buộc có phần mở rộng .php.-f switch or not) execute the file my_script.php. Note that there is no restriction on which files can be executed; in particular, the filename is not required have a .php extension.

  2. Vượt qua mã PHP để thực thi trực tiếp trên dòng lệnh.

    $ php -r 'print_r(get_defined_constants());'
    

    Chăm sóc đặc biệt phải được thực hiện liên quan đến thay thế biến vỏ và sử dụng trích dẫn.

    Ghi chú::

    Trên Windows, nên chạy PHP trong tài khoản người dùng thực tế. Khi chạy theo dịch vụ mạng, một số hoạt động sẽ thất bại, bởi vì "không có ánh xạ giữa tên tài khoản và ID bảo mật đã được thực hiện".-r switch simply does not need them, and using them will lead to a parse error.

  3. PHP tại Richardneill Dot org ¶

    9 năm trước

    $ some_application | some_filter | php | sort -u > final_output.txt
    

Gabriel tại FigDice Dot org ¶

5 năm trước-r, the value of $argv[0] will be "Standard input code"; prior to PHP 7.2.0, it was a dash ("-") instead. The same is true if the code is executed via a pipe from

$ php -r 'print_r(get_defined_constants());'
0.

Email tại Alexander-Bombis Dot de ¶

1 năm trước

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

David tại Frankieandshadow dot com ¶chmod +x test), the script can be executed like any other shell or perl script:

Ví dụ #1 Thực thi tập lệnh PHP dưới dạng tập lệnh shell

$ php -r 'print_r(get_defined_constants());'
5

Giả sử tệp này được đặt tên kiểm tra trong thư mục hiện tại, giờ đây có thể thực hiện như sau:

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}

Có thể thấy, trong trường hợp này, không cần phải thực hiện chăm sóc đặc biệt khi chuyển các tham số bắt đầu bằng

$ php -r 'print_r(get_defined_constants());'
1.

Thực thi PHP có thể được sử dụng để chạy các tập lệnh PHP hoàn toàn độc lập với máy chủ web. Trên các hệ thống UNIX, dòng đầu tiên

$ php -r 'print_r(get_defined_constants());'
7 (hoặc "Shebang") đặc biệt vào các tập lệnh PHP để hệ thống có thể tự động biết chương trình nào sẽ chạy tập lệnh. Trên các nền tảng Windows, có thể liên kết php.exe với tùy chọn nhấp kép của tiện ích mở rộng .php hoặc tệp hàng loạt có thể được tạo để chạy tập lệnh thông qua PHP. Dòng đầu tiên Shebang đặc biệt cho Unix không gây hại cho Windows (vì nó được định dạng là nhận xét PHP), vì vậy các chương trình nền tảng chéo có thể được viết bằng cách bao gồm nó. Một ví dụ đơn giản về việc viết một chương trình PHP dòng lệnh được hiển thị bên dưới.

Ví dụ #2 tập lệnh dự định chạy từ dòng lệnh (script.php)

$ php -r 'print_r(get_defined_constants());'
9

$ some_application | some_filter | php | sort -u > final_output.txt
0

$ some_application | some_filter | php | sort -u > final_output.txt
1

$ some_application | some_filter | php | sort -u > final_output.txt
2

$ some_application | some_filter | php | sort -u > final_output.txt
3

Kịch bản trên bao gồm dòng đầu tiên của Unix Shebang để chỉ ra rằng tệp này nên được chạy bởi PHP. Chúng tôi đang làm việc với phiên bản CLI ở đây, vì vậy không có tiêu đề HTTP nào sẽ được đầu ra.

Chương trình trước tiên kiểm tra xem có một đối số cần thiết (ngoài tên tập lệnh, cũng được tính). Nếu không, hoặc nếu đối số là -Help, -help, -h hoặc -?, Thông báo trợ giúp được in ra, sử dụng $ argv [0] để in động tên tập lệnh như được nhập trên dòng lệnh. Nếu không, đối số được lặp lại chính xác như đã nhận được.--help, -help, -h or -?, the help message is printed out, using $argv[0] to dynamically print the script name as typed on the command line. Otherwise, the argument is echoed out exactly as received.

Để chạy tập lệnh trên trên Unix, nó phải được thực thi và được gọi đơn giản là script.php echothis hoặc script.php -h. Trên Windows, một tập tin hàng loạt tương tự như sau đây có thể được tạo cho tác vụ này:script.php echothis or script.php -h. On Windows, a batch file similar to the following can be created for this task:

Ví dụ #3 Tệp Batch để chạy tập lệnh Php dòng lệnh (script.bat)

@echo OFF
"C:\php\php.exe" script.php %*

Giả sử chương trình trên được đặt tên là script.php và CLI php.exe nằm trong c: \ php \ php.exe, tệp hàng loạt này sẽ chạy nó, chuyển tất cả các tùy chọn được nối thêm: script.bat echothis hoặc script.bat -hh .script.bat echothis or script.bat -h.

Xem thêm Tài liệu mở rộng Readline để biết thêm các chức năng có thể được sử dụng để tăng cường các ứng dụng dòng lệnh trong PHP.

Trên Windows, PHP có thể được cấu hình để chạy mà không cần cung cấp cho phần mở rộng C: \ PHP \ php.exe hoặc .php, như được mô tả trong dòng lệnh PHP trên Microsoft Windows.

Ghi chú::

Trên Windows, nên chạy PHP trong tài khoản người dùng thực tế. Khi chạy theo dịch vụ mạng, một số hoạt động sẽ thất bại, bởi vì "không có ánh xạ giữa tên tài khoản và ID bảo mật đã được thực hiện".

PHP tại Richardneill Dot org ¶

9 năm trước

$ some_application | some_filter | php | sort -u > final_output.txt
5

$ some_application | some_filter | php | sort -u > final_output.txt
6

$ some_application | some_filter | php | sort -u > final_output.txt
7

$ some_application | some_filter | php | sort -u > final_output.txt
8

$ some_application | some_filter | php | sort -u > final_output.txt
9

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
0

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
1

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
2

$ some_application | some_filter | php | sort -u > final_output.txt
3

Gabriel tại FigDice Dot org ¶

5 năm trước

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
4

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
5

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
6

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
7

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
8

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f]  [args...]
[...]

# This will pass the '-h' argument to the script and prevent PHP from showing its usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
9

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
0

$ some_application | some_filter | php | sort -u > final_output.txt
3

Email tại Alexander-Bombis Dot de ¶

1 năm trước

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
2

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
3

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
4

$ some_application | some_filter | php | sort -u > final_output.txt
3

David tại Frankieandshadow dot com ¶

6 năm trước

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
6

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
7

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
8

$ some_application | some_filter | php | sort -u > final_output.txt
3

Spencer tại Aninetpresence Dot Net

11 năm trước

@echo OFF
"C:\php\php.exe" script.php %*
0

Các tập lệnh PHP có được thực thi trên máy chủ không?

PHP là ngôn ngữ kịch bản phía máy chủ.Điều này có nghĩa là nó được thực thi trên máy chủ.Các ứng dụng khách không cần phải cài đặt PHP.it is executed on the server. The client applications do not need to have PHP installed.

Các chương trình PHP được thực thi như thế nào?

Bạn chỉ cần làm theo các bước để chạy chương trình PHP bằng dòng lệnh ...
Mở cửa sổ thiết bị đầu cuối hoặc dòng lệnh ..
Goto thư mục hoặc thư mục được chỉ định có các tệp PHP có mặt ..
Sau đó, chúng ta có thể chạy mã PHP bằng lệnh sau: php file_name.php ..

Mã PHP đi đâu?

Một tập lệnh PHP có thể được đặt ở bất cứ đâu trong tài liệu.Tiện ích mở rộng tệp mặc định cho các tệp PHP là ".php".Một tệp PHP thường chứa các thẻ HTML và một số mã tập lệnh PHP.anywhere in the document. The default file extension for PHP files is " .php ". A PHP file normally contains HTML tags, and some PHP scripting code.