[ Index ]
 

Code source de phpMyAdmin 2.10.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/libraries/transformations/ -> text_plain__external.inc.php (source)

   1  <?php
   2  /* $Id: text_plain__external.inc.php 8340 2006-01-19 15:39:29Z cybot_tm $ */
   3  // vim: expandtab sw=4 ts=4 sts=4:
   4  
   5  function PMA_transformation_text_plain__external_nowrap($options = array()) {
   6      if (!isset($options[3]) || $options[3] == '') {
   7          $nowrap = true;
   8      } elseif ($options[3] == '1' || $options[3] == 1) {
   9          $nowrap = true;
  10      } else {
  11          $nowrap = false;
  12      }
  13  
  14      return $nowrap;
  15  }
  16  
  17  function PMA_transformation_text_plain__external($buffer, $options = array(), $meta = '') {
  18      // possibly use a global transform and feed it with special options:
  19      // include('./libraries/transformations/global.inc.php');
  20  
  21      // further operations on $buffer using the $options[] array.
  22  
  23      $allowed_programs = array();
  24  
  25      //
  26      // WARNING:
  27      //
  28      // It's up to administrator to allow anything here. Note that users may
  29      // specify any parameters, so when programs allow output redirection or
  30      // any other possibly dangerous operations, you should write wrapper
  31      // script that will publish only functions you really want.
  32      //
  33      // Add here program definitions like (note that these are NOT safe
  34      // programs):
  35      //
  36      //$allowed_programs[0] = '/usr/local/bin/tidy';
  37      //$allowed_programs[1] = '/usr/local/bin/validate';
  38  
  39      // no-op when no allowed programs
  40      if (count($allowed_programs) == 0) {
  41          return $buffer;
  42      }
  43  
  44      if (!isset($options[0]) ||  $options[0] == '' || !isset($allowed_programs[$options[0]])) {
  45          $program = $allowed_programs[0];
  46      } else {
  47          $program = $allowed_programs[$options[0]];
  48      }
  49  
  50      if (!isset($options[1]) || $options[1] == '') {
  51          $poptions = '-f /dev/null -i -wrap -q';
  52      } else {
  53          $poptions = $options[1];
  54      }
  55  
  56      if (!isset($options[2]) || $options[2] == '') {
  57          $options[2] = 1;
  58      }
  59  
  60      if (!isset($options[3]) || $options[3] == '') {
  61          $options[3] = 1;
  62      }
  63  
  64      // needs PHP >= 4.3.0
  65      $newstring = '';
  66      $descriptorspec = array(
  67          0 => array("pipe", "r"),
  68          1 => array("pipe", "w")
  69      );
  70      $process = proc_open($program . ' ' . $poptions, $descriptorspec, $pipes);
  71      if (is_resource($process)) {
  72          fwrite($pipes[0], $buffer);
  73          fclose($pipes[0]);
  74  
  75          while (!feof($pipes[1])) {
  76              $newstring .= fgets($pipes[1], 1024);
  77          }
  78          fclose($pipes[1]);
  79          // we don't currently use the return value 
  80          $return_value = proc_close($process);
  81      }
  82  
  83      if ($options[2] == 1 || $options[2] == '2') {
  84          $retstring = htmlspecialchars($newstring);
  85      } else {
  86          $retstring = $newstring;
  87      }
  88  
  89      return $retstring;
  90  }
  91  ?>


Généré le : Mon Nov 26 15:18:20 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics