Làm cách nào để lấy dữ liệu từ stdin trong php?
Chúng ta đã xem xét một dạng đầu vào của người dùng (đối số dòng lệnh) trong phần trước. Bây giờ chúng tôi muốn giới thiệu những cách khác mà người dùng có thể cung cấp đầu vào cho tập lệnh Bash. Sau đây, chúng ta sẽ thảo luận về thời điểm và địa điểm tốt nhất để sử dụng từng phương pháp Show Sau phần trước khổng lồ, phần này dễ vượt qua hơn nhiều Yêu cầu người dùng nhập dữ liệuNếu chúng tôi muốn yêu cầu người dùng nhập dữ liệu thì chúng tôi sử dụng lệnh có tên là read. Lệnh này lấy đầu vào và sẽ lưu nó vào một biến đọc var1 Hãy xem một ví dụ đơn giản Giới thiệu. sh
Hãy phá vỡ nó
Thêm với ĐọcBạn có thể thay đổi hành vi đọc bằng nhiều tùy chọn dòng lệnh. (Xem trang hướng dẫn để đọc để xem tất cả chúng. ) Tuy nhiên, hai tùy chọn thường được sử dụng là -p cho phép bạn chỉ định lời nhắc và -s khiến đầu vào im lặng. Điều này có thể giúp bạn dễ dàng yêu cầu kết hợp tên người dùng và mật khẩu như ví dụ bên dưới đăng nhập. sh
Nhiều biến hơnCho đến nay chúng tôi đã xem xét một từ duy nhất như đầu vào. chúng ta có thể làm nhiều hơn thế tuy nhiên ô tô. sh
Cơ chế chung là bạn có thể cung cấp một số tên biến để đọc. Đọc sau đó sẽ lấy đầu vào của bạn và chia nhỏ nó trên khoảng trắng. Mục đầu tiên sau đó sẽ được gán cho tên biến đầu tiên, mục thứ hai cho tên biến thứ hai, v.v. Nếu có nhiều mục hơn tên biến thì tất cả các mục còn lại sẽ được thêm vào tên biến cuối cùng. Nếu có ít mục hơn tên biến thì các tên biến còn lại sẽ được đặt thành trống hoặc null Đọc từ STDINLinux thường kết hợp một loạt các lệnh đơn giản, có mục đích duy nhất lại với nhau để tạo ra một giải pháp lớn hơn phù hợp với nhu cầu chính xác của chúng tôi. Khả năng làm điều này là một trong những thế mạnh thực sự của Linux. Hóa ra chúng ta cũng có thể dễ dàng điều chỉnh cơ chế này bằng các tập lệnh của mình. Bằng cách đó, chúng tôi có thể tạo các tập lệnh đóng vai trò là bộ lọc để sửa đổi dữ liệu theo những cách cụ thể cho chúng tôi Bash chứa đường ống và chuyển hướng bằng các tệp đặc biệt. Mỗi quy trình có một tập hợp tệp riêng (một tệp cho STDIN, STDOUT và STDERR tương ứng) và chúng được liên kết khi đường ống hoặc chuyển hướng được gọi. Mỗi quá trình nhận được các tập tin sau
Để làm cho cuộc sống thuận tiện hơn, hệ thống tạo ra một số phím tắt cho chúng tôi
fd trong các đường dẫn trên là viết tắt của bộ mô tả tệp Vì vậy, nếu chúng tôi muốn làm cho tập lệnh của mình có thể xử lý dữ liệu được dẫn đến tập lệnh, tất cả những gì chúng tôi cần làm là đọc tệp có liên quan. Tất cả các tệp được đề cập ở trên hoạt động như các tệp bình thường tóm lược
Hãy phá vỡ nó
Vậy tôi nên sử dụng cái nào?Vì vậy, bây giờ chúng tôi có 3 phương thức để nhận đầu vào từ người dùng
Phương pháp nào là tốt nhất phụ thuộc vào tình hình Thông thường, bạn nên ưu tiên các đối số dòng lệnh bất cứ khi nào có thể. Chúng thuận tiện nhất cho người dùng vì dữ liệu sẽ được lưu trữ trong lịch sử lệnh của họ để họ có thể dễ dàng quay lại với nó. Đây cũng là cách tiếp cận tốt nhất nếu tập lệnh của bạn có thể được gọi bởi các tập lệnh hoặc quy trình khác (ví dụ:. có thể bạn muốn nó chạy định kỳ bằng CRON) Đôi khi bản chất của dữ liệu là không lý tưởng để nó được lưu trữ trong lịch sử chỉ huy của mọi người, v.v. Một ví dụ điển hình về điều này là thông tin đăng nhập (tên người dùng và mật khẩu). Trong những trường hợp này, tốt nhất là đọc dữ liệu trong khi thực thi tập lệnh Nếu tất cả các tập lệnh đang xử lý dữ liệu theo một cách nhất định thì có lẽ tốt nhất là làm việc với STDIN. Bằng cách này, nó có thể dễ dàng được thêm vào một đường ống Đôi khi bạn có thể thấy rằng sự kết hợp là lý tưởng. Người dùng có thể cung cấp tên tệp làm đối số dòng lệnh và nếu không thì tập lệnh sẽ xử lý những gì nó tìm thấy trên STDIN (khi chúng ta xem xét các câu lệnh If, chúng ta sẽ thấy điều này có thể đạt được như thế nào). Hoặc có thể đối số dòng lệnh xác định hành vi nhất định nhưng đọc cũng được sử dụng để hỏi thêm thông tin nếu được yêu cầu Cuối cùng, bạn nên nghĩ về 3 yếu tố khi quyết định cách người dùng sẽ cung cấp dữ liệu cho tập lệnh Bash của bạn
Tóm lượcđọc varNameĐọc đầu vào từ người dùng và lưu trữ nó trong biến varName. /dev/stdinA mà bạn có thể đọc để lấy STDIN cho tập lệnh Bash Làm cách nào để đọc đầu vào từ stdin trong php?Có thể đọc stdin bằng cách tạo một tệp xử lý cho php. //stdin và sau đó đọc từ đó bằng fgets() cho một dòng chẳng hạn (hoặc, như bạn đã nói, fgetc() cho một ký tự). . //stdin', 'r' );
Làm cách nào để lấy giá trị đầu vào trong php?Sử dụng siêu toàn cục $_POST hoặc $_GET của PHP để truy xuất giá trị của thẻ đầu vào thông qua tên của thẻ HTML . Để hiển thị giá trị.
Làm cách nào để nhập chuỗi trong php?Hàm sscanf() phân tích cú pháp đầu vào từ một chuỗi theo định dạng được chỉ định . Hàm sscanf() phân tích một chuỗi thành các biến dựa trên chuỗi định dạng. Nếu chỉ có hai tham số được truyền vào hàm này, dữ liệu sẽ được trả về dưới dạng một mảng.
Luồng đầu vào trong php là gì?php. // đầu vào là luồng chỉ đọc cho phép bạn đọc dữ liệu thô từ phần thân yêu cầu . |