Вход Регистрация
Файл: includes/sql_parse.php
Строк: 79
<?php
/***************************************************************************
*                             sql_parse.php
*                              -------------------
 *      Разработка: phpBB Group.
 *      Оптимизация под WAP: Гутник Игорь ( чел ).
 *          2008 год
****************************************************************************/

function remove_comments(&$output)
{
    
$lines = explode("n", $output);
    
$output = "";
    
$linecount = count($lines);

    
$in_comment = false;
    for(
$i = 0; $i < $linecount; $i++)
    {
        if( 
preg_match("/^/*/", preg_quote($lines[$i])) )
        {
            
$in_comment = true;
        }

        if( !
$in_comment )
        {
            
$output .= $lines[$i] . "n";
        }

        if( 
preg_match("/*/$/", preg_quote($lines[$i])) )
        {
            
$in_comment = false;
        }
    }

    unset(
$lines);
    return 
$output;
}

function 
remove_remarks($sql)
{
    
$lines = explode("n", $sql);

    
$sql = "";
    
    
$linecount = count($lines);
    
$output = "";

    for (
$i = 0; $i < $linecount; $i++)
    {
        if ((
$i != ($linecount - 1)) || (strlen($lines[$i]) > 0))
        {
            if (
$lines[$i][0] != "#")
            {
                
$output .= $lines[$i] . "n";
            }
            else
            {
                
$output .= "n";
            }
            
$lines[$i] = "";
        }
    }
    
    return 
$output;
    
}

function 
split_sql_file($sql, $delimiter)
{
    
$tokens = explode($delimiter, $sql);

    
$sql = "";
    
$output = array();

    
$matches = array();

    
$token_count = count($tokens);
    for (
$i = 0; $i < $token_count; $i++)
    {
        if ((
$i != ($token_count - 1)) || (strlen($tokens[$i] > 0)))
        {
            
$total_quotes = preg_match_all("/'/", $tokens[$i], $matches);
            
$escaped_quotes = preg_match_all("/(?<!\\)(\\\\)*\\'/", $tokens[$i], $matches);
            
            
$unescaped_quotes = $total_quotes - $escaped_quotes;

            if ((
$unescaped_quotes % 2) == 0)
            {
                
$output[] = $tokens[$i];
                
$tokens[$i] = "";
            }
            else
            {
                
$temp = $tokens[$i] . $delimiter;
                
$tokens[$i] = "";

                
$complete_stmt = false;
                
                for (
$j = $i + 1; (!$complete_stmt && ($j < $token_count)); $j++)
                {
                    
$total_quotes = preg_match_all("/'/", $tokens[$j], $matches);
                    
$escaped_quotes = preg_match_all("/(?<!\\)(\\\\)*\\'/", $tokens[$j], $matches);
            
                    
$unescaped_quotes = $total_quotes - $escaped_quotes;
                    
                    if ((
$unescaped_quotes % 2) == 1)
                    {
                        
$output[] = $temp . $tokens[$j];

                        
$tokens[$j] = "";
                        
$temp = "";

                        
$complete_stmt = true;
                        
$i = $j;
                    }
                    else
                    {
                        
$temp .= $tokens[$j] . $delimiter;
                        
$tokens[$j] = "";
                    }
                    
                } 
            } 
        }
    }

    return 
$output;
}

?>
Онлайн: 2
Реклама