BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 14 | UU: 378
Wyszukaj funkcję PHP:  

CLVI. Funkcje Tokenizera

Wstęp

Funkcje tokenizera są interfejsem dostępu do wewnętrznego tokenizera wbudowanego w silniku Zend. Używając tych funkcji możesz napisać swoje własne narzędzia do analizy lub modyfikacji kodu PHP bez potrzeby zajmowania się specyfikacją języka na poziomie analizy leksykalnej.

Patrz także dodatek o tokenach.

Wymagania

Do zbudowania tego rozszerzenia nie są wymagane żadne zewnętrzne biblioteki.

Instalacja

Począwszy od PHP 4.3.0 funkcje te są dostępne domyślnie. Dla starszych wersji musisz skonfigurować i skompilować PHP z opcją --enable-tokenizer. Możesz wyłączyć wsparcie tokenizera opcją --disable-tokenizer.

PHP w wersji dla systemów Windows posiada wbudowaną obsługę dla tego rozszerzenia. Nie trzeba ładować żadnych dodatkowych rozszerzeń aby korzystać z tych funkcji.

Notatka: Wbudowane wsparcie dla tokenizera dostępne jest od PHP 4.3.0.

Stałe predefinopwane

When the extension has either been compiled into PHP or dynamically loaded at runtime, the tokens listed in Dodatek Q are defined as constants.

Przykłady

Poniżej prosty skrypt PHP używający tokenizera który wczyta plik PHP, usunie wszystkie komentarze ze źródła i wydrukuje tylko czysty kod.

Przykład 1. Usuwanie komentarzy przy pomocy tokenizera

<?php
  
/* T_ML_COMMENT nie istnieje w PHP 5.
   * Następujące trzy linie definiują tą stała by zachować kompatybilność
   * wsteczną.
   *
   * Kolejne dwie linie definiują istniejącą tylko w PHP 5 stałą
   * T_DOC_COMMENT, którą w PHP 4 podmienimy jako T_ML_COMMENT.
   */
  
if (!defined('T_ML_COMMENT')) {
    
define('T_ML_COMMENT', T_COMMENT);
  } else {
    
define('T_DOC_COMMENT', T_ML_COMMENT);
  }

  
$kod = file_get_contents("jakisplik.php");
  
$tokeny = token_get_all($kod);

  foreach (
$tokeny as $token) {
    if (
is_string($token)) {
      
// prosty token jednoznakowy
      
echo $token;
    } else {
      
// tablica definiująca token
      
list($id, $tekst) = $token;
      
      switch (
$id) {
        case
T_COMMENT:
        case
T_ML_COMMENT: // to zdefiniowaliśmy
        
case T_DOC_COMMENT: // to też
          // brak akcji dla komentarzy
          
break;
        default:
          
// wszystko inne -> drukuj "jakie jest"
          
echo $tekst;
          break;
      }
    }
  }
?>
Spis treści
token_get_all -- Dzieli zadane źródło na tokeny PHP
token_name -- Zwraca symboliczną nazwę danego tokena PHP
| | | |
Copyright © 2006-2013 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker