Làm cách nào để đếm số lượng trong một tệp trong PHP?

❮ Tham chiếu mảng PHP

Thí dụ

Trả về số phần tử trong mảng

$cars=array("Volvo","BMW","Toyota");
đếm tiếng vang($cars);
?>

Tự mình thử »


Định nghĩa và cách sử dụng

Hàm count() trả về số lượng phần tử trong một mảng


cú pháp

Giá trị tham số

Tham sốMảng mô tảBắt buộc. Chỉ định ArraymodeOptional. Chỉ định chế độ. Những giá trị khả thi
  • 0 - Mặc định. Không đếm hết các phần tử của mảng nhiều chiều
  • 1 - Đếm mảng đệ quy (đếm tất cả các phần tử của mảng nhiều chiều)


chi tiết kỹ thuật

Giá trị trả về. Trả về số phần tử trong mảngPhiên bản PHP. 4+Nhật ký thay đổi PHP. Tham số chế độ đã được thêm vào trong PHP 4. 2

Thêm ví dụ

Thí dụ

Đếm mảng theo cách đệ quy

$cars=array
  (
  "Volvo"=>array
  (
  "XC60",
  "XC90"
  ),
  "BMW"=>array
  (
  "X3",
  "X5"
  ),
  "Toyota"=>array
  (
  "Highlander"
  )
  );

echo "Số bình thường. ". đếm($ô tô). "
";
echo "Đếm đệ quy. ". đếm($cars,1);
?>

Tự mình thử »


❮ Tham chiếu mảng PHP

Trong hướng dẫn này, tôi sẽ trình bày cách lấy số lượng tệp (và thư mục con) trong một thư mục bằng cách sử dụng tập lệnh PHP đơn giản

Trong một hướng dẫn khác, tôi đã trình bày cách lấy tất cả các tệp trong một thư mục bằng PHP bằng các hàm glob() và readdir(). Trong các ví dụ đó, chúng tôi đã trả lại thông tin về các tệp trong một thư mục nhưng chúng tôi không nhận được số lượng tệp. Tiếp tục từ phần chúng ta đã để lại, bây giờ chúng ta sẽ xem cách đếm số lượng tệp và thư mục con trong một thư mục

Bạn có thể cần lấy số lượng tệp của một thư mục cho nhiều mục đích khác nhau, chẳng hạn như hiển thị số đó trên một trang hoặc áp dụng giới hạn cho số lượng tệp có thể được tải lên một thư mục. Như thường lệ, không có một phương pháp tốt nhất duy nhất để làm điều gì đó trong PHP, vì vậy bạn có thể tự do sử dụng bất kỳ phương pháp nào bạn muốn vì nó phù hợp với mã của bạn, miễn là nó thực hiện đúng công việc

Bây giờ, hãy xem cách lấy số lượng tệp trong một thư mục

Giả sử chúng tôi có một thư mục trên trang web (hoặc ứng dụng web) được đặt tên là ảnh và thư mục này chứa các hình ảnh mà bạn đã tải lên trang web của mình. Giả sử rằng chỉ có tệp (ảnh) và không có thư mục con nào trong thư mục ảnh này

Bạn có thể sử dụng đoạn mã sau bằng hàm glob() để lấy số lượng tệp

$photos = glob('photos/*');
$number_of_photos = count($photos);
?>

Chỉ cần thay thế tên/đường dẫn thư mục bằng tên của bạn nếu cần. Dòng đầu tiên chứa tất cả ảnh trong thư mục ảnh với sự trợ giúp của ký tự đại diện (*); . Dòng thứ hai lấy số ảnh bằng hàm count()

Tương tự, bạn có thể sử dụng hàm readdir() để lấy số lượng file như sau

$number_of_photos = 0;

if ($tmp = opendir('photos/')) {
  while (($photo = readdir($tmp)). == false) {
    if ($photo. = '. ' && $photo. = '. ') {
      $number_of_photos++;
    }
  }
}
?>

TIỀN BOA. Chúng tôi đã loại trừ khỏi số lượng. và. mà readdir() trả về cho (ảnh) hiện tại và thư mục mẹ

