<?php class TSimpleDynamicParser { private $PARAMETER_TOKEN_REGEXP = '/\$([^\$]+)\$/'; const DYNAMIC_TOKEN = '`!`'; public function parse($sqlMap, $statement, $sqlText, $scope) { $matches = array(); $mappings = array(); preg_match_all($this->PARAMETER_TOKEN_REGEXP, $sqlText, $matches); for($i = 0, $k=count($matches[1]); $i<$k; $i++) { $mappings[] = $matches[1][$i]; $sqlText = str_replace($matches[0][$i], self::DYNAMIC_TOKEN, $sqlText); } return array('sql'=>$sqlText, 'parameters'=>$mappings); } } ?>