Tel. 042-353-2371

ÆòÀÏ ¿ÀÀü 9½Ã ~ ¿ÀÈÄ 7½Ã
±â¾÷ÀºÇà

010-8649-6758

¿¹±ÝÁÖ:Á¦ÁÖ»ç¶û(¼ÛÁø¾Æ)
PHP
Ȩ > ȨÆäÀÌÁöÁ¦ÀÛ±³½Ç > PHP

Ä«Å×°í¸® Ŭ·¡½º&ÇÔ¼ö
Á¦¸ñ btemplate ( ÅÛÇø´ Ŭ·¡½º ) 0.1
ÀÛ¼ºÀÚ freeweb
ÀÛ¼ºÀÏÀÚ 2009-12-09
Á¶È¸¼ö 1986
==============
¼Ò °³ (INTRO)
==============

HTML, Àº ¹°·Ð XML °ú ȣȯ»ç¿ëÀÌ °¡´ÉÇÑ ÅÛÇø´ Ŭ·¡½º ÀÔ´Ï´Ù. ·çÇÁ, º¹ÀâÇÑ ¼­ºê
ºí·Ï·çÇÁ µîÀÇ ¿äÁòÀÇ ÅÛÇø´ ±â´ÉÀ» ´ëºÎºÐ Áö¿øÇÏ´Â ÅÛÇø´ Ŭ·¡½º ÀÔ´Ï´Ù. ÅÛÇø´
Ŭ·¡½º´Â ¸¹Áö¸¸ Á¤ÀÛ »ç¿ëÇϱ⿡´Â Á¶±Ý ¸Á¼³¿© Áö´Â ºÎºÐÀÌ Àִµ¥ ÀÚüÀûÀÎ ÅÛÇø´
À» Á¦ÀÛÇϰųª ½ÇÁ¦ »ç¿ëÇØ¾ßÇÏ´Â °æ¿ì ´«¿©°Ü º¼¸¸ÇÑ ÇÁ·Î±×·¥Àεí ÇÕ´Ï´Ù.
Ŭ·¡½º ÀÚü¶ÇÇÑ ±ò²ûÇÏ°Ô Àß Â¥¿©Àú À־ °øºÎ¿¡µµ µµ¿òÀÌ µÉµí ÇÕ´Ï´Ù.

==============
¶óÀ̼¾½º
==============

ÆÄÀϳ» ¶óÀ̼¾½ºÆÄÀÏ ÂüÁ¶

=============
¼³ Ä¡
=============

µ¶¸³ÇÁ·Î±×·¡ÀÌ ¾Æ´Ï¶ó ¼³Ä¡°úÁ¤Àº µû·Î ¾øÀ¸¸ç ¾÷·Îµå ÇÕÀ¸·Î ¼³Ä¡´Â
¿Ï·áµÇ¸ç »ç¿ë½Ã¿¡ include ÇÏ¿© »ç¿ëÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù.
»ç¿ë¹æ¹ý¿¡ ´ëÇØ¼­´Â http://216.218.133.71/~brian/bTemplate/
»çÀÌÆ®¿¡¼­ Á¦°øÇÏ´Â ¹®¼­¸¦ ÂüÁ¶Çϼ¼¿ä


=============
ÇÁ·Î±×·¥¼Ò½º
=============