Nhận số lượng tệp có loại tệp cụ thể trong một thư mục bằng PHP

Giả sử chúng ta có một thư mục hình ảnh chứa. jpg,. png và. gif và chúng tôi muốn lấy số lượng cho từng loại hình ảnh. Đây là mã để sử dụng

$jpgs = glob('images/*. jpg');
$pngs = glob('images/*. png');
$gifs = glob('hình ảnh/*. gif');

$number_of_jpgs = count($jpgs);
$number_of_pngs = count($pngs);
$number_of_gifs = count($gifs);

Ví dụ tương tự với readdir() sẽ như sau (để đếm. hình ảnh jpg)

$number_of_jpgs = 0;

if ($tmp = opendir('images/')) {
  while (($image = readdir($tmp)). == false) {
    if (strpos($image, '. jpg') == (strlen($image) - 4)) {
      $number_of_jpgs++;
    }
  }
}
?>

Để lọc các tập tin hình ảnh với. jpg, chúng tôi đã thực hiện kiểm tra IF để xem tên tệp hình ảnh có kết thúc bằng. jpg bằng cách sử dụng các hàm strrpos() và strlen()

Nhận số lượng tất cả các tệp và thư mục con trong một thư mục theo cách đệ quy với PHP

Các ví dụ trên giả định rằng bạn chỉ có các tệp trong thư mục đích. Có thể có nhiều thư mục con trong một thư mục và nhiều tệp trong mỗi thư mục con, chẳng hạn như thư mục hình ảnh có nhiều danh mục. Để có được tổng số tệp trong trường hợp này, bạn có thể sử dụng đoạn mã sau

function count_files($dir) {
  $count = 0;

  if ($tmp = opendir($dir)) {
    while (($file = readdir($tmp)). == false) {
      if ($file. = '. ' && $file. = '. ') {
        if (is_dir($dir. '/'. $file)) {
           $count += count_files($dir. '/'. $file);
        } else {
          $count++;
        }
      }        }      }    }
  }
  return $count;
}

$number_of_files = count_files('hình ảnh');

Chúng tôi cần sử dụng hàm đệ quy tùy chỉnh, Count_files() để có thể lấy tất cả các tệp trong nhiều cấp độ thư mục con. Theo cách tương tự, nếu bạn chỉ cần lấy số lượng thư mục con trong một thư mục, bạn có thể sử dụng đoạn mã sau

function count_folders($dir) {
  $count = 0;

  if ($tmp = opendir($dir)) {
    while (($file = readdir($tmp)). == false) {
      if ($file. = '. ' && $file. = '. ') {
        if (is_dir($dir. '/'. $file)) {
           $count += count_folders($dir. '/'. $file) + 1;
        }
      }
    }
  }
  return $count;
}

$count = count_folders('hình ảnh');

Chúng tôi đã xác định hàm đếm_thư mục đệ quy tùy chỉnh để đếm tất cả các thư mục con trong thư mục hình ảnh

Làm cách nào để đếm các tệp $ _ trong PHP?

$countfiles = count(array_filter($_FILES['file']['name'])); Nó trả về 0 trong trường hợp NULL, 1 trong trường hợp 1 tệp . Lưu câu trả lời này.

Công dụng của hàm đếm() trong PHP là gì?

Hàm đếm() trả về số phần tử trong một mảng .

Làm cách nào để đếm độ dài của một đối tượng trong PHP?

Hàm đếm() dùng để đếm số phần tử của mảng hoặc thuộc tính của đối tượng. Ghi chú. Đối với các đối tượng, nếu bạn đã cài đặt SPL, bạn có thể nối vào bộ đếm () bằng cách triển khai giao diện Có thể đếm được. Giao diện có chính xác một phương thức, Countable. đếm (), trả về giá trị trả về cho hàm đếm ().

__ tệp __ trong PHP là gì?

__FILE__ chỉ đơn giản là tên của tệp hiện tại . realpath(dirname(__FILE__)) lấy tên của thư mục chứa tệp -- về bản chất, thư mục mà ứng dụng được cài đặt trong đó.