Warning: Invalid argument supplied for foreach() in /home/jihswbiz/public_html/t6.gwilt.org/refDox.php on line 212
Docs-parse

 

ReLoad

Keys


Functions

arraybrowsercolorcookiedatetimeDBdebugdeviceDSTequiverrorflagsfontformatgeo
holidayhtmlisjsonmathparsePHPprintsearchsortstringtabletexttracetype
VOTDweatherxml

Function  parse   Lines 1615-1740 (125 lines)Updated: 2021-02-11 file  utils.php   Last mod: Fri 2021-05-14 21:45:07

function parse $inp$an=0$st=false )
        {
#-k     string parse
#-      $inp    - string to be parsed
#-      $an     - 0 -'t' values are 'alpha', 'numeric' or 'sym' (default)
#-              - 1 -'t' values are 'alphanumeric' or 'sym'
#-              - 2 -'t' values are 'varsafe' or 'sym', where varsafe includes alphanumeric, '_' and '-'
#-      $st     - add the stats to the end of the array (default false)
#-
#-      return  - array tokenized input, 't' = token; 'v' = value
#-              at top level, 'a', 'n' & 's' hold counts of categories, 't' contains optional tracking #
#-d     2/11/21 updated to add $an options 1&2, and param $st

        
$p = -1;
        
$was '';
        
$inp ' ' $inp '  ';

        for (
$i=1;$i<(strlen($inp)-2);$i++)
                {
                if ((
$an == 2)  AND  is_varsafe($inp{$i}))
                        {
                        if (
$was == 'varsafe')
                                {
                                
$pi[$p]['v'] .= $inp{$i};
                                }
                        else
                                {
                                
$was 'varsafe';
                                
$p++;
                                
$pi[$p]['v'] = $inp{$i};
                                
$pi[$p]['t'] = $was;
                                }
                        }

                elseif ((
$an == 1)  AND  is_alphanum($inp{$i}))
                        {
                        if (
$was == 'alphanumeric')
                                {
                                
$pi[$p]['v'] .= $inp{$i};
                                }
                        else
                                {
                                
$was 'alphanumeric';
                                
$p++;
                                
$pi[$p]['v'] = $inp{$i};
                                
$pi[$p]['t'] = $was;
                                }
                        }

                elseif (
is_alpha($inp{$i}))
                        {
                        if (
$was == 'alpha')
                                {
                                
$pi[$p]['v'] .= $inp{$i};
                                }
                        else
                                {
                                
$was 'alpha';
                                
$p++;
                                
$pi[$p]['v'] = $inp{$i};
                                
$pi[$p]['t'] = $was;
                                }
                        }

                elseif (
is_numeric($inp{$i}))
                        {
                        if (
$was == 'tracking')
                                {
                                
$pi['t'] .= $inp{$i};
                                }
                        elseif (
$was == 'numeric')
                                {
                                
$pi[$p]['v'] .= $inp{$i};
                                }
                        else
                                {
                                
$was 'numeric';
                                
$p++;
                                
$pi[$p]['v'] = $inp{$i};
                                
$pi[$p]['t'] = $was;
                                }
                        }

                elseif ((
$inp{$i} == "'") and
                    (
is_alpha($inp{$i-1})) and
                    (
$inp{$i+1} == 's') and
                    (
is_special($inp{$i+2})))
                        {       
# strong's becomes strong
                        
$was '';
                        
$inp{$i+1} = ' ';
                        }

                elseif (
$inp{$i} == ' ')
                        {
                        
$was '';
                        }

                elseif (
$inp{$i} == '~')
                        {       
# tracking ID - strip out
                        
$was 'tracking';
                        
$pi['t'] = '';
                        }
                else
                        {       
# punctuation
                        
$was '';
                        
$p++;
                        
$pi[$p]['v'] = $inp{$i};
                        
$pi[$p]['t'] = 'sym';
                        }
                }

        
$p++;
        if (
$st)
                {
                
$pi['a'] = $pi['n'] = $pi['s'] = 0;
                for (
$i=0;$i<$p;$i++)
                        {
                        if (
$pi[$i]['t'] == 'alpha')    { $pi['a']++; } else
                        if (
$pi[$i]['t'] == 'numeric')  { $pi['n']++; } else
                        if (
$pi[$i]['t'] == 'sym')      { $pi['s']++; }
                        }
                }

        return 
$pi;
        }

?>