<?php 
/** 
 * This file is an example of an application with Snippet class. 
 * Distribution is intended for education / studying purposes only. 
 * 
 * Copyright [2020] [Wim Niemans <[email protected]>] 
 */ 
 
include './Snippet.class.php'; 
/** 
 * @author  wim niemans, Rotterdam, Bonn 
 * @license EUPL 
 */ 
 
$snippet = new Snippet(); 
 
/** 
 * substitute variables in text recusively with their respective values 
 * syntax: {var} where var  is [text]{var}[text] 
 *               where text is '-._[\w\d\]' 
 * 
 * below examples should all output 'The quick brown fox jumps over the lazy dog.' 
 */ 
 
// (1) demo simple replacements 
$snippet->setVar('pangram', 'The {speed} {color} fox {action} over the lazy {pet}.'); 
$snippet->setVar('speed',  'quick'); 
$snippet->setVar('color',  'brown'); 
$snippet->setVar('action', 'jumps'); 
$snippet->setVar('pet',    'dog'); 
$snippet->parse('output', 'pangram'); 
echo '-1- ' . $snippet->tidy('output') . " \n"; 
 
// (2a) demo nimble replacements of varValues 
$snippet->setVar('pangram', 'The {1} {2} fox {3} over the lazy {4}.'); 
$snippet->setVar('1', '{speed}'); 
$snippet->setVar('2', '{color}'); 
$snippet->setVar('3', '{action}'); 
$snippet->setVar('4', '{pet}'); 
$snippet->parse('output', 'pangram'); 
echo '-2- ' . $snippet->tidy('output') . " \n"; 
 
// (3) demo recursive replacements of varValues 
$snippet->setVar('pangram', 'The {{1}} {{2}} fox {{3}} over the lazy {{4}}.'); 
$snippet->setVar('1', 'speed'); 
$snippet->setVar('2', 'color'); 
$snippet->setVar('3', 'action'); 
$snippet->setVar('4', 'pet'); 
$snippet->parse('output', 'pangram'); 
echo '-3- ' . $snippet->tidy('output') . " \n"; 
 
// (4) demo nimble recursive replacements 
$snippet->setVar('pangram', 'The {{br}eed} {col{umn}} fox {ac{et}on} over the lazy {{idol}}.'); 
$snippet->setVar('br',   'sp'); 
$snippet->setVar('umn',  'or'); 
$snippet->setVar('et',   'ti'); 
$snippet->setVar('idol', 'pet'); 
$snippet->parse('output', 'pangram'); 
echo '-4- ' . $snippet->tidy('output') . " \n"; 
 
// (5) demo gotchas still working 
$snippet->setVar('pangram', 'The {{br}{own}} {col{umn}} fox {action} over the lazy {{p}e{t}}.'); 
$snippet->setVar('own', 'eed'); 
$snippet->setVar('p',   'p'); 
$snippet->setVar('t',   't'); 
$snippet->parse('output', 'pangram'); 
echo '-5- ' . $snippet->tidy('output') . " \n"; 
 
$snippet->clear(); 
 
// (6) demo -1- replacement of global variables 
$snippet->setVar('pangram', 'The {$speed} {$color} fox {$action} over the lazy {$pet}.'); 
$speed  = 'quick'; 
$color  = 'brown'; 
$action = 'jumps'; 
$pet    = 'dog'; 
$snippet->parse('output', 'pangram'); 
echo '-6- ' . $snippet->tidy('output') . " \n"; 
 
// (7) demo -2- replacement of (recursive) global variables 
$snippet->setVar('pangram', 'The {speed} {color} fox {action} over the lazy {pet}.'); 
$snippet->setVar('speed',  '{$speed}'); 
$snippet->setVar('color',  '{$color}'); 
$snippet->setVar('action', '{$action}'); 
$snippet->setVarData('pet',    '{$pet}'); 
$snippet->parse('output', 'pangram'); 
echo '-7- ' . $snippet->tidy('output') . " \n"; 
 
?>
 
 |