Hướng dẫn how do you stop an infinite loop in php? - làm thế nào để bạn dừng một vòng lặp vô hạn trong php?

Tôi có một vòng lặp for vô hạn đơn giản trông như thế này:

set_time_limit (0);
for (;;)
{
    ... //Doing some stuff including to write to a file
    sleep(300);
}

Nó đang chạy trên máy chủ của tôi. (Tài khoản lưu trữ được chia sẻ)

Làm thế nào trên trái đất tôi có thể ngăn chặn nó?

Đã hỏi ngày 23 tháng 9 năm 2011 lúc 9:12Sep 23, 2011 at 9:12

Hướng dẫn how do you stop an infinite loop in php? - làm thế nào để bạn dừng một vòng lặp vô hạn trong php?

1

Giết quá trình. Giả sử bạn có thể có quyền truy cập vào bảng điều khiển thông qua SSH và máy chủ của bạn chạy trên Linux:

ps -ef | grep php // to get a list of php-processes

kill [process-id] // kill the process by process-id

Đã trả lời ngày 23 tháng 9 năm 2011 lúc 9:15Sep 23, 2011 at 9:15

Oezioezioezi

50.1k10 Huy hiệu vàng97 Huy hiệu bạc115 Huy hiệu Đồng10 gold badges97 silver badges115 bronze badges

4

Giả sử bạn đang làm việc với một máy chủ lưu trữ được chia sẻ và không có quyền truy cập vào dòng lệnh hoặc SSH hoặc nhóm hỗ trợ lưu trữ ...

Ảnh tốt nhất của bạn sẽ là sử dụng bảng quản lý trang web của bạn để kích hoạt khởi động lại PHP.

Điều này xảy ra khi bạn chuyển phiên phiên bản PHP / thay đổi thông số PHP INI như giới hạn bộ nhớ

Đã trả lời ngày 26 tháng 2 năm 2020 lúc 9:03Feb 26, 2020 at 9:03

Yair Levyyair LevyYair Levy

1.07714 huy hiệu bạc11 huy hiệu đồng14 silver badges11 bronze badges

2

Bạn có thể muốn liên hệ với dịch vụ lưu trữ của bạn và yêu cầu họ giết kịch bản của bạn. Nhiều khả năng bạn không có truy cập thực thi hoặc truy cập SSH. Có lẽ bạn nên xây dựng khả năng thoát khỏi chương trình của mình vào lần tới khi bạn tạo một vòng lặp vô hạn.

Đã trả lời ngày 23 tháng 9 năm 2011 lúc 9:19Sep 23, 2011 at 9:19

SnicksiesnicksieSnicksie

1.98717 Huy hiệu bạc27 Huy hiệu đồng17 silver badges27 bronze badges

1

Tôi đã đăng nhập qua SSH và cố gắng giết quá trình nhưng dường như nó không hoạt động - có thể là quá trình không chính xác vì có khá nhiều người ở đó.

Bạn luôn có thể khởi động lại Apache như là phương sách cuối cùng; Điều đó sẽ sửa nó ;-)restart apache as a last resort; that will fix it ;-)

Đã trả lời ngày 7 tháng 12 năm 2016 lúc 9:59Dec 7, 2016 at 9:59

Hướng dẫn how do you stop an infinite loop in php? - làm thế nào để bạn dừng một vòng lặp vô hạn trong php?

Mã thân thiện mã thân thiệnFriendly Code

1.5351 Huy hiệu vàng24 Huy hiệu bạc39 Huy hiệu đồng1 gold badge24 silver badges39 bronze badges

Bạn đã đề cập viết vào một tập tin.

Nhưng nếu bạn đang viết vào cơ sở dữ liệu, bạn có thể sử dụng công cụ cơ sở dữ liệu của mình để tạm thời đổi tên một trường sẽ kích hoạt lỗi và dừng tập lệnh của bạn.

Những tai ương của các máy chủ được chia sẻ, Dev và lỗi chính tả nhanh chóng.

Đã trả lời ngày 28 tháng 9 năm 2019 lúc 6:43Sep 28, 2019 at 6:43

BobbbobbBobB

