Làm cách nào để hiển thị tệp csv trong PHP?

________số 8_______

The data file contained data similar to this:

RECNUM|TEXT|COMMENT
1|hi!|some comment
2|"error!|another comment
3|where does this go?|yet another comment
4|the end!"|last comment

I read the file like this:

$row = fgetcsv( $fi, $length, '|' );
?>

This causes a problem on record 2: the quote immediately after the pipe causes the file to be read up to the following quote --in this case, in record 4.  Everything in between was stored in a single element of $row.

In this particular case it is easy to spot, but my script was processing thousands of records and it took me some time to figure out what went wrong.

The annoying thing is, that there doesn't seem to be an elegant fix.  You can't tell PHP not to use an enclosure --for example, like this:

$row = fgetcsv( $fi, $length, '|', '' );
?>

(Well, you can tell PHP that, but it doesn't work.)

The data file contained data similar to this:0

The data file contained data similar to this:1

The data file contained data similar to this:2

The data file contained data similar to this:3

PHP được sử dụng rộng rãi để xây dựng nhiều loại sản phẩm khác nhau, từ ứng dụng web đến ứng dụng cấp doanh nghiệp. Chìa khóa để mã PHP hiệu quả là tuân theo quy trình công việc phù hợp và tự động hóa các quy trình. Kết quả là mã chất lượng cao và không có lỗi

Trong hầu hết các ứng dụng PHP, dữ liệu được lưu trữ, truy cập và trao đổi giữa các thành phần khác nhau của ứng dụng. Để đảm bảo rằng việc trao đổi và truy cập dữ liệu này diễn ra suôn sẻ và không có bất kỳ sự cố nào, nhóm phát triển phải đảm bảo rằng cơ sở dữ liệu và kết xuất dữ liệu ở định dạng phù hợp

Làm cách nào để hiển thị tệp csv trong PHP?

Nhập và xuất dữ liệu đến và từ cơ sở dữ liệu là một quy trình đủ phổ biến trong quá trình phát triển PHP. Một hoạt động quan trọng khác là sao lưu và truyền cơ sở dữ liệu

Trong bài viết này, tôi sẽ giải thích cách lưu bảng từ tệp CSV sang MySQL và ngược lại. Bạn cần đăng ký tại Cloudways để khởi chạy máy chủ và ứng dụng ngăn xếp PHP. Trước khi đăng ký, hãy xem xét tất cả các tùy chọn giá từ các nhà cung cấp dịch vụ lưu trữ đẳng cấp thế giới như AWS, DigitalOcean, Linode, Vultr và GCP để bạn có thể tìm thấy tùy chọn hoàn toàn phù hợp với nhu cầu của mình

Lưu trữ PHP. PHP7 và PHP5 tốt nhất. 6 Lưu trữ web

Tạo cơ sở dữ liệu trong MySQL

Bước đầu tiên trong hướng dẫn này là tạo cơ sở dữ liệu MySQL. Vì Cloudways cung cấp trình quản lý mysql tùy chỉnh trong nền tảng chứa cơ sở dữ liệu cho ứng dụng. bạn có thể tạo bảng bằng cách chạy truy vấn SQL. Tạo bảng `employeeinfo` trong cơ sở dữ liệu bằng truy vấn SQL sau

CREATE TABLE employeeinfo(
emp_id VARCHAR(50) UNSIGNED PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date VARCHAR(50)
)

Làm cách nào để hiển thị tệp csv trong PHP?

Thao tác này sẽ tạo một bảng mới `employeeinfo` trong cơ sở dữ liệu. Tôi sẽ sử dụng bảng này để chèn dữ liệu từ tệp CSV

Ngừng lãng phí thời gian trên máy chủ

Cloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng

Tạo kết nối MySql trong PHP

Để nhập và xuất cơ sở dữ liệu trong MySql sẽ tạo một tệp riêng `config. php`. Thêm mã sau và thay thế thông tin đăng nhập cơ sở dữ liệu bằng mã của bạn. Bạn có thể tìm thông tin đăng nhập db của mình trong chi tiết Truy cập ứng dụng

Làm cách nào để hiển thị tệp csv trong PHP?

getMessage();
    }
    return $conn;
}
?>

