| @@ 374-429 (lines=56) @@ | ||
| 371 | case T_REQUIRE : |
|
| 372 | case T_REQUIRE_ONCE : |
|
| 373 | //case T_INCLUDE : |
|
| 374 | case T_INCLUDE_ONCE: |
|
| 375 | { |
|
| 376 | // Получим путь к подключаемому файлу |
|
| 377 | $file_path = ''; |
|
| 378 | ||
| 379 | // Переберем все что иде после комманды подключения файла |
|
| 380 | for ($j = $i+1; $j < sizeof($tokens); $j++) |
|
| 381 | { |
|
| 382 | // Получим идентификатор метки и текстовое представление |
|
| 383 | $id = isset( $tokens[ $j ][0] ) ? $tokens[ $j ][0] : ''; |
|
| 384 | $text = isset( $tokens[ $j ][1] ) ? $tokens[ $j ][1] : ''; |
|
| 385 | ||
| 386 | //trace('"'.$id.'" - "'.$text.'"'); |
|
| 387 | ||
| 388 | // Если это закрывающая скобка - прекратим собирание пути к файлу |
|
| 389 | if( $id == ';' ) break; |
|
| 390 | ||
| 391 | // Все пробелы игнорирую |
|
| 392 | if( $id == T_WHITESPACE ) continue; |
|
| 393 | ||
| 394 | // Если у метки есть текстовое представление |
|
| 395 | if( isset( $text ) ) |
|
| 396 | { |
|
| 397 | // Если єто константа |
|
| 398 | if( isset( $consts[ $text ])) $file_path .= $consts[ $text ]; |
|
| 399 | // Если это путь |
|
| 400 | else $file_path .= $text; |
|
| 401 | } |
|
| 402 | } |
|
| 403 | ||
| 404 | // Если указан путь к файлу |
|
| 405 | if( isset($file_path{1}) ) |
|
| 406 | { |
|
| 407 | // Уберем ковычки |
|
| 408 | $file_path = str_replace(array("'",'"'), array('',''), $file_path ); |
|
| 409 | ||
| 410 | // Если это не абсолютный путь - попробуем относительный |
|
| 411 | if( !file_exists( $file_path ) ) $file_path = pathname($path).$file_path; |
|
| 412 | ||
| 413 | // Если файл найден - получим его содержимое |
|
| 414 | if( file_exists( $file_path ) ) |
|
| 415 | { |
|
| 416 | //trace('Углубляемся в файл:'.$file_path.'('.$namespace.')'); |
|
| 417 | ||
| 418 | // Углубимся в рекурсию |
|
| 419 | $this->compress_php( $file_path, $module, $code, $namespace ); |
|
| 420 | ||
| 421 | // Измением позицию маркера чтения файла |
|
| 422 | $i = $j + 1; |
|
| 423 | } |
|
| 424 | } else { |
|
| 425 | $main_code .= $text; |
|
| 426 | } |
|
| 427 | ||
| 428 | } |
|
| 429 | break; |
|
| 430 | ||
| 431 | // Собираем основной код программы |
|
| 432 | default: $main_code .= $text; break; |
|
| @@ 883-938 (lines=56) @@ | ||
| 880 | case T_REQUIRE : |
|
| 881 | case T_REQUIRE_ONCE : |
|
| 882 | //case T_INCLUDE : |
|
| 883 | case T_INCLUDE_ONCE: { |
|
| 884 | // Получим путь к подключаемому файлу |
|
| 885 | $file_path = ''; |
|
| 886 | ||
| 887 | // Переберем все что иде после комманды подключения файла |
|
| 888 | for ($j = $i + 1; $j < sizeof($tokens); $j++) { |
|
| 889 | // Получим идентификатор метки и текстовое представление |
|
| 890 | $id = isset($tokens[$j][0]) ? $tokens[$j][0] : ''; |
|
| 891 | $text = isset($tokens[$j][1]) ? $tokens[$j][1] : ''; |
|
| 892 | ||
| 893 | //trace('"'.$id.'" - "'.$text.'"'); |
|
| 894 | ||
| 895 | // Если это закрывающая скобка - прекратим собирание пути к файлу |
|
| 896 | if ($id == ';') break; |
|
| 897 | ||
| 898 | // Все пробелы игнорирую |
|
| 899 | if ($id == T_WHITESPACE) continue; |
|
| 900 | ||
| 901 | // Если у метки есть текстовое представление |
|
| 902 | if (isset($text)) { |
|
| 903 | // Если єто константа |
|
| 904 | if (isset($consts[$text])) $file_path .= $consts[$text]; |
|
| 905 | // Если это путь |
|
| 906 | else $file_path .= $text; |
|
| 907 | } |
|
| 908 | } |
|
| 909 | ||
| 910 | // Если указан путь к файлу |
|
| 911 | if (isset($file_path{1})) { |
|
| 912 | // Уберем ковычки |
|
| 913 | $file_path = str_replace(array("'", '"'), array('', ''), $file_path); |
|
| 914 | ||
| 915 | // Если это не абсолютный путь - попробуем относительный |
|
| 916 | if (!file_exists($file_path)) $file_path = pathname($path) . $file_path; |
|
| 917 | ||
| 918 | // Если файл найден - получим его содержимое |
|
| 919 | if (file_exists($file_path)) { |
|
| 920 | //trace('Углубляемся в файл:'.$file_path.'('.$namespace.')'); |
|
| 921 | ||
| 922 | // Углубимся в рекурсию |
|
| 923 | $this->compress_php($file_path, $module, $code, $namespace); |
|
| 924 | ||
| 925 | // Измением позицию маркера чтения файла |
|
| 926 | $i = $j + 1; |
|
| 927 | } |
|
| 928 | } else { |
|
| 929 | $main_code .= $text; |
|
| 930 | } |
|
| 931 | ||
| 932 | } |
|
| 933 | break; |
|
| 934 | ||
| 935 | case T_INTERFACE: |
|
| 936 | case T_CLASS: |
|
| 937 | $classStared = true; |
|
| 938 | $main_code .= $text; |
|
| 939 | for ($j = $i + 1; $j < sizeof($tokens); $j++) { |
|
| 940 | // Get id and text of token |
|
| 941 | $id = isset($tokens[$j][0]) ? $tokens[$j][0] : ''; |
|