jargon

Roe2Js :: "/test.php" (Redraft)

Jun 29th, 2024
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.65 KB | None | 0 0
  1. <?php
  2.    
  3.     class pathClass {
  4.        
  5.         public $root = "";
  6.         public $path = "";
  7.        
  8.         public function __construct(){         
  9.             $this->root = $_SERVER["DOCUMENT_ROOT"];
  10.             $this->host = "http://".$_SERVER["HTTP_HOST"];
  11.         }
  12.     }
  13.    
  14.     $path = new pathClass();
  15.    
  16.     include_once($path->root."/test dictionary/scripts/php/prettyClass.php");
  17.    
  18.     include_once($path->root."/test dictionary/scripts/php/phlegmClass.php");
  19.    
  20.     $pretty = new prettyClass();
  21.     $phlegm = new phlegmClass();
  22.        
  23.     include_once($path->root."/Classes/mapCsv2JsonClass.php");
  24.      
  25.     $pagedata = file_get_contents($path->root."/test dictionary/scripts/html/main.html");
  26.    
  27.     $pagedata = str_replace ( "{{ host }}", $path->host, $pagedata );
  28.    
  29.     $pagedata = $pretty->favIconRender($pagedata);
  30.  
  31.     $pagedata = str_replace("{{ fav icon }}", "{{ host }}/Sprites/icon/crescent-onion-dome.png", $pagedata);   
  32.  
  33.     $prettyHost = str_replace ( " ",".", ucwords(str_replace ( "."," ",str_replace('http://','',$path->host))));
  34.     $prettyName = str_replace ( " ",".", ucwords(str_replace ( "."," ",basename(__FILE__,".php"))));
  35.    
  36.     $pagedata = str_replace("{{ title }}", "Keal's Roe2Js $prettyName @ $prettyHost", $pagedata);
  37.    
  38.     $pagedata = str_replace("{{ tray }}", "", $pagedata);
  39.  
  40.     $pagedata = str_replace("{{ menu }}", "", $pagedata);
  41.  
  42.     $eventLog = "";
  43.     $buffet = "";
  44.    
  45.     $pagedata = loader ( $pagedata );
  46.  
  47.     $pagedata = str_replace ("{{ table }}","<textarea>$eventLog</textarea>",$pagedata);
  48.    
  49.     $pagedata = str_replace ("{{ host }}",$path->host,$pagedata);
  50.    
  51.     header("Content-Type: text/html");
  52.    
  53.     echo $pagedata;
  54.    
  55.     exit;
  56.    
  57.     function loader ( $pagedata ) {
  58.        
  59.         $path = new pathClass ( );
  60.        
  61.         $pretty = new prettyClass ( );
  62.         $Cookbook = new CookbookClass ( );
  63.        
  64.         foreach($Cookbook->formats as $ext => $tag){
  65.            
  66.             $lines = [];
  67.            
  68.             switch($ext) {
  69.            
  70.             case "js":
  71.             case "css":
  72.                
  73.                 $pagedata = str_replace ("{{ ${tag} }}","<${tag}></${tag}>",$pagedata);
  74.  
  75.                 $lines[0] = "/* {{ #/test dictionary/scripts/json/includes/${ext} includes.csv }} */";
  76.                
  77.                 $row = 0;
  78.                 while($row < count($lines)){
  79.                    
  80.                     $line = Linedancer ( $lines[$row] );
  81.                     $lines = remove( $lines, $row, 1 );
  82.                     if($line !== ""){
  83.                         $lines = insert( $lines, $row, $line );
  84.                     }
  85.                    
  86.                     $row++;
  87.                 }
  88.                
  89.                 $pagedata = str_replace("</${tag}>",implode("\r\n",$lines)."</${tag}>",$pagedata);
  90.                
  91.                 break;
  92.                
  93.             case "json":
  94.             case "csv":
  95.                
  96.                 break;
  97.             }
  98.         }
  99.        
  100.         return $pagedata;
  101.        
  102.     }
  103.    
  104.     function Linedancer ( $line ) {
  105.  
  106.         $path = new pathClass ( );
  107.                        
  108.         $pretty = new prettyClass ( );
  109.         $Cookbook = new CookbookClass ( );
  110.                
  111.         if(preg_match_all($Cookbook->hashMatch,$line,$matches,PREG_SET_ORDER ) > 0 ) {
  112.                
  113.             foreach($matches as $match){
  114.                    
  115.                 $pretty->jRmNumeric($match);
  116.                
  117.                 $words = [];
  118.                 foreach(["op","var","path","file","ext"] as $key ) {
  119.                     $words[$key] = $match[$key];
  120.                 }
  121.             }          
  122.        
  123.         }else{
  124.            
  125.             return $line;
  126.         }
  127.        
  128.         if ($words['op'] !== "#"){
  129.            
  130.             return $line;
  131.         }
  132.        
  133.         $hit = array_search(substr("${words['ext']}",1), $Cookbook->formats);
  134.         if ( $hit === false ) {
  135.  
  136.             return $line;
  137.         }
  138.        
  139.         if(!is_file($path->root."${words['path']}${words['file']}${words['ext']}")) {
  140.                        
  141.             return $line;
  142.         }
  143.        
  144.         switch( substr("${words['ext']}",1) ){
  145.        
  146.         case 'js':
  147.         case 'css':
  148.         case 'csv':                
  149.                                    
  150.             return file_get_contents($path->root."${words['path']}${words['file']}${words['ext']}");
  151.  
  152.         case "json":
  153.            
  154.             if($words['var'] === ""){
  155.                 return $line;
  156.             }
  157.            
  158.             return "var ${words['var']} = ".file_get_contents($path->root."${words['path']}${words['file']}${words['ext']}");
  159.            
  160.         }
  161.        
  162.         return $line;
  163.        
  164.     }
  165.  
  166.     class CookbookClass {
  167.        
  168.         public $path;
  169.         public $pretty;
  170.        
  171.         public $hashMatch;
  172.         public $formats;
  173.        
  174.         public function __construct ( ) {
  175.            
  176.             $path = new pathClass ( );
  177.             $pretty = new prettyClass ( );
  178.            
  179.             $this->hashMatch = '/\/\* {{ (?<op>#)(?<pad>(?<var>[A-Za-z][A-Za-z0-9_]*)=|)(?<path>\/[\/A-Za-z0-9\-_ ]*\/)(?<file>[A-Za-z0-9\-_ ^\/]+)(?<ext>\.[A-Za-z0-9\-_]+) }} \*\//m';
  180.  
  181.             $this->formats = json_decode(file_get_contents($path->root."/test dictionary/scripts/json/includes/formats.json"),true, 512, JSON_THROW_ON_ERROR);
  182.         }
  183.     }
  184.    
  185.     function insert($array, $index, $value) {
  186.         if (!is_array($value)) {
  187.             $value = explode("\r\n", $value);
  188.         }
  189.        
  190.         $row = 0;
  191.         foreach ($value as $item) {
  192.             array_splice($array, $index + $row, 0, $item);
  193.             $row++;
  194.         }
  195.        
  196.         return $array;
  197.     }
  198.    
  199.     function remove($array, $index, $count) {
  200.         if(is_array($count)){
  201.             $count = count($count);
  202.         }
  203.         array_splice($array, $index, $count);
  204.  
  205.         return $array;
  206.     }
  207.  
Add Comment
Please, Sign In to add comment