Trong ví dụ này tôi đang mở rộng ví dụ của Devjar. Tín dụng cho anh ta ví dụ mã. Ví dụ mã cuối cùng đơn giản và an toàn nhất theo ý kiến của tôi.
Khi bạn sử dụng mã của mình:
<?php
echo "Are you sure you want to do this? Type 'yes' to continue: ";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) != 'yes'){
echo "ABORTING!\n";
exit;
}
echo "\n";
echo "Thank you, continuing...\n";
?>
Bạn nên lưu ý chế độ stdin không nhị phân-an toàn. Bạn nên thêm "b" vào chế độ của mình và sử dụng mã sau:
<?php
echo "Are you sure you want to do this? Type 'yes' to continue: ";
$handle = fopen ("php://stdin","rb"); // <-- Add "b" Here for Binary-Safe
$line = fgets($handle);
if(trim($line) != 'yes'){
echo "ABORTING!\n";
exit;
}
echo "\n";
echo "Thank you, continuing...\n";
?>
Bạn cũng có thể đặt điều lệ tối đa. Đây là ví dụ cá nhân của tôi. Tôi sẽ đề nghị sử dụng nó làm mã của bạn. Bạn cũng nên sử dụng STDIN trực tiếp hơn "php: // stdin".
<?php
/* Define STDIN in case if it is not already defined by PHP for some reason */
if(!defined("STDIN")) {
define("STDIN", fopen('php://stdin','rb'))
}
echo "Hello! What is your name (enter below):\n";
$strName = fread(STDIN, 80); // Read up to 80 characters or a newline
echo 'Hello ' , $strName , "\n";
?>
Hoạt động nhưng có cách tiếp cận nào tốt hơn? – kritya
khi đọc tập tin đó sẽ làm cho chương trình một số khó hiểu – kritya
nhưng nếu đây là cách duy nhất tôi khá giống với câu trả lời: P – kritya