Files
php-doc-ru/reference/tokenizer/examples.xml
Andrey S. Bezrukov 52728a6d70 Added translation by Alexander Lissachenko
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@314919 c90b9560-bf6c-de11-be94-00142212c4b1
2011-08-15 07:37:49 +00:00

84 lines
2.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: aur Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<appendix xml:id="tokenizer.examples">
&reftitle.examples;
<para>
Простой пример PHP-скрипта, использующего tokenizer(лексер), который
читает PHP файл, удаляет все комментарии из исходного кода
и выводит только чистый код.
</para>
<example>
<title>Удаление комментариев лексром</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* T_ML_COMMENT не существует в PHP 5.
* Следующие три строчки определяют его для
* сохранения обратной совместимости.
*
* Следующие две строчки определяют T_DOC_COMMENT только для PHP 5,
* который мы маскируем как T_ML_COMMENT для PHP 4.
*/
if (!defined('T_ML_COMMENT')) {
define('T_ML_COMMENT', T_COMMENT);
} else {
define('T_DOC_COMMENT', T_ML_COMMENT);
}
$source = file_get_contents('example.php');
$tokens = token_get_all($source);
foreach ($tokens as $token) {
if (is_string($token)) {
// простая 1-буквенная лексема
echo $token;
} else {
// токен-массив
list($id, $text) = $token;
switch ($id) {
case T_COMMENT:
case T_ML_COMMENT: // мы определили это
case T_DOC_COMMENT: // и это
// нет действий для комментариев
break;
default:
// все остальное -> выводим "как есть"
echo $text;
break;
}
}
}
?>
]]>
</programlisting>
</example>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->