Có liên quan. Cách kết nối cơ sở dữ liệu MySQL với các trang web PHP

Nhập CSV vào MySQL bằng PHP

Sau khi cơ sở dữ liệu đã được tạo, tiếp theo tôi cần một tệp HTML  có thể tải tệp CSV lên. Đối với tệp HTML này, tôi sẽ sử dụng Trình tải lên tệp HTML ở dạng bootstrap đơn giản

Tạo một tệp và đặt tên là `index. php`. Đây là một hình thức đơn giản để tải lên tệp CSV. Tệp này cũng sẽ hiển thị kết quả trong một bảng đơn giản trên cùng một trang. Khi người dùng gửi biểu mẫu, tất cả các bản ghi sẽ được lưu trong cơ sở dữ liệu

Đầu tiên, tôi sẽ thêm Bootstrap CDN vào chỉ mục. php



Tiếp theo, trong thẻ `body`, hãy thêm mã HTML sau cho biểu mẫu Bootstrap




    
    
    




    

Form Name

Select File

Import data

Import

Làm cách nào để hiển thị tệp csv trong PHP?

Bạn có thể nhận thấy rằng tôi đã đặt một hành động thành `functions. tập tin php`. Trong bước tiếp theo, tôi sẽ tạo tệp này và thêm mã vào nó. Tôi cũng đã bao gồm một phương thức `get_all_records()` ở gần cuối tệp. Phương thức này lấy tất cả các bản ghi từ cơ sở dữ liệu và hiển thị các bản ghi trong bảng trên trang chỉ mục

Tiếp theo, tôi sẽ tạo `hàm. php` và thêm đoạn mã sau vào đó

 0)
		 {
		  	$file = fopen($filename, "r");
	        while (($getData = fgetcsv($file, 10000, ",")) !== FALSE)
	         {


	           $sql = "INSERT into employeeinfo (emp_id,firstname,lastname,email,reg_date) 
                   values ('".$getData[0]."','".$getData[1]."','".$getData[2]."','".$getData[3]."','".$getData[4]."')";
                   $result = mysqli_query($con, $sql);
				if(!isset($result))
				{
					echo "";		
				}
				else {
					  echo "";
				}
	         }
			
	         fclose($file);	
		 }
	}	 


 ?>

Khi nhấp vào nút tải lên, tên tệp tạm thời sẽ được lưu trong bộ nhớ và sử dụng vòng lặp `while`, dữ liệu được lưu trong biến $getData. Sau khi quá trình hoàn tất, dữ liệu được sắp xếp theo cột một cách khôn ngoan và cuối cùng được chèn vào bảng `employeeinfo`

Lưu ý rằng `fgetcsv()` phân tích cú pháp các dòng từ tệp đang mở, kiểm tra các trường CSV và `fopen()` sẽ mở một tệp hoặc một URL. Có thể kiểm tra mã này bằng cách nhập tệp CSV có dữ liệu kiểm tra

Hiển thị các bản ghi đã lưu

Khi tệp CSV đã được nhập, tôi sẽ hiển thị dữ liệu thông qua một chức năng đơn giản, `get_all_records()`, được khởi tạo trong `index. php`. Sao chép hàm này vào `function. php`

