Là ngôn ngữ chính để phát triển chương trình web, php được sử dụng rộng rãi. Là một phần mềm thống kê, R có khả năng hoạt động tốt trong việc thực hiện các thuật toán toán học. Gần đây, do nhu cầu công việc, tôi phải thực hiện các phép tính toán học phức tạp trên một số dữ liệu ứng dụng web. Tuy nhiên, mặc dù bản thân PHP có thể viết một số thuật toán toán học nhưng hiệu quả của hàng chục dòng mã vẫn chưa đáp ứng được. có thể so sánh với một hàm trong R. , sau khi nghiên cứu, cuối cùng người ta đã có thể gọi R cho các thao tác tính toán khi truy cập tức thì vào PHP và đọc trực tiếp kết quả tính toán và hiển thị chúng trên trang web. Ý tưởng chung là như sau:

Điểm mấu chốt là php kích hoạt chương trình R để chạy, chuyển các tham số tính toán cho R và thu được kết quả.

Để kích hoạt R trong php, bạn có thể sử dụng hàm exec tích hợp, để bất kỳ lệnh nào được thực thi trong cửa sổ hệ điều hành đang chạy đều có thể được thực thi tại đây. Lệnh được thực thi bởi R là (phần sau đề cập đến môi trường windows)

"D:\\Program Files\R\R-2.15.2\bin\x64\R.exe" --vanilla < D:\\test.R  out.txt

Phần đầu tiên là đường dẫn của chương trình R cục bộ, tiếp theo là tùy chọn của phần mềm R, có thể tùy chỉnh, tiếp theo là tệp chương trình R sẽ được thực thi, là điểm chính và cuối cùng là tệp đầu ra được thực thi. Tập tin này là cần thiết cho hướng dẫn, nhưng nó không có ích gì cho chúng tôi.

Để thực hiện mỗi lượt truy cập vào trang php, các chương trình R khác nhau được thực thi do các tham số khác nhau. Do đó, tên tệp chương trình test.R cần được tạo cho mỗi lượt truy cập để đảm bảo rằng có một tệp chương trình R duy nhất cho mỗi lượt truy cập. truy cập. Sử dụng hình thức ghi tệp văn bản để lưu trữ tên tham số và giá trị tham số, chỉ định tên tệp kết quả và chỉ định kích hoạt tệp R trong trang php. Trong tệp này, bạn có thể chỉ định tệp chương trình R gọi. một tên tệp cố định phức tạp. Sau khi chạy, một tệp văn bản kết quả duy nhất, tệp php sau đó đọc kết quả của tệp văn bản, xử lý và hiển thị nó, tức là đã đạt được mục đích.

exec($command,$out1,$out2);

Trong kết quả đầu ra php, miễn là giá trị của $out2 là 0 thì việc thực thi thành công.

Cần lưu ý rằng dấu gạch chéo ngược được sử dụng trong đường dẫn tệp là ký hiệu thoát đặc biệt cho dấu gạch chéo ngược trong PHP. Khi tạo lệnh $, bạn cần đặc biệt chú ý xem chuỗi đầu ra có đáp ứng yêu cầu hay không. Ngoài ra, để lưu trữ tệp, hãy thử sử dụng đường dẫn tuyệt đối.


Để lại một câu trả lời