Có, bạn có thể làm như vậy nhưng bạn nên tham khảo các đối số từ mảng $_SERVER['argv']
. $_SERVER['argc']
sẽ cho bạn biết có bao nhiêu args đã được nhận, nếu bạn muốn sử dụng nó như là một lớp đầu tiên của xác nhận để đảm bảo một số yêu cầu của args được đầu vào.
Để minh họa điều này, chạy kịch bản sau đây là args.php arg1 arg2 arg3
:
#!/usr/bin/php
<?php
var_dump($argv);
?>
chí đầu ra:
array(4) {
[0]=>
string(8) "args.php"
[1]=>
string(4) "arg1"
[2]=>
string(4) "arg2"
[3]=>
string(4) "arg3"
}
Dưới đây là một ví dụ thực tế:
Trong ví dụ này, chúng ta sẽ tạo một tập lệnh (days.php) xuất ra số ngày kể từ một ngày cụ thể. Nó sẽ chấp nhận 3 tham số, tháng, ngày và năm làm số.
#!/usr/bin/php
<?php
if($argc < 4 || !is_numeric($argv[1]) || !is_numeric($argv[2]) || !is_numeric($argv[3]))
{
echo "Usage: $argv[0] mm dd yyyy\n";
}
else
{
$pastdate = mktime(0, 0, 0, $argv[1], $argv[2], $argv[3]);
$diff = time() - $pastdate;
$days = round($diff/60/60/24);
echo "$days days since $argv[1]/$argv[2]/$argv[3]\n";
}
?>
Shell gọi:
`$ ./days 11 17 1988` OR `php days.php 11 17 1988`
Output:
7699 days since 11/17/1988
Hope this helps.
Liên kết hướng dẫn "Truy cập PHP throuh SHELL" chuyển hướng đến một trang web spam! – Avi