fork(3) download
  1. <?php
  2.  
  3. $code = '<?php
  4.  
  5. $cat = "foo";
  6. $cat2 = "bar";
  7. $dog = "baz";
  8.  
  9. ';
  10.  
  11. $replace = array(
  12. 'cat' => 'dog',
  13. 'cat2' => 'not_dog',
  14. 'dog' => 'cat',
  15. );
  16.  
  17. $tokens = token_get_all($code);
  18.  
  19. $newCode = '';
  20.  
  21. foreach ($tokens as $token) {
  22. if (is_array($token)) {
  23. if ($token[0] == T_VARIABLE) {
  24. $variableName = substr($token[1], 1);
  25. if (array_key_exists($variableName, $replace)) {
  26. $token[1] = sprintf('$%s', $replace[$variableName]);
  27. }
  28. }
  29.  
  30. $part = $token[1];
  31. } else {
  32. $part = $token;
  33. }
  34.  
  35. $newCode .= $part;
  36. }
  37.  
  38. echo $newCode;
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
<?php

$dog = "foo";
$not_dog = "bar";
$cat = "baz";