我正在使用 Zend_View_Helper_HeadScript 在我的网页头部显示 javascript 函数定义,如果需要,我将其扩展为从文件中获取 javascript 代码。我想知道的是是否有一种简单的方法可以在 headScript 输出(基本上是一系列 xhtml 脚本元素)中搜索 javascript 函数定义,假设我获取并输出了 javascript 文件的内容(而不是包括srcs。)我的意思是,我可以搜索“函数”,后跟一些函数名称字符,然后是“(”,但这并没有考虑代码中可能的注释。PHP 中是否有一个快速函数可以搜索 javascript 函数定义吗?还是其他预建的?
样本输出:
<script type="text/javascript">
// function testMe() {}
function otherTest() {alert('Just testing!');}
/*
function testMe() {}
*/
</script>
显然 testMe() 并没有在这里真正定义......
为了清楚起见,我正在尝试做这样的事情:
<?php
$htmlScriptElements = $view->headScript()->toString();
$functionName = 'testMe';
$file = '/path/to/testMe.js';
$type = 'text/javascript';
$attrs = array();
$getScript = TRUE;
if (!js_function_definition_found($functionName, $htmlScriptElements)) {
$view->headScript()->appendFile($file, $type, $attrs, $getScript);
}
headScript 助手是自制的;如果 $getScript 为真,我使用 file_get_contents() 来获取 js 内容并附加该内容,而不是使用 url/src 包含 js 文件。我意识到它不会在包含的 js 文件中找到定义;我很好。