7001 huy hiệu vàng8 Huy hiệu bạc21 Huy hiệu đồng1 gold badge8 silver badges21 bronze badges

Có lẽ đáng ngạc nhiên, các vòng lặp vô hạn đôi khi có thể hữu ích trong các kịch bản của bạn. Vì các vòng lặp vô hạn không bao giờ chấm dứt mà không có ảnh hưởng bên ngoài, cách sử dụng chúng phổ biến nhất là thoát ra khỏi vòng lặp và/hoặc thoát hoàn toàn tập lệnh từ bên trong vòng lặp bất cứ khi nào một điều kiện được khớp. Bạn cũng có thể dựa vào đầu vào của người dùng để chấm dứt vòng lặp - ví dụ: nếu bạn đang viết một chương trình để chấp nhận mọi người gõ dữ liệu miễn là họ muốn, nó sẽ không hoạt động để có vòng lặp tập lệnh 30.000 lần hoặc thậm chí 300.000.000 lần . Thay vào đó, mã sẽ lặp lại mãi mãi, liên tục chấp nhận đầu vào của người dùng cho đến khi người dùng kết thúc chương trình bằng cách nhấn Ctrl-C.

Trong khi bạn đang học PHP, bạn nên tránh xa các vòng lặp vô hạn vì chúng có thể gây ra vấn đề trong vài tuần đầu. Sau đó, hãy thử chơi xung quanh với họ để xem làm thế nào họ thực sự có thể giúp bạn làm cho các kịch bản của bạn tốt hơn. Phải nói rằng, bạn gần như chắc chắn sẽ thực hiện một vài vòng được thực hiện mãi mãi chỉ đơn giản là tình cờ!

Nếu bạn muốn thử chúng, đây là những ví dụ phổ biến nhất về các vòng lặp vô hạn:


Vì "1" cũng đánh giá là đúng, vòng lặp đó sẽ tiếp tục mãi mãi. Nhiều người cũng thích viết các vòng lặp vô hạn của họ như thế này:


Trong ví dụ đó, vòng lặp cho các phần khai báo, điều kiện và các bộ phận hành động, có nghĩa là nó sẽ luôn luôn là vòng lặp.

Bạn muốn học Php 7?

Hack với PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học tập PHP thực hành ngay hôm nay!over 1200 pages of hands-on PHP learning today!

Nếu điều này hữu ích, xin vui lòng dành một chút thời gian để nói với người khác về việc hack với PHP bằng cách tweet về nó!

Chương tiếp theo: Từ khóa vòng lặp đặc biệt >>

Chương trước: Vòng lặp

Nhảy đến:

Trang chủ: Bảng nội dung

Bản quyền © 2015 Paul Hudson. Theo dõi tôi: @twostraws.

Làm thế nào để bạn dừng một vòng lặp vô hạn?

Làm thế nào để tránh chạy vào vòng lặp vô hạn ?..
Đảm bảo bạn có ít nhất một câu lệnh trong vòng lặp thay đổi giá trị của biến so sánh.(Đó là, biến bạn sử dụng trong câu lệnh so sánh của vòng lặp.) ....
Không bao giờ để lại điều kiện chấm dứt phụ thuộc vào người dùng ..

Làm thế nào để bạn viết một vòng lặp vô hạn?

Chúng ta có thể tạo một vòng lặp vô hạn bằng cách sử dụng trong khi câu lệnh.Nếu điều kiện trong khi vòng lặp luôn đúng, chúng ta sẽ có một vòng lặp vô hạn.using while statement. If the condition of while loop is always True , we get an infinite loop.

Vòng lặp vô hạn trong lập trình là gì?

Một vòng lặp vô hạn (đôi khi được gọi là vòng lặp vô tận) là một phần mã hóa thiếu một lối thoát chức năng để nó lặp lại vô thời hạn.Trong lập trình máy tính, một vòng lặp là một chuỗi các hướng dẫn liên tục được lặp lại cho đến khi đạt được một điều kiện nhất định.a piece of coding that lacks a functional exit so that it repeats indefinitely. In computer programming, a loop is a sequence of instruction s that is continually repeated until a certain condition is reached.