2011-08-15 68 views
-1

我需要一個解決方案來檢查字符串與PHP並確定它是否是javascript命令。如何檢查一個字符串是否是一個JavaScript命令與PHP

我想在運行時動態生成JavaScript腳本。 但是一個字符串可能是一個無效的javascript命令。

例如:

$str = 'hello'; 

hello是一個簡單的字符串,而不是一個JavaScript命令,但在:

$str = 'str.split()'; 

str.split()是JavaScript的commnad。

我想知道,如果一個字符串是真的一個JavaScript命令

+6

你能定義「javascript命令」嗎?你正在尋找腳本標籤,或JavaScript關鍵字,或檢查,看看是否有效的JavaScript或其他? –

+0

A''? – hakre

+0

只是一個提示:當在這裏問一個問題時,說出*爲什麼*你試圖做某事通常是有用的。 – porges

回答

3

我想你應該嘗試使用a JavaScript linter written in PHP

確定JavaScript需要是有效的,但它可以工作。

只要檢查linter是否可以,然後你可以認爲它是JavaScript代碼。

編輯:從我鏈接到的頁面採取和編輯的示例。

$lint = new JSLEngine(); 

if ($lint->Lint($js)) 
{ 
    // This is valid JavaScript, now we can do stuff with it. 
} 
+0

真的好主意其實很好! – rickyduck

+1

謝謝,雖然我不認爲一般概念是一個好主意。如果他從用戶輸入中生成腳本,那麼這可能是一個巨大的XSS目標。對我來說聽起來有點危險。 – Olical

+0

很好,但我不想因性能而使用外部應用程序 – Omid

0

你總是可以創建的每一個javascript函數,然後使用in_array($variable, $array)檢查指定的變量是否是數組的數組,但是這將意味着手工編寫的每一個javascript函數。

,你將有問題在下面的線程強調:

How to display all methods of an object in Javascript?

我希望你擁有你的問題解決了。

只是爲了延長本 - How to display all methods of an object in Javascript?

這篇文章解釋了ES5將如何讓你做到這一點。但是,您需要找到一種將javascript內容獲取到php變量中的方法,例如<?php $blah = get_file_contents("thejavascriptpage.php");?> - 包含javascript的javascriptpage.php,然後展開陣列響應。

相關問題