/** * 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; } } Giải đáp điện thoại Vivo của nước nào? Dùng có tốt không? - Vay Tài Chính 247

Giải đáp điện thoại Vivo của nước nào? Dùng có tốt không?

Thương hiệu điện thoại Vivo được xem là tân binh mới gia nhập thị trường Việt Nam. Tuy nhiên, trong những năm trở lại đây thì dòng điện thoại này đã không còn xa lạ so với người tiêu dùng. Nhằm giúp bạn giải đáp thắc mắc điện thoại Vivo của nước nào? Dùng có tốt không? Hãy cùng Top google theo dõi bài viết dưới đây.

Điện thoại Vivo của nước nào?

Trụ sở chính của công ty TNHH Công nghệ truyền thông Vivo đặt tại Quảng Đông, Trung Quốc. Thương hiệu này được thành lập vào năm 2009 bởi Duan Yongping – ông cũng là nhà sáng lập nên OPPO. Tính đến hiện nay thì Vivo đã đạt lượng người dùng khổng lồ lên đến hơn 200 triệu người.

Trong suốt những năm qua, Vivo luôn nỗ lực để mang đến cho người dùng những công nghệ tân tiến nhất. Hiện tại, dòng thương hiệu Vivo bao gồm dòng S, dòng U, dòng V, dòng Y và dòng X.

Những đặc điểm nổi trội của điện thoại Vivo

Để hiểu rõ hơn về dòng điện thoại Vivo dùng có tốt không, hãy cùng Top google tìm hiểu cụ thể trong nội dung sau đây.

Chất lượng camera tuyệt hảo

Điện thoại Vivo được lắp ráp hoàn toàn tại Trung Quốc, nhưng linh kiện đều được nhập khẩu từ những thương hiệu lớn do vậy người dùng hoàn toàn yên tâm về chất lượng sản phẩm. Vivo hướng đến những tính năng vượt trội như chụp ảnh selfie nên khả năng bắt nét cực tốt. Bên cạnh đó, camera còn có khả năng nhận diện khuôn mặt giúp bạn bắt trọn từng khoảnh khắc dù đang chụp hình trong điều kiện ánh sáng yếu.

Giải đáp điện thoại Vivo của nước nào? Dùng có tốt không?

Điện thoại Vivo thiết kế xanh tím khói sành điệu

Hệ thống camera của Vivo được đánh giá cao, cho phép người dùng chụp xoá phông và chụp cận cảnh. Bạn sẽ hoàn toàn ưng ý trước những bức ảnh mà không cần chỉnh sửa lại quá nhiều.

Thiết kế điện thoại trẻ trung

Vivo là dòng điện thoại chiếm trọn sự tin yêu của khách hàng, bởi thiết kế nhỏ gọn, màn hình tràn viền và siêu mỏng. Dòng thương hiệu này còn rất bắt mắt, thích hợp cho những bạn trẻ năng động, trẻ trung.

Khả năng sạc pin nhanh

Nắm bắt nhu cầu của thị trường, Vivo mang đến cho người dùng tích hợp công nghệ sạc nhanh chẳng hạn như Vivo V20, X50 hoặc X50 Pro,… Với công nghệ sạc pin nhanh, phù hợp cho những người có công việc bận rộn.

Chức năng mở khoá vân tay và nhận diện khuôn mặt

Một số dòng điện thoại Vivo cho phép mở khoá bằng vân tay chỉ với cú chạm nhanh chóng. Bên cạnh đó, dòng Vivo còn giúp người dùng mở khoá bằng nhận diện khuôn mặt. Hiện tại, 2 sản phẩm đang sở hữu tính năng trên đó là Vivo Y20 và Vivo Y20s.

Công nghệ âm thanh Hi-Fi chất lượng

Vivo thấu hiểu người dùng cần những gì, do vậy dòng điện thoại thông minh đã phát triển công nghệ âm thanh Hi-Fi tuyệt hảo đã được tích hợp những con chip chuyên dụng. Chất lượng âm thanh hứa hẹn mang đến cho bạn buổi tiệc âm thanh sống động. Hai dòng điện thoại Vivo V7+ và Vivo X50 Pro đã được trang bị tính năng này.

Giải đáp điện thoại Vivo của nước nào? Dùng có tốt không?

Thương hiệu Vivo mang đến trải nghiệm tuyệt vời cho người dùng

Bên cạnh đó, Vivo đã ra mắt thị trường bằng việc tự phát triển phiên bản hệ điều hành trên nền tảng Android mang tên Funtouch OS. Đây là hệ điều hành được trang bị giao diện thân thiện, khả năng ứng biến cao về font chữ, hình nền tạo cho người dùng ấn tượng mạnh mẽ. Dòng Vivo còn được tích hợp vân tay ẩn bên trong màn hình cảm ứng, đây là bước ngoặt sáng tạo mà các ông lớn trên thị trường chưa khai thác được.

Qua bài viết này, Top google đã giúp bạn giải đáp điện thoại Vivo của nước nào? Dùng có tốt không?. Hi vọng với những thông tin trên sẽ giúp bạn chọn mua được thiết bị chất lượng và uy tín phù hợp với nhu cầu bản thân.

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