Tôi muốn gọi một tệp PHP bắt đầu như
Tôi có:
line1-> cannot open ?: No such file
line 3 //Connection: not found
line 4 Syntax errror: "["
Tại sao điều này không thực thi chính xác tệp tên.php?
Khi được hỏi ngày 15 tháng 5 năm 2010 lúc 17:41May 15, 2010 at 17:41
Nó đang cố gắng chạy nó như một tập lệnh shell, trong đó giải thích mã thông báo ____11 của bạn dưới dạng bash, đây là lỗi cú pháp. Chỉ cần sử dụng
2 hoặc một trong những người bạn của nó:Ví dụ: trong
3 đặt:
Trong
4 đặt:
Prints:
eric@dev ~ $ php a.php
onetwothree
Đã trả lời ngày 15 tháng 5 năm 2010 lúc 17:50May 15, 2010 at 17:50
3
EXEC đang bắn vào hệ điều hành và trừ khi HĐH có một số cách đặc biệt để biết cách thực thi tệp, thì nó sẽ mặc định coi nó là tập lệnh shell hoặc tương tự. Trong trường hợp này, nó không biết làm thế nào để chạy tệp PHP của bạn. Nếu tập lệnh này hoàn toàn phải được thực thi từ shell, thì thực thi PHP sẽ truyền tên tệp dưới dạng tham số, ví dụ
exec ['/usr/local/bin/php -f /opt/lampp/htdocs/.../name.php]'] ;
hoặc sử dụng dấu chấm ở đầu tập lệnh PHP của bạn
#!/usr/local/bin/php
Đã trả lời ngày 15 tháng 5 năm 2010 lúc 17:54May 15, 2010 at 17:54
Mark Bakermark BakerMark Baker
207K31 Huy hiệu vàng339 Huy hiệu bạc381 Huy hiệu Đồng31 gold badges339 silver badges381 bronze badges
1
Có vẻ như bạn đang cố gắng thực thi mã PHP trực tiếp trong vỏ của bạn. Shell của bạn không nói PHP, vì vậy nó diễn giải mã PHP của bạn như thể nó bằng ngôn ngữ mẹ đẻ của bạn, như thể bạn đã chạy
1 theo nghĩa đen tại dòng lệnh.Các tập lệnh Shell thường bắt đầu với một dòng "Shebang" cho Shell biết chương trình sẽ sử dụng gì để giải thích tệp. Bắt đầu tập tin của bạn như thế này:
#!/usr/bin/env php
6 không có ý nghĩa gì. Nó bắt đầu với một dấu gạch chéo tự nó, nó sử dụng quá nhiều khoảng thời gian trên đường dẫn, và nó có một dấu ngoặc đơn bên phải.Sao chép nội dung của chuỗi lệnh và dán chúng vào dòng lệnh của bạn. Nếu nó không chạy ở đó, thì
6 có thể cũng sẽ không thể chạy nó.Một tùy chọn khác là thay đổi lệnh bạn thực thi. Thay vì chạy tập lệnh trực tiếp, hãy chạy
8 và chuyển tập lệnh của bạn dưới dạng đối số. Sau đó, bạn không cần dòng Shebang.exec['php name.php'];
Đã trả lời ngày 15 tháng 5 năm 2010 lúc 17:50May 15, 2010 at 17:50
EXEC đang bắn vào hệ điều hành và trừ khi HĐH có một số cách đặc biệt để biết cách thực thi tệp, thì nó sẽ mặc định coi nó là tập lệnh shell hoặc tương tự. Trong trường hợp này, nó không biết làm thế nào để chạy tệp PHP của bạn. Nếu tập lệnh này hoàn toàn phải được thực thi từ shell, thì thực thi PHP sẽ truyền tên tệp dưới dạng tham số, ví dụRob Kennedy
hoặc sử dụng dấu chấm ở đầu tập lệnh PHP của bạn21 gold badges276 silver badges462 bronze badges
2
Đã trả lời ngày 15 tháng 5 năm 2010 lúc 17:54
0Mark Bakermark Baker
207K31 Huy hiệu vàng339 Huy hiệu bạc381 Huy hiệu Đồng♦
Có vẻ như bạn đang cố gắng thực thi mã PHP trực tiếp trong vỏ của bạn. Shell của bạn không nói PHP, vì vậy nó diễn giải mã PHP của bạn như thể nó bằng ngôn ngữ mẹ đẻ của bạn, như thể bạn đã chạy
1 theo nghĩa đen tại dòng lệnh.21 gold badges79 silver badges129 bronze badges
Các tập lệnh Shell thường bắt đầu với một dòng "Shebang" cho Shell biết chương trình sẽ sử dụng gì để giải thích tệp. Bắt đầu tập tin của bạn như thế này:Jan 7, 2014 at 6:18
Bên cạnh đó, chuỗi bạn chuyển sang
6 không có ý nghĩa gì. Nó bắt đầu với một dấu gạch chéo tự nó, nó sử dụng quá nhiều khoảng thời gian trên đường dẫn, và nó có một dấu ngoặc đơn bên phải.AmarSao chép nội dung của chuỗi lệnh và dán chúng vào dòng lệnh của bạn. Nếu nó không chạy ở đó, thì
6 có thể cũng sẽ không thể chạy nó.1 gold badge12 silver badges16 bronze badges
2