function get_all_records(){
    $con = getdb();
    $Sql = "SELECT * FROM employeeinfo";
    $result = mysqli_query($con, $Sql);  


    if (mysqli_num_rows($result) > 0) {
     echo "

"; while($row = mysqli_fetch_assoc($result)) { echo ""; } echo " EMP ID First Name Last Name Email Registration Date " . $row['emp_id']." " . $row['firstname']." " . $row['lastname']." " . $row['email']." " . $row['reg_date']."

"; } else { echo "you have no records"; } }

Trong phương pháp thực sự đơn giản này, tôi chỉ cần chọn tất cả các bản ghi và hiển thị các bản ghi này trên trang chỉ mục thông qua phương thức. Bất cứ khi nào người dùng tải lên tệp CSV, các bản ghi sẽ được lưu trong bảng và sau đó được hiển thị trên trang chỉ mục

Xuất MySQL sang CSV bằng PHP

Xuất dữ liệu từ cơ sở dữ liệu MySQL sang tệp CSV cũng rất dễ dàng. Để chứng minh điều này, tôi sẽ sử dụng chỉ số. php mà tôi đã tạo trước đó

Thêm đoạn mã sau vào tập tin

 

Sau khi thêm phần đánh dấu HTML này, nút Xuất sẽ xuất hiện bên dưới bảng. Bây giờ thêm điều kiện sau vào hàm. php

 if(isset($_POST["Export"])){
		 
      header('Content-Type: text/csv; charset=utf-8');  
      header('Content-Disposition: attachment; filename=data.csv');  
      $output = fopen("php://output", "w");  
      fputcsv($output, array('ID', 'First Name', 'Last Name', 'Email', 'Joining Date'));  
      $query = "SELECT * from employeeinfo ORDER BY emp_id DESC";  
      $result = mysqli_query($con, $query);  
      while($row = mysqli_fetch_assoc($result))  
      {  
           fputcsv($output, $row);  
      }  
      fclose($output);  
 }  

Khi nhấp vào nút `Xuất`, các tiêu đề `Loại nội dung. văn bản/csv` có tệp đính kèm `dữ liệu. csv` được gửi

Vì `php. //output` là luồng chỉ ghi cho phép ghi quyền truy cập vào cơ chế bộ đệm đầu ra, tôi đã chọn tất cả dữ liệu từ bảng ở dòng tiếp theo và chuyển nó sang phương thức `fputcsv()` . Phương thức này định dạng một dòng (được truyền dưới dạng một mảng trường) dưới dạng CSV và ghi nó (được kết thúc bởi một dòng mới) vào tệp đã chỉ định. Cuối cùng, tệp có tất cả dữ liệu mong muốn được tải xuống

Cuối cùng, sau khi tích hợp tất cả mã, bạn sẽ thấy hình dạng ứng dụng cuối cùng sau đây

Làm cách nào để hiển thị tệp csv trong PHP?

Bạn cũng có thể thích. CRUD đơn giản trong PHP và MySQL

Phần kết luận

Trong bài viết này, tôi đã thảo luận về cách bạn có thể xuất dữ liệu từ và sang tệp CSV bằng PHP và MySQL. Đây là một ví dụ đơn giản, bạn có thể Thêm logic và xác thực phức tạp hơn theo yêu cầu của mình. Bạn cũng có thể tạo các trường hợp thử nghiệm để xác minh mã và Tích hợp với GitHub bằng Công cụ tích hợp liên tục PHP. Nếu bạn muốn thêm vào cuộc thảo luận hoặc muốn đặt câu hỏi, hãy để lại nhận xét bên dưới

Làm cách nào để đọc tệp CSV trong từng dòng php?

Chúng tôi sẽ sử dụng fopen() và fgetcsv() để đọc nội dung của tệp CSV , sau đó chúng tôi sẽ chuyển đổi tệp đó .

Làm cách nào để xem tệp CSV?

Để mở tệp CSV được phân cách bằng dấu phẩy (CSV) đúng cách, hãy sử dụng tính năng Nhập dữ liệu từ văn bản của Excel để mở trình hướng dẫn nhập và đặt tất cả các cột thành văn bản. If you click the file and allow Excel to open it automatically, the columns might be formatted improperly.

Làm cách nào để hiển thị tệp CSV trong bảng HTML?

Hiển thị bất kỳ tệp CSV nào dưới dạng bảng HTML đẹp, có thể lọc và tìm kiếm được. .
Sao chép kho lưu trữ này (trong dòng lệnh) git clone git@github. com. derekeder/csv-to-html-table. git cd csv-to-html-bảng
Thêm tệp CSV của bạn vào dữ liệu/thư mục
trong chỉ mục. html đặt các tùy chọn của bạn trong CsvToHtmlTable. hàm init()

Làm cách nào để đọc tiêu đề từ tệp CSV trong php?

feof($f)) { $rows[] = fgetcsv($f); . header('Kiểu nội dung. văn bản/csv; . tập tin đính kèm; .