/** * Copyright (C) 2014-2020 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ if ( ! defined( 'ABSPATH' ) ) { die( 'Kangaroos cannot jump here' ); } class Ai1wm_Export_Content { public static function execute( $params ) { // Set archive bytes offset if ( isset( $params['archive_bytes_offset'] ) ) { $archive_bytes_offset = (int) $params['archive_bytes_offset']; } else { $archive_bytes_offset = ai1wm_archive_bytes( $params ); } // Set file bytes offset if ( isset( $params['file_bytes_offset'] ) ) { $file_bytes_offset = (int) $params['file_bytes_offset']; } else { $file_bytes_offset = 0; } // Set content bytes offset if ( isset( $params['content_bytes_offset'] ) ) { $content_bytes_offset = (int) $params['content_bytes_offset']; } else { $content_bytes_offset = 0; } // Get processed files size if ( isset( $params['processed_files_size'] ) ) { $processed_files_size = (int) $params['processed_files_size']; } else { $processed_files_size = 0; } // Get total content files size if ( isset( $params['total_content_files_size'] ) ) { $total_content_files_size = (int) $params['total_content_files_size']; } else { $total_content_files_size = 1; } // Get total content files count if ( isset( $params['total_content_files_count'] ) ) { $total_content_files_count = (int) $params['total_content_files_count']; } else { $total_content_files_count = 1; } // What percent of files have we processed? $progress = (int) min( ( $processed_files_size / $total_content_files_size ) * 100, 100 ); // Set progress Ai1wm_Status::info( sprintf( __( 'Archiving %d content files...
%d%% complete', AI1WM_PLUGIN_NAME ), $total_content_files_count, $progress ) ); // Flag to hold if file data has been processed $completed = true; // Start time $start = microtime( true ); // Get content list file $content_list = ai1wm_open( ai1wm_content_list_path( $params ), 'r' ); // Set the file pointer at the current index if ( fseek( $content_list, $content_bytes_offset ) !== -1 ) { // Open the archive file for writing $archive = new Ai1wm_Compressor( ai1wm_archive_path( $params ) ); // Set the file pointer to the one that we have saved $archive->set_file_pointer( $archive_bytes_offset ); // Loop over files while ( list( $file_abspath, $file_relpath, $file_size, $file_mtime ) = fgetcsv( $content_list ) ) { $file_bytes_written = 0; // Add file to archive if ( ( $completed = $archive->add_file( $file_abspath, $file_relpath, $file_bytes_written, $file_bytes_offset ) ) ) { $file_bytes_offset = 0; // Get content bytes offset $content_bytes_offset = ftell( $content_list ); } // Increment processed files size $processed_files_size += $file_bytes_written; // What percent of files have we processed? $progress = (int) min( ( $processed_files_size / $total_content_files_size ) * 100, 100 ); // Set progress Ai1wm_Status::info( sprintf( __( 'Archiving %d content files...
%d%% complete', AI1WM_PLUGIN_NAME ), $total_content_files_count, $progress ) ); // More than 10 seconds have passed, break and do another request if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) { if ( ( microtime( true ) - $start ) > $timeout ) { $completed = false; break; } } } // Get archive bytes offset $archive_bytes_offset = $archive->get_file_pointer(); // Truncate the archive file $archive->truncate(); // Close the archive file $archive->close(); } // End of the content list? if ( feof( $content_list ) ) { // Unset archive bytes offset unset( $params['archive_bytes_offset'] ); // Unset file bytes offset unset( $params['file_bytes_offset'] ); // Unset content bytes offset unset( $params['content_bytes_offset'] ); // Unset processed files size unset( $params['processed_files_size'] ); // Unset total content files size unset( $params['total_content_files_size'] ); // Unset total content files count unset( $params['total_content_files_count'] ); // Unset completed flag unset( $params['completed'] ); } else { // Set archive bytes offset $params['archive_bytes_offset'] = $archive_bytes_offset; // Set file bytes offset $params['file_bytes_offset'] = $file_bytes_offset; // Set content bytes offset $params['content_bytes_offset'] = $content_bytes_offset; // Set processed files size $params['processed_files_size'] = $processed_files_size; // Set total content files size $params['total_content_files_size'] = $total_content_files_size; // Set total content files count $params['total_content_files_count'] = $total_content_files_count; // Set completed flag $params['completed'] = $completed; } // Close the content list file ai1wm_close( $content_list ); return $params; } } 7 loại thằn lằn cảnh chắc chắn bạn sẽ thích thú - Vay Tài Chính 247

7 loại thằn lằn cảnh chắc chắn bạn sẽ thích thú

Thằn lằn cảnh là những loài thú nuôi phổ biến trong cộng đồng người yêu động vật. Với sự đa dạng trong hình dáng, màu sắc và hành vi, các loài thằn lằn cảnh đã thu hút sự quan tâm của nhiều người trên toàn thế giới. Bài viết này sẽ giới thiệu chi tiết về các loại thằn lằn cảnh phổ biến, từ những con thằn lằn nhỏ bé cho đến những loài có kích thước lớn, qua đó giúp bạn hiểu rõ hơn về thế giới đặc biệt này.

1. Thằn Lằn Họ Gekkonidae

Thằn Lằn Tokay (Gekko gecko)

 

Thằn lằn Tokay là một loài thằn lằn đáng ngạc nhiên với màu sắc khá độc đáo và âm thanh gây ấn tượng. Với kích thước lớn và khả năng bám vào các bề mặt thẳng đứng, Tokay là một loài họ Gekkonidae phổ biến trong thị trường thú cảnh.

Thằn Lằn Vòi Rồng (Chameleons)

 

Thằn lằn vòi rồng được biết đến với khả năng thay đổi màu sắc và vòi rồng dài có thể cuộn lại. Những loài này thường sống trong môi trường cây cối và có thể điều chỉnh màu sắc của da để thích nghi với môi trường xung quanh.

2. Thằn Lằn Họ Iguanidae

Thằn Lằn Nhện (Anolis carolinensis)

 

Thằn lằn nhện, hay còn gọi là “Anole”, là một loài thằn lằn nhỏ thuộc họ Iguanidae. Nó có khả năng thay đổi màu sắc và thích nghi tốt trong môi trường sống. Thằn lằn nhện là một lựa chọn phổ biến cho người mới bắt đầu nuôi thằn lằn cảnh.

Thằn Lằn Mã Sáo (Basiliscus basiliscus)

 

Với khả năng đi trên mặt nước như thần thoại, thằn lằn mã sáo là một loài thằn lằn độc đáo thuộc họ Iguanidae. Được biết đến với cái đuôi dài và chân hái nước, thằn lằn mã sáo đã thu hút sự chú ý của nhiều người yêu thú cảnh.

3. Thằn Lằn Họ Scincidae

Thằn Lằn Đồng Cỏ (Eumeces spp.)

 

Thằn lằn đồng cỏ là một nhóm các loài thằn lằn nhỏ thuộc họ Scincidae. Chúng thường sống trong môi trường đồng cỏ và có thể tìm thấy ởnhững khu vực có đất đá và cây cỏ phong phú. Thằn lằn đồng cỏ thường có màu sắc không nổi bật và thích ẩn nấp để tránh săn đuổi.

Thằn Lằn Đuôi Chuông (Tiliqua spp.)

 

Thằn lằn đuôi chuông, còn được gọi là “Blue-tongued skink”, là một loài thằn lằn thuộc họ Scincidae. Đặc điểm nổi bật của chúng là ngôn ngữ màu xanh dương của lưỡi, khiến chúng trở nên độc đáo và hấp dẫn. Thằn lằn đuôi chuông thích ăn thức ăn thực vật và thường có tính cách hiền lành.

4. Thằn Lằn Họ Varanidae

Thằn Lằn Komodo (Varanus komodoensis)

 

Thằn lằn Komodo là loài thằn lằn lớn nhất trên thế giới, với tên gọi khác là “Rồng Komodo”. Chúng sống duy nhất trên một số hòn đảo nhỏ ở Indonesia. Với kích thước khổng lồ và khả năng săn mồi tàn bạo, thằn lằn Komodo đã trở thành một trong những loài quý hiếm và thu hút sự quan tâm của giới nghiên cứu và yêu thú cảnh.

Kết Luận

Các loại thằn lằn cảnh mang lại sự đa dạng và tuyệt vời cho thế giới thực vật. Từ thằn lằn Tokay lớn lao đến thằn lằn nhện nhỏ bé, từ thằn lằn vòi rồng đổi màu sắc đến thằn lằn Komodo khổng lồ, mỗi loài thằn lằn đều có đặc điểm và sức hấp dẫn riêng của nó. Việc nuôi thằn lằn cảnh không chỉ mang lại niềm vui và sự kỳ diệu cho chủ nuôi, mà còn giúp tăng cường nhận thức về bảo tồn thiên nhiên và sự phong phú của các loài động vật trên Trái Đất.


Bài được vaytaichinh247.net tổng hợp từ nhiều nguồn khác nhau cho bạn đọc tham khảo.