<?php
/*--------------------------------------------------------------*
    Description: HTML template class.
    Author: Brian Lozier (brian@massassi.net)
    License: Please read the license.txt file.
*--------------------------------------------------------------*/
class bTemplate
{
    
// Path variables
    
var $base_path = '/home/brian/public_html/bTemplate/'
;

    
// Delimeters for regular tags
    
var $ldelim = '<'
;
    var
$rdelim = ' />'
;

    
// Delimeters for beginnings of loops
    
var $BAldelim = '<'
;
    var
$BArdelim = '>'
;

    
// Delimeters for ends of loops
    
var $EAldelim = '</'
;
    var
$EArdelim = '>'
;

    
// Internal variables
    
var $scalars
= array();
    var
$arrays
= array();
    var
$ifs
= array();
    var
$carrays
= array();

    
/*--------------------------------------------------------------*
        Method: bTemplate()
        Simply sets the base path (if you don't set the default).
    *--------------------------------------------------------------*/
    
function bTemplate($base_path = NULL
) {
        if(
$base_path != NULL
) {
            
$this->base_path = $base_path
;
        }        
    }

    
/*--------------------------------------------------------------*
        Method: set()
        Sets all types of variables (scalar, loop, hash).
    *--------------------------------------------------------------*/
    
function set($tag, $var, $if = NULL
) {
        if(
is_array($var
)) {
            
$this->arrays[$tag] = $var
;
        }
        else {
            
$this->scalars[$tag] = $var
;
            if(
$if === TRUE) $this->ifs[] = $tag
;
        }
    }

    
/*--------------------------------------------------------------*
        Method: set_cloop()
        Sets a cloop (case loop).
    *--------------------------------------------------------------*/
    
function set_cloop($tag, $array, $cases
) {
        
$this->carrays[$tag
] = array(
            
'array' => $array
,
            
'cases' => $cases
);
    }

    
/*--------------------------------------------------------------*
        Method: get_tags()
        Formats the tags & returns a two-element array.
    *--------------------------------------------------------------*/
    
function get_tags($tag, $directive
) {
        
$tags['b'] = $this->BAldelim . $directive . $tag . $this->BArdelim
;
        
$tags['e'] = $this->EAldelim . $directive . $tag . $this->EArdelim
;
        return
$tags
;
    }

    
/*--------------------------------------------------------------*
        Method: get_tag()
        Formats a tag for a scalar.
    *--------------------------------------------------------------*/
    
function get_tag($tag
) {
        return
$this->ldelim . 'tag:' . $tag . $this->rdelim
;
    }

    
/*--------------------------------------------------------------*
        Method: get_statement()
        Extracts a portion of a template.
    *--------------------------------------------------------------*/
    
function get_statement($t, &$contents
) {
        
// Locate the statement
        
$tag_length = strlen($t['b'
]);
        
$fpos = strpos($contents, $t['b']) + $tag_length
;
        
$lpos = strpos($contents, $t['e'
]);
        
$length = $lpos - $fpos
;

        
// Extract & return the statement
        
return substr($contents, $fpos, $length
);
    }

    
/*--------------------------------------------------------------*
        Method: parse()
        Parses all variables into the template.
    *--------------------------------------------------------------*/
    
function parse($contents
) {
        
// Process the ifs
        
if(!empty($this->ifs
)) {
            foreach(
$this->ifs as $value
) {
                
$contents = $this->parse_if($value, $contents
);
            }
        }

        
// Process the scalars
        
foreach($this->scalars as $key => $value
) {
            
$contents = str_replace($this->get_tag($key), $value, $contents
);
        }

        
// Process the arrays
        
foreach($this->arrays as $key => $array
) {
            
$contents = $this->parse_loop($key, $array, $contents
);
        }

        
// Process the carrays
        
foreach($this->carrays as $key => $array
) {
            
$contents = $this->parse_cloop($key, $array, $contents
);
        }

        
// Reset the arrays
        
$this->arrays
= array();
        
$this->carrays
= array();

        
// Return the contents
        
return $contents
;
    }

    
/*--------------------------------------------------------------*
        Method: parse_if()
        Parses a simple if statement.
    *--------------------------------------------------------------*/
    
function parse_if($tag, $contents
) {
        
// Get the tags & if statement
        
$t = $this->get_tags($tag, 'if:'
);
        
$if = $this->get_statement($t, $contents
);

        
// Process the if statement
        
$this->scalars[$tag] ? $replace = $if : $replace = NULL
;

        
// Parse & return the template
        
return str_replace($t['b'] . $if . $t['e'], $replace, $contents
);
    }

    
/*--------------------------------------------------------------*
        Method: parse_loop()
        Parses a loop (recursive function).
    *--------------------------------------------------------------*/
    
function parse_loop($tag, $array, $contents
) {
        
// Get the tags & loop
        
$t = $this->get_tags($tag, 'loop:'
);
        
$loop = $this->get_statement($t, $contents
);

        
// Process the loop
        
$parsed = NULL
;
        foreach(
$array as $key => $value
) {
            if(
is_numeric($key) && is_array($value
)) {
                
$i = $loop
;
                foreach(
$value as $key2 => $value2
) {
                    if(!
is_array($value2
)) {
                        
// Replace associative array tags
                        
$i = str_replace($this->get_tag($tag . '[].' . $key2), $value2, $i
);
                    }
                    else {
                        
// Check to see if it's a nested loop
                        
$i = $this->parse_loop($tag . '[].' . $key2, $value2, $i
);
                    }
                }
            }
            elseif(
is_string($key) && !is_array($value
)) {
                
$contents = str_replace($this->get_tag($tag . '.' . $key), $value, $contents
);
            }
            elseif(!
is_array($value
)) {
                
$i = str_replace($this->get_tag($tag . '[]'), $value, $loop
);
            }

            
// Add the parsed iteration
            
if(isset($i)) $parsed .= rtrim($i
);
        }

        
// Parse & return the final loop
        
return str_replace($t['b'] . $loop . $t['e'], $parsed, $contents
);
    }

    
/*--------------------------------------------------------------*
        Method: parse_cloop()
        Parses a cloop (case loop) (recursive function).
    *--------------------------------------------------------------*/
    
function parse_cloop($tag, $array, $contents
) {
        
// Get the tags & loop
        
$t = $this->get_tags($tag, 'cloop:'
);
        
$loop = $this->get_statement($t, $contents
);

        
// Set up the cases
        
$array['cases'][] = 'default'
;
        
$case_content
= array();

        
// Get the case strings
        
foreach($array['cases'] as $case
) {
            
$ctags[$case] = $this->get_tags($case, NULL
);
            
$case_content[$case] = $this->get_statement($ctags[$case], $loop
);
        }

        
// Process the loop
        
$parsed = NULL
;
        foreach(
$array['array'] as $key => $value
) {
            if(
is_numeric($key) && is_array($value
)) {
                
// Set up the cases
                
if(isset($value['case'])) $current_case = $value['case'
];
                else
$current_case = 'default'
;
                unset(
$value['case'
]);
                
$i = $case_content[$current_case
];

                
// Loop through each value
                
foreach($value as $key2 => $value2
) {
                    
$i = str_replace($this->get_tag($tag . '[].' . $key2), $value2, $i
);
                }
            }

            
// Add the parsed iteration
            
$parsed .= rtrim($i
);
        }

        
// Parse & return the final loop
        
return str_replace($t['b'] . $loop . $t['e'], $parsed, $contents
);
    }

    
/*--------------------------------------------------------------*
        Method: fetch()
        Returns the parsed contents of the specified template.
    *--------------------------------------------------------------*/
    
function fetch($file_name
) {
        
// Prepare the path
        
$file = $this->base_path . $file_name
;

        
// Open the file
        
$fp = fopen($file, 'rb'
);
        if(!
$fp) return FALSE
;
        
        
// Read the file
        
$contents = fread($fp, filesize($file
));

        
// Close the file
        
fclose($fp
);

        
// Parse and return the contents
        
return $this->parse($contents
);
    }
}
?>

 

÷ºÎÆÄÀÏ
Down1314-bTemplate_0.1.zip
À̸§ ºñ¹Ð¹øÈ£



* ÇÑ±Û 1000ÀÚ ±îÁö¸¸ ÀԷ°¡´É : ÀÚ
PUMA -- PUMA http://www.kutuyasuii.com/puma-c-21.html | 110.124.xxx.xxx 2013-06-22 13:33:20
Louboutin Outlet as i know there are lots of <a href="http://sepamujer.org/">Luboutin Outlet</a> online, and i will buy it from there.
Louboutin Outlet http://sepamujer.org/ | 192.95..xxx.xxx
2013-10-01 02:40:30