summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
23c5e09)
parse_template used to delete "<!--" or "0" when they occured in a place where
they were the entirity of a static string piece. Examples:
~a~0~b~
Template to output a template:
~a~<!--~~b~~-->~c~
function parse_template($string) {
$tem =& tem_push();
$tem['pieces'] = array();
function parse_template($string) {
$tem =& tem_push();
$tem['pieces'] = array();
- # note: for some reason this captures '<!--' but not '-->'.
- $matches = preg_split("/(<!--)?(~[^~]*~)(?(1)-->)/", $string, -1, PREG_SPLIT_DELIM_CAPTURE);
+ $matches = preg_split('/(<!--)?(~[^~]*~)(?(1)-->)/', preg_replace('/<!--(~[^~]*~)-->/', '$1', $string), -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
foreach($matches as $match) {
if($match == '~~') $match = '~';
if(substr($match,0,1) == '~' and strlen($match) > 2) {
foreach($matches as $match) {
if($match == '~~') $match = '~';
if(substr($match,0,1) == '~' and strlen($match) > 2) {
} else { # value slot
$tem['pieces'][] = array('name' => $name, 'args' => $args);
}
} else { # value slot
$tem['pieces'][] = array('name' => $name, 'args' => $args);
}
- } elseif($match and $match != '<!--') { # static string
+ } else { # static string
$tem['pieces'][] = $match;
}
}
$tem['pieces'][] = $match;
}
}