2011-02-25 37 views
5

là nó có thể chạy một số biểu hiện javascript? ví dụ echo eval("Math.sqrt('25')");php chạy mã javascript

+3

PHP chạy trên máy chủ, JS trên máy khách. Do đó, không, PHP không thể chạy JS. – nico

+0

@nico JS là nền tảng bất khả tri và do đó có thể chạy bất cứ nơi nào bạn muốn. node.js là một máy chủ web sử dụng JS cho kịch bản lệnh. AppJet & jGate là các ví dụ khác. – kim3er

+0

@ kim3er: Chắc chắn, nhưng nếu bạn đang lặp lại JS, nó sẽ chạy trên máy khách chứ không phải trên máy chủ. Hơn nữa, chúng tôi không có bất kỳ dấu hiệu nào cho thấy anh ta có quyền truy cập vào máy chủ. – nico

Trả lời

6

Trong những tình huống bình thường:

  • PHP chạy trên máy chủ
  • và, sau đó, Javascript được chạy trên máy khách, trong trình duyệt.

Vì vậy, không, không hoàn toàn có thể thực thi một số mã Javascript trên máy chủ.


Nhưng có ít nhất là trên PHP mở rộng nhúng (hoặc quấn arround) một động cơ Javascript, và, do đó, cho phép một để thực thi Javascript trên máy chủ, từ PHP.

Tiện ích mở rộng mà tôi đang nghĩ đến là số spidermonkey: cài đặt và bật nó trên máy chủ của bạn sẽ cho phép bạn thực thi mã Javascript, trên máy chủ, từ PHP. Tất nhiên, giống như bất kỳ phần mở rộng PHP nào khác, bạn sẽ cần phải là quản trị viên của máy chủ của bạn, để cài đặt nó - và điều này không bao giờ được cài đặt theo mặc định, vì nó trả lời một nhu cầu rất cụ thể.


Về phần mở rộng này, tôi chưa bao giờ thấy nó được sử dụng trong các tình huống thực tế, và không có nhiều người đã thử nó ... đây là hai điều bạn có thể muốn đọc:

+1

http://css.dzone.com/articles/running-javascript-inside-php bạn có thể sử dụng v8 nếu bạn có quyền quản trị. –

5

Hãy thử điều này

echo "<script language='javascript'> Math.sqrt('25') </script>" 
1

Kể từ PHP là một ngôn ngữ kịch bản phía máy chủ chạy trên máy chủ và Javascript là một ngôn ngữ kịch bản phía máy khách chạy trong một trình duyệt bạn sẽ phải có PHP tạo mã Javascript (giống như cách nó tạo HTML) được thực hiện sau khi trang được tải.

2

Ngoài ra còn có các J4P5

Tôi không biết nếu nó vẫn được duy trì nhưng bạn luôn có thể ngã ba nó, nó được phát hành theo giấy phép GPL.

2

đặt php của bạn thành một div ẩn và hơn gọi nó với javascript

html/php phần

<div id="mybox" style="visibility:hidden;"> echo sqrt(25); </div> 

javascript phần

var myfield = document.getElementById("mybox"); 
myfield.visibility = 'visible'; 

bây giờ, bạn có thể làm bất cứ điều gì với myfield ... như thế này

alert(myfield);