jargon

Roe2Js :: "/test.php"

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