[ Index ] |
|
Code source de e107 0.7.8 |
1 <?php 2 if (!defined('e107_INIT')) { exit; } 3 4 // -------------------------------------------------------------------------------- 5 // PhpConcept Library (PCL) Trace 1.0 6 // -------------------------------------------------------------------------------- 7 // License GNU/GPL - Vincent Blavet - Janvier 2001 8 // http://www.phpconcept.net & http://phpconcept.free.fr 9 // -------------------------------------------------------------------------------- 10 // Français : 11 // La description de l'usage de la librairie PCL Trace 1.0 n'est pas encore 12 // disponible. Celle-ci n'est pour le moment distribuée qu'avec l'application 13 // et la librairie PhpZip. 14 // Une version indépendante sera bientot disponible sur http://www.phpconcept.net 15 // 16 // English : 17 // The PCL Trace 1.0 library description is not available yet. This library is 18 // released only with PhpZip application and library. 19 // An independant release will be soon available on http://www.phpconcept.net 20 // 21 // -------------------------------------------------------------------------------- 22 // 23 // * Avertissement : 24 // 25 // Cette librairie a été créée de façon non professionnelle. 26 // Son usage est au risque et péril de celui qui l'utilise, en aucun cas l'auteur 27 // de ce code ne pourra être tenu pour responsable des éventuels dégats qu'il pourrait 28 // engendrer. 29 // Il est entendu cependant que l'auteur a réalisé ce code par plaisir et n'y a 30 // caché aucun virus, ni malveillance. 31 // Cette libairie est distribuée sous la license GNU/GPL (http://www.gnu.org) 32 // 33 // * Auteur : 34 // 35 // Ce code a été écrit par Vincent Blavet (vincent@blavet.net) sur son temps 36 // de loisir. 37 // 38 // -------------------------------------------------------------------------------- 39 40 // ----- Look for double include 41 if (!defined("PCLTRACE_LIB")) 42 { 43 define( "PCLTRACE_LIB", 1 ); 44 45 // ----- Version 46 $g_pcl_trace_version = "1.0"; 47 48 // ----- Internal variables 49 // These values must be change by PclTrace library functions 50 $g_pcl_trace_mode = "memory"; 51 $g_pcl_trace_filename = "trace.txt"; 52 $g_pcl_trace_name = array(); 53 $g_pcl_trace_index = 0; 54 $g_pcl_trace_level = 0; 55 //$g_pcl_trace_entries = array(); 56 57 58 // -------------------------------------------------------------------------------- 59 // Function : TrOn($p_level, $p_mode, $p_filename) 60 // Description : 61 // Parameters : 62 // $p_level : Trace level 63 // $p_mode : Mode of trace displaying : 64 // 'normal' : messages are displayed at function call 65 // 'memory' : messages are memorized in a table and can be display by 66 // TrDisplay() function. (default) 67 // 'log' : messages are writed in the file $p_filename 68 // -------------------------------------------------------------------------------- 69 function TrOn($p_level=1, $p_mode="memory", $p_filename="trace.txt") 70 { 71 global $g_pcl_trace_level; 72 global $g_pcl_trace_mode; 73 global $g_pcl_trace_filename; 74 global $g_pcl_trace_name; 75 global $g_pcl_trace_index; 76 global $g_pcl_trace_entries; 77 78 // ----- Enable trace mode 79 $g_pcl_trace_level = $p_level; 80 81 // ----- Memorize mode and filename 82 switch ($p_mode) { 83 case "normal" : 84 case "memory" : 85 case "log" : 86 $g_pcl_trace_mode = $p_mode; 87 break; 88 default : 89 $g_pcl_trace_mode = "logged"; 90 } 91 92 // ----- Memorize filename 93 $g_pcl_trace_filename = $p_filename; 94 } 95 // -------------------------------------------------------------------------------- 96 97 // -------------------------------------------------------------------------------- 98 // Function : IsTrOn() 99 // Description : 100 // Return value : 101 // The trace level (0 for disable). 102 // -------------------------------------------------------------------------------- 103 function IsTrOn() 104 { 105 global $g_pcl_trace_level; 106 107 return($g_pcl_trace_level); 108 } 109 // -------------------------------------------------------------------------------- 110 111 // -------------------------------------------------------------------------------- 112 // Function : TrOff() 113 // Description : 114 // Parameters : 115 // -------------------------------------------------------------------------------- 116 function TrOff() 117 { 118 global $g_pcl_trace_level; 119 global $g_pcl_trace_mode; 120 global $g_pcl_trace_filename; 121 global $g_pcl_trace_name; 122 global $g_pcl_trace_index; 123 124 // ----- Clean 125 $g_pcl_trace_mode = "memory"; 126 unset($g_pcl_trace_entries); 127 unset($g_pcl_trace_name); 128 unset($g_pcl_trace_index); 129 130 // ----- Switch off trace 131 $g_pcl_trace_level = 0; 132 } 133 // -------------------------------------------------------------------------------- 134 135 136 // -------------------------------------------------------------------------------- 137 // Function : TrFctStart() 138 // Description : 139 // Just a trace function for debbugging purpose before I use a better tool !!!! 140 // Start and stop of this function is by $g_pcl_trace_level global variable. 141 // Parameters : 142 // $p_level : Level of trace required. 143 // -------------------------------------------------------------------------------- 144 function TrFctStart($p_file, $p_line, $p_name, $p_param="", $p_message="") 145 { 146 global $g_pcl_trace_level; 147 global $g_pcl_trace_mode; 148 global $g_pcl_trace_filename; 149 global $g_pcl_trace_name; 150 global $g_pcl_trace_index; 151 global $g_pcl_trace_entries; 152 153 // ----- Look for disabled trace 154 if ($g_pcl_trace_level < 1) 155 return; 156 157 // ----- Add the function name in the list 158 if (!isset($g_pcl_trace_name)) 159 $g_pcl_trace_name = $p_name; 160 else 161 $g_pcl_trace_name .= ",".$p_name; 162 163 // ----- Update the function entry 164 $i = sizeof($g_pcl_trace_entries); 165 $g_pcl_trace_entries[$i][name] = $p_name; 166 $g_pcl_trace_entries[$i][param] = $p_param; 167 $g_pcl_trace_entries[$i][message] = ""; 168 $g_pcl_trace_entries[$i][file] = $p_file; 169 $g_pcl_trace_entries[$i][line] = $p_line; 170 $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index; 171 $g_pcl_trace_entries[$i][type] = "1"; // means start of function 172 173 // ----- Update the message entry 174 if ($p_message != "") 175 { 176 $i = sizeof($g_pcl_trace_entries); 177 $g_pcl_trace_entries[$i][name] = ""; 178 $g_pcl_trace_entries[$i][param] = ""; 179 $g_pcl_trace_entries[$i][message] = $p_message; 180 $g_pcl_trace_entries[$i][file] = $p_file; 181 $g_pcl_trace_entries[$i][line] = $p_line; 182 $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index; 183 $g_pcl_trace_entries[$i][type] = "3"; // means message 184 } 185 186 // ----- Action depending on mode 187 PclTraceAction($g_pcl_trace_entries[$i]); 188 189 // ----- Increment the index 190 $g_pcl_trace_index++; 191 } 192 // -------------------------------------------------------------------------------- 193 194 // -------------------------------------------------------------------------------- 195 // Function : TrFctEnd() 196 // Description : 197 // Just a trace function for debbugging purpose before I use a better tool !!!! 198 // Start and stop of this function is by $g_pcl_trace_level global variable. 199 // Parameters : 200 // $p_level : Level of trace required. 201 // -------------------------------------------------------------------------------- 202 function TrFctEnd($p_file, $p_line, $p_return=1, $p_message="") 203 { 204 global $g_pcl_trace_level; 205 global $g_pcl_trace_mode; 206 global $g_pcl_trace_filename; 207 global $g_pcl_trace_name; 208 global $g_pcl_trace_index; 209 global $g_pcl_trace_entries; 210 211 // ----- Look for disabled trace 212 if ($g_pcl_trace_level < 1) 213 return; 214 215 // ----- Extract the function name in the list 216 // ----- Remove the function name in the list 217 if (!($v_name = strrchr($g_pcl_trace_name, ","))) 218 { 219 $v_name = $g_pcl_trace_name; 220 $g_pcl_trace_name = ""; 221 } 222 else 223 { 224 $g_pcl_trace_name = substr($g_pcl_trace_name, 0, strlen($g_pcl_trace_name)-strlen($v_name)); 225 $v_name = substr($v_name, -strlen($v_name)+1); 226 } 227 228 // ----- Decrement the index 229 $g_pcl_trace_index--; 230 231 // ----- Update the message entry 232 if ($p_message != "") 233 { 234 $i = sizeof($g_pcl_trace_entries); 235 $g_pcl_trace_entries[$i][name] = ""; 236 $g_pcl_trace_entries[$i][param] = ""; 237 $g_pcl_trace_entries[$i][message] = $p_message; 238 $g_pcl_trace_entries[$i][file] = $p_file; 239 $g_pcl_trace_entries[$i][line] = $p_line; 240 $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index; 241 $g_pcl_trace_entries[$i][type] = "3"; // means message 242 } 243 244 // ----- Update the function entry 245 $i = sizeof($g_pcl_trace_entries); 246 $g_pcl_trace_entries[$i][name] = $v_name; 247 $g_pcl_trace_entries[$i][param] = $p_return; 248 $g_pcl_trace_entries[$i][message] = ""; 249 $g_pcl_trace_entries[$i][file] = $p_file; 250 $g_pcl_trace_entries[$i][line] = $p_line; 251 $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index; 252 $g_pcl_trace_entries[$i][type] = "2"; // means end of function 253 254 // ----- Action depending on mode 255 PclTraceAction($g_pcl_trace_entries[$i]); 256 } 257 // -------------------------------------------------------------------------------- 258 259 // -------------------------------------------------------------------------------- 260 // Function : TrFctMessage() 261 // Description : 262 // Parameters : 263 // -------------------------------------------------------------------------------- 264 function TrFctMessage($p_file, $p_line, $p_level, $p_message="") 265 { 266 global $g_pcl_trace_level; 267 global $g_pcl_trace_mode; 268 global $g_pcl_trace_filename; 269 global $g_pcl_trace_name; 270 global $g_pcl_trace_index; 271 global $g_pcl_trace_entries; 272 273 // ----- Look for disabled trace 274 if ($g_pcl_trace_level < $p_level) 275 return; 276 277 // ----- Update the entry 278 $i = sizeof($g_pcl_trace_entries); 279 $g_pcl_trace_entries[$i][name] = ""; 280 $g_pcl_trace_entries[$i][param] = ""; 281 $g_pcl_trace_entries[$i][message] = $p_message; 282 $g_pcl_trace_entries[$i][file] = $p_file; 283 $g_pcl_trace_entries[$i][line] = $p_line; 284 $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index; 285 $g_pcl_trace_entries[$i][type] = "3"; // means message of function 286 287 // ----- Action depending on mode 288 PclTraceAction($g_pcl_trace_entries[$i]); 289 } 290 // -------------------------------------------------------------------------------- 291 292 // -------------------------------------------------------------------------------- 293 // Function : TrMessage() 294 // Description : 295 // Parameters : 296 // -------------------------------------------------------------------------------- 297 function TrMessage($p_file, $p_line, $p_level, $p_message="") 298 { 299 global $g_pcl_trace_level; 300 global $g_pcl_trace_mode; 301 global $g_pcl_trace_filename; 302 global $g_pcl_trace_name; 303 global $g_pcl_trace_index; 304 global $g_pcl_trace_entries; 305 306 // ----- Look for disabled trace 307 if ($g_pcl_trace_level < $p_level) 308 return; 309 310 // ----- Update the entry 311 $i = sizeof($g_pcl_trace_entries); 312 $g_pcl_trace_entries[$i][name] = ""; 313 $g_pcl_trace_entries[$i][param] = ""; 314 $g_pcl_trace_entries[$i][message] = $p_message; 315 $g_pcl_trace_entries[$i][file] = $p_file; 316 $g_pcl_trace_entries[$i][line] = $p_line; 317 $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index; 318 $g_pcl_trace_entries[$i][type] = "4"; // means simple message 319 320 // ----- Action depending on mode 321 PclTraceAction($g_pcl_trace_entries[$i]); 322 } 323 // -------------------------------------------------------------------------------- 324 325 326 // -------------------------------------------------------------------------------- 327 // Function : TrDisplay() 328 // Description : 329 // Parameters : 330 // -------------------------------------------------------------------------------- 331 function TrDisplay() 332 { 333 global $g_pcl_trace_level; 334 global $g_pcl_trace_mode; 335 global $g_pcl_trace_filename; 336 global $g_pcl_trace_name; 337 global $g_pcl_trace_index; 338 global $g_pcl_trace_entries; 339 340 // ----- Look for disabled trace 341 if (($g_pcl_trace_level <= 0) || ($g_pcl_trace_mode != "memory")) 342 return; 343 344 $v_font = "\"Verdana, Arial, Helvetica, sans-serif\""; 345 346 // ----- Trace Header 347 echo "<table width=100% border=0 cellspacing=0 cellpadding=0>"; 348 echo "<tr bgcolor=#0000CC>"; 349 echo "<td bgcolor=#0000CC width=1>"; 350 echo "</td>"; 351 echo "<td><div align=center><font size=3 color=#FFFFFF face=$v_font>Trace</font></div></td>"; 352 echo "</tr>"; 353 echo "<tr>"; 354 echo "<td bgcolor=#0000CC width=1>"; 355 echo "</td>"; 356 echo "<td>"; 357 358 // ----- Content header 359 echo "<table width=100% border=0 cellspacing=0 cellpadding=0>"; 360 361 // ----- Display 362 $v_again=0; 363 for ($i=0; $i<sizeof($g_pcl_trace_entries); $i++) 364 { 365 // ---- Row header 366 echo "<tr>"; 367 echo "<td><table width=100% border=0 cellspacing=0 cellpadding=0><tr>"; 368 $n = ($g_pcl_trace_entries[$i][index]+1)*10; 369 echo "<td width=".$n."><table width=100% border=0 cellspacing=0 cellpadding=0><tr>"; 370 371 for ($j=0; $j<=$g_pcl_trace_entries[$i][index]; $j++) 372 { 373 if ($j==$g_pcl_trace_entries[$i][index]) 374 { 375 if (($g_pcl_trace_entries[$i][type] == 1) || ($g_pcl_trace_entries[$i][type] == 2)) 376 echo "<td width=10><div align=center><font size=2 face=$v_font>+</font></div></td>"; 377 } 378 else 379 echo "<td width=10><div align=center><font size=2 face=$v_font>|</font></div></td>"; 380 } 381 //echo "<td> </td>"; 382 echo "</tr></table></td>"; 383 384 echo "<td width=2></td>"; 385 switch ($g_pcl_trace_entries[$i][type]) { 386 case 1: 387 echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i][name]."(".$g_pcl_trace_entries[$i][param].")</font></td>"; 388 break; 389 case 2: 390 echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i][name]."()=".$g_pcl_trace_entries[$i][param]."</font></td>"; 391 break; 392 case 3: 393 case 4: 394 echo "<td><table width=100% border=0 cellspacing=0 cellpadding=0><td width=20></td><td>"; 395 echo "<font size=2 face=$v_font>".$g_pcl_trace_entries[$i][message]."</font>"; 396 echo "</td></table></td>"; 397 break; 398 default: 399 echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i][name]."(".$g_pcl_trace_entries[$i][param].")</font></td>"; 400 } 401 echo "</tr></table></td>"; 402 echo "<td width=5></td>"; 403 echo "<td><font size=1 face=$v_font>".basename($g_pcl_trace_entries[$i][file])."</font></td>"; 404 echo "<td width=5></td>"; 405 echo "<td><font size=1 face=$v_font>".$g_pcl_trace_entries[$i][line]."</font></td>"; 406 echo "</tr>"; 407 } 408 409 // ----- Content footer 410 echo "</table>"; 411 412 // ----- Trace footer 413 echo "</td>"; 414 echo "<td bgcolor=#0000CC width=1>"; 415 echo "</td>"; 416 echo "</tr>"; 417 echo "<tr bgcolor=#0000CC>"; 418 echo "<td bgcolor=#0000CC width=1>"; 419 echo "</td>"; 420 echo "<td><div align=center><font color=#FFFFFF face=$v_font> </font></div></td>"; 421 echo "</tr>"; 422 echo "</table>"; 423 } 424 // -------------------------------------------------------------------------------- 425 426 // -------------------------------------------------------------------------------- 427 // Function : PclTraceAction() 428 // Description : 429 // Parameters : 430 // -------------------------------------------------------------------------------- 431 function PclTraceAction($p_entry) 432 { 433 global $g_pcl_trace_level; 434 global $g_pcl_trace_mode; 435 global $g_pcl_trace_filename; 436 global $g_pcl_trace_name; 437 global $g_pcl_trace_index; 438 global $g_pcl_trace_entries; 439 440 if ($g_pcl_trace_mode == "normal") 441 { 442 for ($i=0; $i<$p_entry[index]; $i++) 443 echo "---"; 444 if ($p_entry[type] == 1) 445 echo "<b>".$p_entry[name]."</b>(".$p_entry[param].") : ".$p_entry[message]." [".$p_entry[file].", ".$p_entry[line]."]<br>"; 446 else if ($p_entry[type] == 2) 447 echo "<b>".$p_entry[name]."</b>()=".$p_entry[param]." : ".$p_entry[message]." [".$p_entry[file].", ".$p_entry[line]."]<br>"; 448 else 449 echo $p_entry[message]." [".$p_entry[file].", ".$p_entry[line]."]<br>"; 450 } 451 } 452 // -------------------------------------------------------------------------------- 453 454 // ----- End of double include look 455 } 456 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Apr 1 01:23:32 2007 | par Balluche grâce à PHPXref 0.7 |