буфер
Войти

буфер

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php 

class TM
{
    function 
TM()
    {
         
$this->startBuffering();
         
register_shutdown_function(array($this'endBuffering'));
    }
 
    public function 
startBuffering()
    {
        
ob_start();
    }
 
    public function 
endBuffering()
    {
        if(
ob_get_level() > 1)
        {
            
$data ob_get_contents();
            
ob_end_clean();
            
            
$this->insertBufferedContent($data);
            
            echo 
$data;
        }
    }
 
    function 
insertBufferedContent(&$data)
    {
        if(!empty(
$this->buffered))
        {
            foreach(
$this->buffered as $contentID => $contentData)
            {
                
$search[] = '<!--'.$contentID.'-->';
            }
 
            
$data str_replace($search$this->buffered$data);
        }
    }
 
    function 
showBuffered($contentID)
    {
        if(
ob_get_level() > 1)
        {
            echo 
'<!--'.$contentID.'-->';
        }
    }
    
    function 
setBuffered($contentID$data)
    {
        
$this->buffered[$contentID] = $data;
    }
    
 
}

?>
Теги:
php