Я использую 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 равен true, я использую file_get_contents () для получения содержимого js и добавляю его вместо включения файла js с помощью url / src. Я понимаю, что он не найдет определения во включенных js-файлах; Я в порядке с этим.