Hàm is_executable() trong PHP

24/11/2020 - lượt xem
Chia sẻ
 
Rate this post

Định nghĩa.

Hàm is_executable() sẽ kiểm tra xem file truyền vào có quyền thực thi hay không.

Cú pháp.

Cú pháp:

is_executable string $filename ) : bool

Trong đó.

  • $filename là đường dẫn tới file cần kiểm tra.

Giá trị trả về.

  • Hàm sẽ trả về True nếu file truyền vào có thể thực thi, ngược lại hàm trả về False.

Ví dụ.

Ví dụ 1.

code.

<?php

$file = '/home/vincent/somefile.sh';

if (is_executable($file)) {
    echo $file.' is executable';
} else {
    echo $file.' is not executable';
}

?>

Ghi chú.

  • Kết quả của chức năng này được lưu trữ. Xem Clearstatcache () để biết thêm chi tiết.
  • Kể từ phiên bản PHP 5.0.0, chức năng này cũng có thể được sử dụng với một số Supported Protocols and Wrappers. Tham khảo các Giao thức và Trình bao bọc được Hỗ trợ để xác định nhóm chức năng hỗ trợ stat() nào.

Hàm liên quan.

  • is_file() – Cho biết tên tệp có phải là tệp thông thường không
  • is_link() – Cho biết tên tệp có phải là một liên kết tượng trưng không

Thông tin thêm.

  • Đối với người dùng windows, Nó sẽ trả về TRUE cho các phần mở rộng EXE. Tôi đã kiểm tra MSI, nhưng nó trả về FALSE.
  • Hàm này trả về giá trị cho quá trình PHP đang thực thi. / var / someone / files chỉ được thực thi bởi chủ sở hữu (700). Nó chứa các tệp có thể đọc world-executable, nhưng không có quyền thực thi, PHP không thể truy cập vào thư mục để tải xuống các tệp. is_executable () trả về false Làm cho world-executable thực thi (701) đã cấp quyền truy cập vào PHP. Việc tải xuống đã làm việc. Và is_executable () trả về đúng. Tôi giả sử rằng nếu tôi thêm PHP vào nhóm thư mục và cho phép thực thi nhóm, điều đó cũng sẽ hoạt động.
  • is_executable () không kiểm tra biến môi trường PATH, vì vậy nếu thư mục làm việc hiện tại của bạn là / dir / và bạn có / bin / trong env PATH của bạn và tệp / bin / ffmpeg tồn tại, thì bạn vẫn có thể chạy shell_exec (“ffmpeg” ), nhưng is_executable (“ffmpeg”) sẽ trả về false nếu bạn đang tìm kiếm một phiên bản is_executable cũng xem xét biến môi trường PATH, thì hãy thử điều này:
    <?php
    
    function is_executable_pathenv(string $filename): bool
    {
        if (is_executable($filename)) {
            return true;
        }
        if ($filename !== basename($filename)) {
            return false;
        }
        $paths = explode(PATH_SEPARATOR, getenv("PATH"));
        foreach ($paths as $path) {
            if (is_executable($path . DIRECTORY_SEPARATOR . $filename)) {
                return true;
            }
        }
        return false;
    }

Các bạn có thể xem chi tiết hơn trên php.net.

Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm is_executable() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm