2012-03-22 56 views
2

有沒有一種方法可以檢測PHP應用程序中可能需要被標籤替換的硬編碼標籤文本?我不只是在談論PHP文件,而是關於JavaScript,XML文件和SMARTY/TWIG模板。多語言應用程序中是否有標準程序?在PHP應用程序中檢測硬編碼標籤文本

+1

文本是文本。你可以'str_replace','preg_replace'或者使用其他幾個類似的函數來處理它。例如,請參閱我的答案[這裏](http://stackoverflow.com/questions/9783918/using-php-code-in-html-in-php/9784039#9784039)。 – Jon 2012-03-22 07:52:27

+1

認爲可能存在某種只識別文本(docblock和inline註釋除外)的「phpmd樣式」規則,並顯示需要通過任何類型的翻譯處理的潛在文本。 – mayrs 2012-03-22 07:56:31

回答

1

對於PHP,您可以使用token_get_all()遍歷模板文件。

你會看看T_STRING標記,然後檢查它們是不是佔位符相同的格式。例如:「全部大寫」或類似的東西。


FOR XML這幾乎是相同的交易,遍歷節點和檢查,如果任何文字內容是圍繞在那裏你會只期望佔位符飛行。

0

我們的搜索引擎是一種跨大型代碼庫進行高效搜索的工具,可對語言詞法結構進行索引以加快搜索速度。因此,它比grep更快,並且允許在這些語言詞位方面進行更多細微的查詢。

查詢的形式是一系列具有各種約束的詞位。有人可能會編寫一個查詢:

I=*foo* '.' S=*hello 

意思是:「發現含有‘富’的標識,接着是連接運算符,之後是具有在末尾的字母‘你好’文字字符串對於PHP,通用lexeme S代表所有字符串類型的文字(squoted strings,dquoted strings,heredocs等;如果你願意,你可以專門搜索它們)因爲搜索引擎理解詞法語法,所以它不會被幹擾空白,換行符或評論,所以你不必知道佈局來找到它(如果你堅持,它會發現帶有約束條件的評論標記)

你不必加約束:

I=*foo* '.' S 

找到任何標識符點字符串組合。

查詢

S 

本身直接回答的任擇議定書的問題:「在哪裏文本字符串?」任何類型的。