Я использую Zend_View_Helper_HeadScript для отображения определений функций javascript в начале моих веб-страниц, и я расширил его, чтобы получить код javascript из файла, если это необходимо. То, что я хотел бы знать, - это простой способ поиска вывода headScript (в основном, ряда элементов скрипта xhtml) для определения функции javascript, предполагая, что я получил и вывел содержимое javascript-файлов (вместо того, чтобы включать srcs.) Я имею в виду, что я мог бы искать «функцию», за которой следует несколько символов имени функции, а затем «(« но это не учитывает возможные комментарии в коде ». Есть ли функция quickie для этого, встроенная в PHP что можно искать яваскрипта определения функции или что-то еще прекомпилированноеПоиск определения функции javascript внутри строки с использованием PHP?
Пример вывода:?
<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-контент и добавить его вместо включения js-файла с использованием url/src. Я понимаю, что он не найдет определений в включенных js-файлах; Я в порядке с этим.
В этом случае SpiderMonkey может быть немного переполнен, но +1 для перехода в полное противоположное направление регулярного выражения –