Trong bài viết này mình xin chia sẻ với các bạn một số hàm mà mình hay sử dụng trong các project hiện tại.

1. Hàm đọc dữ liệu từ file

– Tham số:

  • $file: Đường dẫn vật lý tới file cần đọc.
  • $convert_to_array: Chuyển đổi dữ liệu đọc được sang dạng mảng.

if (!function_exists('get_file_data')) {
    /**
    * @param $file
    * @param $convert_to_array
    * @return bool|mixed
    * @author Sang Nguyen
    */
    function get_file_data($file, $convert_to_array = true)
    {
         $file = @file_get_contents($file);
         if (!empty($file)) {
             if ($convert_to_array) {
                return json_decode($file, true);
             }
             return $file;
         }
         return false;
    }
}

2. Hàm json_encode helper

– Hàm này sẽ hỗ trợ chuyển đổi dữ liệu khi dùng json encode sang dạng dễ đọc. Mặc định json_encode thì sẽ ra string dính liền với nhau, khi chúng ta ghi ra file nhìn sẽ rất khó. Dùng hàm này thì lúc ghi dữ liệu ra file, nó sẽ ở dạng json giúp dễ đọc hơn.

    if (!function_exists('json_encode_prettify')) {
        /**
        * @param $data
        * @return string
        */
        function json_encode_prettify($data)
        {
             return json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
        }
    }

3. Hàm ghi dữ liệu

if (!function_exists('save_file_data')) {
     /**
     * @param $path
     * @param $data
     * @param $json
     * @return bool|mixed
     * @author Sang Nguyen
     */
     function save_file_data($path, $data, $json = true)
     {
        try {
            if ($json) {
                $data = json_encode_prettify($data);
            }
            @file_put_contents($path, $data);
            return true;
         } catch (Exception $ex) {
            return false;
         }
     }
}

4. Hàm lấy tất cả tập tin và thư mục con của một thư mục

– Tham số:

  • $path: Đường dẫn vật lý tới thư mục cần quét.
  • $ignore_files: các tập tin bạn không muốn bao gồm trong kết quả tìm được. Ví dụ: .gitignore, .thumb, .DS_STORE…
if (!function_exists('scan_folder')) {
    /**
    * @param $path
    * @param array $ignore_files
    * @return array
    * @author Sang Nguyen
    */
    function scan_folder($path, $ignore_files = [])
    {
        try {
            if (is_dir($path)) {
                $data = array_diff(scandir($path), array_merge(['.', '..'], $ignore_files));
                natsort($data);
                return $data;
            }
            return [];
        } catch (Exception $ex) {
             return [];
        }
    }
}

Còn tiếp…

Mình là 1 developer mới vào nghề, chưa có nhiều kinh nghiệm với lập trình web nhưng luôn muốn chia sẻ những hiểu biết của mình với các lập trình viên khác.

  • Địa chỉ: Hồ Chí Minh